@theerapat-s28/ts-structural-eng-tools 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/core/constants/rc.constant.d.ts +23 -0
- package/dist/core/constants/rc.constant.js +42 -1
- package/dist/core/constants/rc.constant.js.map +1 -1
- package/dist/core/errors/rc-design.error.js +29 -0
- package/dist/core/errors/rc-design.error.js.map +1 -1
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/types/plate-jacketing.type.d.ts +31 -4
- package/dist/core/types/plate-jacketing.type.js +12 -0
- package/dist/core/types/plate-jacketing.type.js.map +1 -1
- package/dist/core/types/rc-beam.type.d.ts +30 -0
- package/dist/core/types/rc-beam.type.js +1 -4
- package/dist/core/types/rc-beam.type.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/rc/index.d.ts +2 -1
- package/dist/rc/index.js +6 -1
- package/dist/rc/index.js.map +1 -1
- package/dist/rc/rc-bar-layout.d.ts +34 -0
- package/dist/rc/rc-bar-layout.js +125 -0
- package/dist/rc/rc-bar-layout.js.map +1 -0
- package/dist/rc/rc-beam-design.d.ts +58 -1
- package/dist/rc/rc-beam-design.js +144 -5
- package/dist/rc/rc-beam-design.js.map +1 -1
- package/dist/strengthening/index.d.ts +1 -0
- package/dist/strengthening/index.js +5 -1
- package/dist/strengthening/index.js.map +1 -1
- package/dist/strengthening/rc-beam-plate-interface-bolts.d.ts +134 -0
- package/dist/strengthening/rc-beam-plate-interface-bolts.js +377 -0
- package/dist/strengthening/rc-beam-plate-interface-bolts.js.map +1 -0
- package/dist/strengthening/rc-beam-steel-plate-jacketing.js +23 -13
- package/dist/strengthening/rc-beam-steel-plate-jacketing.js.map +1 -1
- package/dist/utils/math.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RectBeamSection } from "../core/types/rc-beam.type";
|
|
1
|
+
import { RectBeamSection, RectShearSection, StirrupShearSection, ShearReinforcementCheckInput } from "../core/types/rc-beam.type";
|
|
2
2
|
import { Warnings } from "../core/types/output-message.type";
|
|
3
3
|
/**
|
|
4
4
|
* Calculates the nominal moment capacity (φMn) of a rectangular RC beam section.
|
|
@@ -16,3 +16,60 @@ export declare const rectBeamMomentCapacity: (section: RectBeamSection) => {
|
|
|
16
16
|
unit: string;
|
|
17
17
|
warnings: Warnings;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Calculates the concrete contribution to shear capacity (φVc) of a beam section
|
|
21
|
+
* per ACI 318-19 22.5.5.1, Table 22.5.5.1(a): Vc = 0.17 λ √f'c bw d
|
|
22
|
+
*
|
|
23
|
+
* @param section - Shear section properties (fc_, bw, d, optional lambda)
|
|
24
|
+
* @returns Object containing `phiVc` (kN), `calculationDetails`, `unit`, and `warnings`
|
|
25
|
+
*/
|
|
26
|
+
export declare const concreteShearCapacity: (section: RectShearSection) => {
|
|
27
|
+
phiVc: number;
|
|
28
|
+
calculationDetails: {
|
|
29
|
+
Vc: number;
|
|
30
|
+
lambda: number;
|
|
31
|
+
};
|
|
32
|
+
unit: string;
|
|
33
|
+
warnings: Warnings;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Calculates the stirrup (shear reinforcement) contribution to shear capacity (φVs)
|
|
37
|
+
* of a beam section per ACI 318-19 22.5.10.5.3: Vs = Av fyt d / s
|
|
38
|
+
*
|
|
39
|
+
* @param section - Stirrup shear properties (fc_, bw, d, Av, fyt, s)
|
|
40
|
+
* @returns Object containing `phiVs` (kN), `calculationDetails`, `unit`, and `warnings`
|
|
41
|
+
* @throws {RCDesignError} If Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
|
|
42
|
+
*/
|
|
43
|
+
export declare const stirrupShearCapacity: (section: StirrupShearSection) => {
|
|
44
|
+
phiVs: number;
|
|
45
|
+
calculationDetails: {
|
|
46
|
+
Vs: number;
|
|
47
|
+
maxVs: number;
|
|
48
|
+
};
|
|
49
|
+
unit: string;
|
|
50
|
+
warnings: Warnings;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Checks whether shear reinforcement (stirrups) is required at a section, and if so,
|
|
54
|
+
* whether it may be at the code minimum or must be designed for strength, per
|
|
55
|
+
* ACI 318-19 9.6.3.1 (requirement thresholds), 9.6.3.3 (Av,min), and 9.7.6.2.2 (max spacing).
|
|
56
|
+
*
|
|
57
|
+
* If `Av` and `s` are supplied, the provided reinforcement is checked against the
|
|
58
|
+
* required Av/s ratio and maximum spacing, adding warnings on shortfalls.
|
|
59
|
+
*
|
|
60
|
+
* @param input - Section and demand properties (fc_, bw, d, Vu, fyt, optional Av, s, lambda)
|
|
61
|
+
* @returns Object containing requirement classification, required Av/s and max spacing, and warnings
|
|
62
|
+
* @throws {RCDesignError} If required Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
|
|
63
|
+
*/
|
|
64
|
+
export declare const checkStirrupRequirement: (input: ShearReinforcementCheckInput) => {
|
|
65
|
+
required: boolean;
|
|
66
|
+
minimumOnly: boolean;
|
|
67
|
+
calculationDetails: {
|
|
68
|
+
phiVc: number;
|
|
69
|
+
halfPhiVc: number;
|
|
70
|
+
requiredAvOverS: number;
|
|
71
|
+
maxSpacing: number | null;
|
|
72
|
+
};
|
|
73
|
+
unit: string;
|
|
74
|
+
warnings: Warnings;
|
|
75
|
+
};
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.rectBeamMomentCapacity = void 0;
|
|
36
|
+
exports.checkStirrupRequirement = exports.stirrupShearCapacity = exports.concreteShearCapacity = exports.rectBeamMomentCapacity = void 0;
|
|
37
37
|
const rc_design_error_1 = require("../core/errors/rc-design.error");
|
|
38
38
|
const MyMath = __importStar(require("../utils/math"));
|
|
39
39
|
const rc_beam_type_1 = require("../core/types/rc-beam.type");
|
|
@@ -114,6 +114,147 @@ const rectBeamMomentCapacity = (section) => {
|
|
|
114
114
|
};
|
|
115
115
|
};
|
|
116
116
|
exports.rectBeamMomentCapacity = rectBeamMomentCapacity;
|
|
117
|
+
/**
|
|
118
|
+
* Calculates the concrete contribution to shear capacity (φVc) of a beam section
|
|
119
|
+
* per ACI 318-19 22.5.5.1, Table 22.5.5.1(a): Vc = 0.17 λ √f'c bw d
|
|
120
|
+
*
|
|
121
|
+
* @param section - Shear section properties (fc_, bw, d, optional lambda)
|
|
122
|
+
* @returns Object containing `phiVc` (kN), `calculationDetails`, `unit`, and `warnings`
|
|
123
|
+
*/
|
|
124
|
+
const concreteShearCapacity = (section) => {
|
|
125
|
+
const warnings = [];
|
|
126
|
+
const lambda = section.lambda ?? 1.0;
|
|
127
|
+
const sqrtFc = Math.sqrt(section.fc_);
|
|
128
|
+
if (sqrtFc > RCConstants.SQRT_FC_SHEAR_LIMIT) {
|
|
129
|
+
warnings.push({
|
|
130
|
+
reference: "ACI318-19, 22.5.3.1",
|
|
131
|
+
message: `sqrt(fc') (${MyMath.roundToDecimalPlaces(sqrtFc, 2)}) > ${RCConstants.SQRT_FC_SHEAR_LIMIT} MPa limit for Vc; capped at ${RCConstants.SQRT_FC_SHEAR_LIMIT} MPa unless minimum shear reinforcement per 9.6.3.3 is provided.`,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const cappedSqrtFc = Math.min(sqrtFc, RCConstants.SQRT_FC_SHEAR_LIMIT);
|
|
135
|
+
const Vc = RCConstants.CONCRETE_SHEAR_VC_COEFFICIENT * lambda * cappedSqrtFc * section.bw * section.d; // N
|
|
136
|
+
return {
|
|
137
|
+
phiVc: MyMath.roundToDecimalPlaces(RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR * Vc * 0.001, 2),
|
|
138
|
+
calculationDetails: {
|
|
139
|
+
Vc: MyMath.roundToDecimalPlaces(Vc * 0.001, 2),
|
|
140
|
+
lambda,
|
|
141
|
+
},
|
|
142
|
+
unit: "kN",
|
|
143
|
+
warnings,
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
exports.concreteShearCapacity = concreteShearCapacity;
|
|
147
|
+
/**
|
|
148
|
+
* Calculates the stirrup (shear reinforcement) contribution to shear capacity (φVs)
|
|
149
|
+
* of a beam section per ACI 318-19 22.5.10.5.3: Vs = Av fyt d / s
|
|
150
|
+
*
|
|
151
|
+
* @param section - Stirrup shear properties (fc_, bw, d, Av, fyt, s)
|
|
152
|
+
* @returns Object containing `phiVs` (kN), `calculationDetails`, `unit`, and `warnings`
|
|
153
|
+
* @throws {RCDesignError} If Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
|
|
154
|
+
*/
|
|
155
|
+
const stirrupShearCapacity = (section) => {
|
|
156
|
+
const warnings = [];
|
|
157
|
+
const { fc_, bw, d, Av, fyt, s } = section;
|
|
158
|
+
const Vs = (Av * fyt * d) / s; // N
|
|
159
|
+
const maxVs = RCConstants.MAX_VS_COEFFICIENT * Math.sqrt(fc_) * bw * d; // N
|
|
160
|
+
if (Vs > maxVs) {
|
|
161
|
+
throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.SHEAR_STRENGTH_EXCEEDS_MAX);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
phiVs: MyMath.roundToDecimalPlaces(RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR * Vs * 0.001, 2),
|
|
165
|
+
calculationDetails: {
|
|
166
|
+
Vs: MyMath.roundToDecimalPlaces(Vs * 0.001, 2),
|
|
167
|
+
maxVs: MyMath.roundToDecimalPlaces(maxVs * 0.001, 2),
|
|
168
|
+
},
|
|
169
|
+
unit: "kN",
|
|
170
|
+
warnings,
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
exports.stirrupShearCapacity = stirrupShearCapacity;
|
|
174
|
+
/**
|
|
175
|
+
* Checks whether shear reinforcement (stirrups) is required at a section, and if so,
|
|
176
|
+
* whether it may be at the code minimum or must be designed for strength, per
|
|
177
|
+
* ACI 318-19 9.6.3.1 (requirement thresholds), 9.6.3.3 (Av,min), and 9.7.6.2.2 (max spacing).
|
|
178
|
+
*
|
|
179
|
+
* If `Av` and `s` are supplied, the provided reinforcement is checked against the
|
|
180
|
+
* required Av/s ratio and maximum spacing, adding warnings on shortfalls.
|
|
181
|
+
*
|
|
182
|
+
* @param input - Section and demand properties (fc_, bw, d, Vu, fyt, optional Av, s, lambda)
|
|
183
|
+
* @returns Object containing requirement classification, required Av/s and max spacing, and warnings
|
|
184
|
+
* @throws {RCDesignError} If required Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
|
|
185
|
+
*/
|
|
186
|
+
const checkStirrupRequirement = (input) => {
|
|
187
|
+
const warnings = [];
|
|
188
|
+
const { fc_, bw, d, Vu, fyt, Av, s } = input;
|
|
189
|
+
const { phiVc, calculationDetails } = (0, exports.concreteShearCapacity)({
|
|
190
|
+
fc_,
|
|
191
|
+
bw,
|
|
192
|
+
d,
|
|
193
|
+
lambda: input.lambda,
|
|
194
|
+
});
|
|
195
|
+
const Vc = calculationDetails.Vc; // kN
|
|
196
|
+
const halfPhiVc = 0.5 * phiVc;
|
|
197
|
+
let required = false;
|
|
198
|
+
let minimumOnly = false;
|
|
199
|
+
let requiredAvOverS = 0; // mm^2/mm
|
|
200
|
+
let maxSpacing = null;
|
|
201
|
+
if (Vu > halfPhiVc) {
|
|
202
|
+
required = true;
|
|
203
|
+
const sqrtFc = Math.sqrt(fc_);
|
|
204
|
+
const minAvOverS = Math.max((RCConstants.MIN_AV_SQRT_FC_COEFFICIENT * sqrtFc * bw) / fyt, (RCConstants.MIN_AV_ABSOLUTE_COEFFICIENT * bw) / fyt);
|
|
205
|
+
if (Vu <= phiVc) {
|
|
206
|
+
minimumOnly = true;
|
|
207
|
+
requiredAvOverS = minAvOverS;
|
|
208
|
+
maxSpacing =
|
|
209
|
+
RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d <
|
|
210
|
+
RCConstants.MAX_STIRRUP_SPACING_LOW_VS
|
|
211
|
+
? RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d
|
|
212
|
+
: RCConstants.MAX_STIRRUP_SPACING_LOW_VS;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const requiredVs = Vu / RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR - Vc; // kN
|
|
216
|
+
const maxVs = RCConstants.MAX_VS_COEFFICIENT * sqrtFc * bw * d * 0.001; // kN
|
|
217
|
+
if (requiredVs > maxVs) {
|
|
218
|
+
throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.SHEAR_STRENGTH_EXCEEDS_MAX);
|
|
219
|
+
}
|
|
220
|
+
const strengthAvOverS = (requiredVs * 1000) / (fyt * d); // mm^2/mm
|
|
221
|
+
requiredAvOverS = Math.max(minAvOverS, strengthAvOverS);
|
|
222
|
+
const vsThreshold = RCConstants.VS_SPACING_THRESHOLD_COEFFICIENT * sqrtFc * bw * d * 0.001; // kN
|
|
223
|
+
maxSpacing =
|
|
224
|
+
requiredVs <= vsThreshold
|
|
225
|
+
? Math.min(RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d, RCConstants.MAX_STIRRUP_SPACING_LOW_VS)
|
|
226
|
+
: Math.min(RCConstants.MAX_STIRRUP_SPACING_HIGH_VS_DEPTH_FACTOR * d, RCConstants.MAX_STIRRUP_SPACING_HIGH_VS);
|
|
227
|
+
}
|
|
228
|
+
if (Av !== undefined && s !== undefined) {
|
|
229
|
+
const providedAvOverS = Av / s;
|
|
230
|
+
if (providedAvOverS < requiredAvOverS) {
|
|
231
|
+
warnings.push({
|
|
232
|
+
reference: "ACI318-19, 9.6.3.1",
|
|
233
|
+
message: `Provided Av/s (${MyMath.roundToDecimalPlaces(providedAvOverS, 4)} mm2/mm) < required Av/s (${MyMath.roundToDecimalPlaces(requiredAvOverS, 4)} mm2/mm).`,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
if (maxSpacing !== null && s > maxSpacing) {
|
|
237
|
+
warnings.push({
|
|
238
|
+
reference: "ACI318-19, 9.7.6.2.2",
|
|
239
|
+
message: `Provided spacing s (${s} mm) > max allowed spacing (${MyMath.roundToDecimalPlaces(maxSpacing, 2)} mm).`,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
required,
|
|
246
|
+
minimumOnly,
|
|
247
|
+
calculationDetails: {
|
|
248
|
+
phiVc,
|
|
249
|
+
halfPhiVc: MyMath.roundToDecimalPlaces(halfPhiVc, 2),
|
|
250
|
+
requiredAvOverS: MyMath.roundToDecimalPlaces(requiredAvOverS, 4),
|
|
251
|
+
maxSpacing: maxSpacing === null ? null : MyMath.roundToDecimalPlaces(maxSpacing, 2),
|
|
252
|
+
},
|
|
253
|
+
unit: "kN",
|
|
254
|
+
warnings,
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
exports.checkStirrupRequirement = checkStirrupRequirement;
|
|
117
258
|
const calculateRectSinglyMn = (singlySection) => {
|
|
118
259
|
const { Es, fy, fc_, As, b, h, d } = singlySection;
|
|
119
260
|
const warnings = [];
|
|
@@ -123,8 +264,7 @@ const calculateRectSinglyMn = (singlySection) => {
|
|
|
123
264
|
const a = Ac / b;
|
|
124
265
|
const c = a / beta1;
|
|
125
266
|
const tensileSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (d - c)) / c;
|
|
126
|
-
if (tensileSteelStrain <
|
|
127
|
-
steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
|
|
267
|
+
if (tensileSteelStrain < steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
|
|
128
268
|
throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.TENSILE_STEEL_NOT_YIELDING);
|
|
129
269
|
}
|
|
130
270
|
const y_ = a / 2;
|
|
@@ -151,8 +291,7 @@ const calculateRectDoublyMn = (doublySection) => {
|
|
|
151
291
|
const a = c * beta1;
|
|
152
292
|
const tensileSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (d - c)) / c;
|
|
153
293
|
const compressionSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (c - d_)) / c;
|
|
154
|
-
if (tensileSteelStrain <
|
|
155
|
-
steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
|
|
294
|
+
if (tensileSteelStrain < steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
|
|
156
295
|
throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.TENSILE_STEEL_NOT_YIELDING);
|
|
157
296
|
}
|
|
158
297
|
if (d_ > c) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rc-beam-design.js","sourceRoot":"","sources":["../../src/rc/rc-beam-design.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAyE;AACzE,wDAA0C;AAE1C,+
|
|
1
|
+
{"version":3,"file":"rc-beam-design.js","sourceRoot":"","sources":["../../src/rc/rc-beam-design.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateSteelJacketedBeamMomentCapacity = void 0;
|
|
3
|
+
exports.plateInterfaceBoltRequirement = exports.boltShearCapacity = exports.plateInterfaceShearFlow = exports.calculateSteelJacketedBeamMomentCapacity = void 0;
|
|
4
4
|
var rc_beam_steel_plate_jacketing_1 = require("./rc-beam-steel-plate-jacketing");
|
|
5
5
|
Object.defineProperty(exports, "calculateSteelJacketedBeamMomentCapacity", { enumerable: true, get: function () { return rc_beam_steel_plate_jacketing_1.calculateSteelJacketedBeamMomentCapacity; } });
|
|
6
|
+
var rc_beam_plate_interface_bolts_1 = require("./rc-beam-plate-interface-bolts");
|
|
7
|
+
Object.defineProperty(exports, "plateInterfaceShearFlow", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.plateInterfaceShearFlow; } });
|
|
8
|
+
Object.defineProperty(exports, "boltShearCapacity", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.boltShearCapacity; } });
|
|
9
|
+
Object.defineProperty(exports, "plateInterfaceBoltRequirement", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.plateInterfaceBoltRequirement; } });
|
|
6
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strengthening/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2F;AAAlF,yJAAA,wCAAwC,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strengthening/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2F;AAAlF,yJAAA,wCAAwC,OAAA;AACjD,iFAIyC;AAHvC,wIAAA,uBAAuB,OAAA;AACvB,kIAAA,iBAAiB,OAAA;AACjB,8IAAA,6BAA6B,OAAA"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { SectionState, BoltProps, PlateShearFlowInput, PlateInterfaceBoltInput } from "../core/types/plate-jacketing.type";
|
|
2
|
+
import { Warnings } from "../core/types/output-message.type";
|
|
3
|
+
/**
|
|
4
|
+
* Calculates the horizontal shear flow that must be transferred across each
|
|
5
|
+
* concrete-to-plate interface of a steel plate jacketed beam, q = V·Q/I, using an
|
|
6
|
+
* elastic transformed section.
|
|
7
|
+
*
|
|
8
|
+
* `Q` at an interface is the first moment of the area beyond that cut — the plate
|
|
9
|
+
* itself — while `ybar` and `Itr` come from one solve that includes every plate
|
|
10
|
+
* present, so adding a top plate also changes the bottom interface shear flow.
|
|
11
|
+
*
|
|
12
|
+
* @param input - Section, plate properties, factored shear V (kN), and section state
|
|
13
|
+
* @returns Object containing per-interface `top`/`bottom` shear flow (`null` when the
|
|
14
|
+
* plate is absent), `calculationDetails`, `unit`, and `warnings`
|
|
15
|
+
* @throws {RCDesignError} If V is not positive or no plate is present (201), the
|
|
16
|
+
* geometry is inconsistent (203), or no cracked neutral axis exists (204)
|
|
17
|
+
*/
|
|
18
|
+
export declare const plateInterfaceShearFlow: (input: PlateShearFlowInput) => {
|
|
19
|
+
top: {
|
|
20
|
+
q: number;
|
|
21
|
+
Q: number;
|
|
22
|
+
leverArm: number;
|
|
23
|
+
} | null;
|
|
24
|
+
bottom: {
|
|
25
|
+
q: number;
|
|
26
|
+
Q: number;
|
|
27
|
+
leverArm: number;
|
|
28
|
+
} | null;
|
|
29
|
+
calculationDetails: {
|
|
30
|
+
Ec: number;
|
|
31
|
+
ns: number;
|
|
32
|
+
np: number;
|
|
33
|
+
ybar: number;
|
|
34
|
+
Itr: number;
|
|
35
|
+
sectionState: SectionState;
|
|
36
|
+
};
|
|
37
|
+
unit: string;
|
|
38
|
+
warnings: Warnings;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Calculates the design shear strength of a single anchor bolt from the steel
|
|
42
|
+
* strength per ACI 318-19 17.7.1.2b, Vsa = 0.6 Ase,V futa, with φ = 0.65 from
|
|
43
|
+
* Table 17.5.3 and the futa cap of 17.6.1.2.
|
|
44
|
+
*
|
|
45
|
+
* Concrete breakout (17.7.2) and pryout (17.7.3) depend on edge distances, anchor
|
|
46
|
+
* spacing and embedment depth, and are NOT evaluated here — a warning always says so.
|
|
47
|
+
* Supply `phiVboltOverride` to use a manufacturer or ESR value instead.
|
|
48
|
+
*
|
|
49
|
+
* @param bolt - Anchor properties (Ase, futa, optional fya, diameter, shearPlanes, override)
|
|
50
|
+
* @returns Object containing `phiVbolt` (kN), `calculationDetails`, `unit`, and `warnings`
|
|
51
|
+
* @throws {RCDesignError} If the resolved capacity is not positive (202)
|
|
52
|
+
*/
|
|
53
|
+
export declare const boltShearCapacity: (bolt: BoltProps) => {
|
|
54
|
+
phiVbolt: number;
|
|
55
|
+
calculationDetails: {
|
|
56
|
+
source: string;
|
|
57
|
+
shearPlanes: number;
|
|
58
|
+
Vsa?: undefined;
|
|
59
|
+
futaEffective?: undefined;
|
|
60
|
+
};
|
|
61
|
+
unit: string;
|
|
62
|
+
warnings: Warnings;
|
|
63
|
+
} | {
|
|
64
|
+
phiVbolt: number;
|
|
65
|
+
calculationDetails: {
|
|
66
|
+
source: string;
|
|
67
|
+
Vsa: number;
|
|
68
|
+
futaEffective: number;
|
|
69
|
+
shearPlanes: number;
|
|
70
|
+
};
|
|
71
|
+
unit: string;
|
|
72
|
+
warnings: Warnings;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Determines the bolts required to transfer horizontal shear across each
|
|
76
|
+
* concrete-to-plate interface of a steel plate jacketed beam.
|
|
77
|
+
*
|
|
78
|
+
* For each plate present, the required bolt pitch follows from the interface shear
|
|
79
|
+
* flow (s = n·φVbolt / q) and the bolt count is taken as the larger of that pitch
|
|
80
|
+
* over the transfer length and the count needed to develop the full plate yield
|
|
81
|
+
* force (Ap·fy / φVbolt). `governedBy` reports which one controls.
|
|
82
|
+
*
|
|
83
|
+
* @param input - Section, plates, V (kN), bolt properties, bolts per row, and transfer length (mm)
|
|
84
|
+
* @returns Object containing per-interface `top`/`bottom` results (`null` when the plate
|
|
85
|
+
* is absent), `calculationDetails`, `unit`, and `warnings`
|
|
86
|
+
* @throws {RCDesignError} If V is not positive or no plate is present (201), the bolt
|
|
87
|
+
* capacity is invalid (202), the geometry is inconsistent (203), or no cracked
|
|
88
|
+
* neutral axis exists (204)
|
|
89
|
+
*/
|
|
90
|
+
export declare const plateInterfaceBoltRequirement: (input: PlateInterfaceBoltInput) => {
|
|
91
|
+
top: {
|
|
92
|
+
q: number;
|
|
93
|
+
Q: number;
|
|
94
|
+
leverArm: number;
|
|
95
|
+
requiredSpacing: number;
|
|
96
|
+
boltCount: number;
|
|
97
|
+
governedBy: string;
|
|
98
|
+
calculationDetails: {
|
|
99
|
+
spacingFromShearFlow: number;
|
|
100
|
+
rows: number;
|
|
101
|
+
boltCountFromShearFlow: number;
|
|
102
|
+
boltCountFromPlateForce: number;
|
|
103
|
+
plateForce: number;
|
|
104
|
+
};
|
|
105
|
+
} | null;
|
|
106
|
+
bottom: {
|
|
107
|
+
q: number;
|
|
108
|
+
Q: number;
|
|
109
|
+
leverArm: number;
|
|
110
|
+
requiredSpacing: number;
|
|
111
|
+
boltCount: number;
|
|
112
|
+
governedBy: string;
|
|
113
|
+
calculationDetails: {
|
|
114
|
+
spacingFromShearFlow: number;
|
|
115
|
+
rows: number;
|
|
116
|
+
boltCountFromShearFlow: number;
|
|
117
|
+
boltCountFromPlateForce: number;
|
|
118
|
+
plateForce: number;
|
|
119
|
+
};
|
|
120
|
+
} | null;
|
|
121
|
+
calculationDetails: {
|
|
122
|
+
phiVbolt: number;
|
|
123
|
+
boltsPerRow: number;
|
|
124
|
+
transferLength: number;
|
|
125
|
+
Ec: number;
|
|
126
|
+
ns: number;
|
|
127
|
+
np: number;
|
|
128
|
+
ybar: number;
|
|
129
|
+
Itr: number;
|
|
130
|
+
sectionState: SectionState;
|
|
131
|
+
};
|
|
132
|
+
unit: string;
|
|
133
|
+
warnings: Warnings;
|
|
134
|
+
};
|