formulab 0.20.1 → 0.22.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/CHANGELOG.md CHANGED
@@ -5,6 +5,49 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.22.0] - 2026-07-21
9
+
10
+ ### Added
11
+
12
+ - **`metal/columnBuckling`** — Euler elastic critical buckling load of a straight,
13
+ prismatic, axially loaded column. Given the elastic modulus, least moment of inertia,
14
+ area, unbraced length, end condition, and yield strength, it returns the effective
15
+ length factor `K`, effective length, Euler critical load `Pcr = π²EI/(KL)²`, critical
16
+ stress, radius of gyration, slenderness ratio, transition slenderness `Cc = π√(2E/σy)`,
17
+ squash (yield) load, and an `isElastic` verdict.
18
+ - End conditions map to AISC theoretical `K`: pinned-pinned 1.0, fixed-fixed 0.5,
19
+ fixed-free 2.0, fixed-pinned 0.7.
20
+ - **Slenderness validity guard** — `isElastic` is `slenderness ≥ Cc`. For short/stubby
21
+ columns (`slenderness < Cc`) inelastic buckling governs and raw Euler over-predicts;
22
+ `Pcr` is returned honestly (never clamped) alongside the flag and the reference
23
+ `yieldLoad`, so a consumer can warn instead of drawing an unreachable capacity.
24
+ - **v1 scope** (documented in the JSDoc): elastic Euler only (inelastic/Johnson flagged,
25
+ not computed), idealized theoretical `K`, concentric axial load on a prismatic member.
26
+ - `RangeError` on non-positive `youngsModulus`, `momentOfInertia`, `area`, `length`,
27
+ or `yieldStrength`.
28
+ - Reference: AISC 360 Chapter E; Euler (1744).
29
+
30
+ ## [0.21.0] - 2026-07-20
31
+
32
+ ### Added
33
+
34
+ - **`metal/weldStrength`** — load-carrying capacity of an equal-leg fillet weld
35
+ (AISC 360 ASD / AWS D1.1). Given leg size, weld length/count, electrode class, and
36
+ applied shear load, it returns the effective throat (`0.707 × leg`), effective area,
37
+ allowable shear stress (`0.30 × FEXX`), allowable load (capacity), actual stress,
38
+ utilization, the minimum leg that carries the load, and an `isSafe` verdict.
39
+ - Electrode classes `E60`–`E110` map to their exact SI `FEXX` (1 ksi = 6.894757 MPa,
40
+ rounded to the nearest MPa: E70 = 483, E100 = 689, E110 = 758).
41
+ - **v1 scope is deliberately conservative** (matches the common baseline calculators),
42
+ documented in the JSDoc: ASD only (LRFD deferred), longitudinal/conservative
43
+ `0.30 × FEXX` with no directional strength increase, weld-metal check only
44
+ (base-metal rupture is the engineer's responsibility), and equal-leg 90° joints.
45
+ Each is an additive extension point for future demand.
46
+ - A hand-derived golden test pins the AISC ASD model (E70, leg 6 mm, L 100 mm,
47
+ P 50 kN → capacity 61.47 kN, utilization 0.8135, min leg 4.881 mm).
48
+ - `appliedLoad = 0` is a valid capacity-only query; throws `RangeError` on non-positive
49
+ leg/length, `weldCount < 1`, or negative load.
50
+
8
51
  ## [0.20.1] - 2026-07-20
9
52
 
10
53
  ### Fixed
package/README.md CHANGED
@@ -11,12 +11,12 @@ A comprehensive collection of engineering formulas and calculations for manufact
11
11
 
12
12
  ## Features
13
13
 
14
- - **210 industrial calculations + 8 type guards** — OEE, Cpk, SPC control charts, Gage R&R, Weibull, metal weight, CNC machining, GD&T, pipe flow, CBM, NIOSH lifting, PMV/PPD, arc flash, battery SOH, GHG emissions, PID tuning, and more
14
+ - **211 industrial calculations + 8 type guards** — OEE, Cpk, SPC control charts, Gage R&R, Weibull, metal weight, CNC machining, GD&T, pipe flow, CBM, NIOSH lifting, PMV/PPD, arc flash, battery SOH, GHG emissions, PID tuning, and more
15
15
  - **15 specialized domains** — Quality, Metal, Chemical, Electronics, Construction, Automotive, Logistics, Energy, Safety, Food, Utility, Battery, Environmental, Machining, Industrial Engineering
16
16
  - **Zero dependencies** — Lightweight and fast
17
17
  - **TypeScript first** — Full type definitions included
18
18
  - **Tree-shakeable** — Import only what you need
19
- - **2,906 tests** — Coverage thresholds: 90% lines, 95% functions, 85% branches ([CI pipeline](https://github.com/iyulab/formulab/actions/workflows/ci.yml))
19
+ - **2,921 tests** — Coverage thresholds: 90% lines, 95% functions, 85% branches ([CI pipeline](https://github.com/iyulab/formulab/actions/workflows/ci.yml))
20
20
  - **Research-based** — Golden reference tests verified against NIOSH 94-110, AIAG/ASTM E2587, JIPM, ASME B16.5, ISO 22514-2, and more
21
21
 
22
22
  ## Verification Status
@@ -72,6 +72,7 @@ The following functions include tests verified against published reference value
72
72
  | `awgProperties()` | ANSI/AWG | AWG 0-40 diameter, resistance |
73
73
  | `pressFit()` | Shigley's Mechanical Engineering Design | Same-material solid-shaft interface pressure (39.36 MPa), nu-independence |
74
74
  | `spring()` | Shigley's Mechanical Engineering Design | Spring rate (Eq. 10-9), Wahl factor (Eq. 10-5), corrected shear stress (Eq. 10-7) |
75
+ | `weldStrength()` | AISC 360 ASD / AWS D1.1 | Equal-leg fillet: throat 0.707·leg, allowable shear 0.30·FEXX (E70=144.9 MPa), capacity/utilization |
75
76
 
76
77
  ### Edge Case Handling
77
78
 
@@ -221,6 +222,7 @@ import { metalWeight, bendAllowance, cutting, bearing } from 'formulab/metal';
221
222
  | `vibration()` | Natural frequency analysis |
222
223
  | `weldHeat()` | Weld heat input calculation |
223
224
  | `welding()` | Welding parameters |
225
+ | `weldStrength()` | Fillet weld strength / capacity (AISC ASD) |
224
226
  | `materialGradeConverter()` | ASTM/EN/JIS/GB/KS grade cross-reference |
225
227
  | `pipeSpec()` | ANSI/ASME pipe dimensions lookup |
226
228
  | `flangeSpec()` | ASME B16.5 flange dimensions lookup |
@@ -0,0 +1,40 @@
1
+ import type { ColumnBucklingInput, ColumnBucklingResult } from './types.js';
2
+ /**
3
+ * Euler elastic critical buckling load of a straight, prismatic, axially loaded column.
4
+ *
5
+ * # Formulas
6
+ * - Effective length: Le = K x L
7
+ * - Critical load (Euler): Pcr = pi^2 x E x I / Le^2
8
+ * - Radius of gyration: r = sqrt(I / A)
9
+ * - Slenderness ratio: lambda = Le / r
10
+ * - Critical stress: sigma_cr = Pcr / A
11
+ * - Transition slenderness (elastic/inelastic boundary, where Euler stress = sigma_y / 2):
12
+ * Cc = pi x sqrt(2 E / sigma_y)
13
+ * - Squash (yield) load: Py = A x sigma_y
14
+ *
15
+ * Units are SI: E in MPa (= N/mm^2), I in mm^4, A in mm^2, L in mm → Pcr in N, sigma in MPa.
16
+ *
17
+ * # The slenderness validity guard (why this matters)
18
+ * The Euler formula is only physically valid for **slender (long) columns** that buckle
19
+ * elastically before the material yields — i.e. lambda >= Cc. For **short/stubby columns**
20
+ * (lambda < Cc) inelastic (Johnson) buckling or plain squashing governs, and raw Euler
21
+ * **over-predicts the capacity, sometimes enormously** (as lambda → 0, Pcr → infinity).
22
+ * This function does NOT clamp Pcr — it returns the honest Euler value plus `isElastic`,
23
+ * so a consumer can flag "short column: Euler over-predicts, inelastic buckling governs"
24
+ * instead of silently drawing a capacity the column cannot reach. `yieldLoad` (Py = A·σy)
25
+ * is returned as the reference ceiling for that case.
26
+ *
27
+ * # v1 scope (deliberately simple — matches common baseline calculators)
28
+ * 1. **Elastic Euler only.** Inelastic / Johnson buckling is flagged via `isElastic`,
29
+ * not computed. A dedicated inelastic Fcr is deferred until demanded.
30
+ * 2. **Idealized (theoretical) K.** Recommended design K that account for real joint
31
+ * fixity (e.g. fixed-fixed 0.65) are deferred.
32
+ * 3. **Concentric axial load, initially straight, prismatic (constant EI) member.**
33
+ *
34
+ * Reference: AISC 360 Chapter E; Euler (1744); any mechanics-of-materials text.
35
+ *
36
+ * @throws {RangeError} youngsModulus, momentOfInertia, area, length, or yieldStrength
37
+ * is not positive
38
+ */
39
+ export declare function columnBuckling(input: ColumnBucklingInput): ColumnBucklingResult;
40
+ //# sourceMappingURL=columnBuckling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnBuckling.d.ts","sourceRoot":"","sources":["../../src/metal/columnBuckling.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAcpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAwC/E"}
@@ -0,0 +1,87 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * Effective-length factor K for idealized end conditions (AISC theoretical values,
4
+ * Steel Construction Manual Table C-A-7.1). These are the ideal K, not the higher
5
+ * recommended design values that account for real joint fixity — see v1 scope.
6
+ */
7
+ const K_FACTOR = {
8
+ 'pinned-pinned': 1.0,
9
+ 'fixed-fixed': 0.5,
10
+ 'fixed-free': 2.0,
11
+ 'fixed-pinned': 0.7, // theoretical 0.699..., rounded to the standard 0.7
12
+ };
13
+ /**
14
+ * Euler elastic critical buckling load of a straight, prismatic, axially loaded column.
15
+ *
16
+ * # Formulas
17
+ * - Effective length: Le = K x L
18
+ * - Critical load (Euler): Pcr = pi^2 x E x I / Le^2
19
+ * - Radius of gyration: r = sqrt(I / A)
20
+ * - Slenderness ratio: lambda = Le / r
21
+ * - Critical stress: sigma_cr = Pcr / A
22
+ * - Transition slenderness (elastic/inelastic boundary, where Euler stress = sigma_y / 2):
23
+ * Cc = pi x sqrt(2 E / sigma_y)
24
+ * - Squash (yield) load: Py = A x sigma_y
25
+ *
26
+ * Units are SI: E in MPa (= N/mm^2), I in mm^4, A in mm^2, L in mm → Pcr in N, sigma in MPa.
27
+ *
28
+ * # The slenderness validity guard (why this matters)
29
+ * The Euler formula is only physically valid for **slender (long) columns** that buckle
30
+ * elastically before the material yields — i.e. lambda >= Cc. For **short/stubby columns**
31
+ * (lambda < Cc) inelastic (Johnson) buckling or plain squashing governs, and raw Euler
32
+ * **over-predicts the capacity, sometimes enormously** (as lambda → 0, Pcr → infinity).
33
+ * This function does NOT clamp Pcr — it returns the honest Euler value plus `isElastic`,
34
+ * so a consumer can flag "short column: Euler over-predicts, inelastic buckling governs"
35
+ * instead of silently drawing a capacity the column cannot reach. `yieldLoad` (Py = A·σy)
36
+ * is returned as the reference ceiling for that case.
37
+ *
38
+ * # v1 scope (deliberately simple — matches common baseline calculators)
39
+ * 1. **Elastic Euler only.** Inelastic / Johnson buckling is flagged via `isElastic`,
40
+ * not computed. A dedicated inelastic Fcr is deferred until demanded.
41
+ * 2. **Idealized (theoretical) K.** Recommended design K that account for real joint
42
+ * fixity (e.g. fixed-fixed 0.65) are deferred.
43
+ * 3. **Concentric axial load, initially straight, prismatic (constant EI) member.**
44
+ *
45
+ * Reference: AISC 360 Chapter E; Euler (1744); any mechanics-of-materials text.
46
+ *
47
+ * @throws {RangeError} youngsModulus, momentOfInertia, area, length, or yieldStrength
48
+ * is not positive
49
+ */
50
+ export function columnBuckling(input) {
51
+ const { youngsModulus, momentOfInertia, area, length, endCondition, yieldStrength } = input;
52
+ if (youngsModulus <= 0) {
53
+ throw new RangeError('youngsModulus must be greater than 0');
54
+ }
55
+ if (momentOfInertia <= 0) {
56
+ throw new RangeError('momentOfInertia must be greater than 0');
57
+ }
58
+ if (area <= 0) {
59
+ throw new RangeError('area must be greater than 0');
60
+ }
61
+ if (length <= 0) {
62
+ throw new RangeError('length must be greater than 0');
63
+ }
64
+ if (yieldStrength <= 0) {
65
+ throw new RangeError('yieldStrength must be greater than 0');
66
+ }
67
+ const k = K_FACTOR[endCondition];
68
+ const effectiveLength = k * length; // mm
69
+ const criticalLoad = (Math.PI ** 2 * youngsModulus * momentOfInertia) / effectiveLength ** 2; // N
70
+ const radiusOfGyration = Math.sqrt(momentOfInertia / area); // mm
71
+ const slendernessRatio = effectiveLength / radiusOfGyration; // dimensionless
72
+ const criticalStress = criticalLoad / area; // MPa
73
+ const transitionSlenderness = Math.PI * Math.sqrt((2 * youngsModulus) / yieldStrength);
74
+ const yieldLoad = area * yieldStrength; // N
75
+ return {
76
+ effectiveLengthFactor: k,
77
+ effectiveLength: roundTo(effectiveLength, 2),
78
+ criticalLoad: roundTo(criticalLoad, 1),
79
+ criticalStress: roundTo(criticalStress, 2),
80
+ radiusOfGyration: roundTo(radiusOfGyration, 3),
81
+ slendernessRatio: roundTo(slendernessRatio, 2),
82
+ transitionSlenderness: roundTo(transitionSlenderness, 2),
83
+ yieldLoad: roundTo(yieldLoad, 1),
84
+ isElastic: slendernessRatio >= transitionSlenderness,
85
+ };
86
+ }
87
+ //# sourceMappingURL=columnBuckling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnBuckling.js","sourceRoot":"","sources":["../../src/metal/columnBuckling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC;;;;GAIG;AACH,MAAM,QAAQ,GAAuC;IACnD,eAAe,EAAE,GAAG;IACpB,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG,EAAE,oDAAoD;CAC1E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAE5F,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,CAAmC,KAAK;IAE3E,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,aAAa,GAAG,eAAe,CAAC,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,IAAI;IAClG,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAW,KAAK;IAC3E,MAAM,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC,CAAU,gBAAgB;IACtF,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,CAA0B,MAAM;IAC3E,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,IAAI,GAAG,aAAa,CAAC,CAA8B,IAAI;IAEzE,OAAO;QACL,qBAAqB,EAAE,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,SAAS,EAAE,gBAAgB,IAAI,qBAAqB;KACrD,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- export type { MetalShape, MaterialName, MetalWeightInput, MetalWeightResult, BendingMaterial, ShapeType, BendAllowanceInput, BendAllowanceResult, SpringbackInput, SpringbackResult, FlatPatternInput, FlatPatternResult, KFactorReverseInput, KFactorReverseResult, PressOperation, BendType, PressTonnageInput, PressTonnageResult, BearingType, BearingInput, BearingResult, BoltCalculationMode, LubricationCondition, BoltInput, BoltResult, CuttingOperation, CuttingInput, CuttingResult, CuttingAlgorithm, CuttingPiece, CuttingStockInput, CuttingPattern, CuttingStockResult, GearCalculationMode, GearInput, GearResult, HardnessScale, HardnessInput, HardnessResult, MaterialCategory, MaterialInput, MaterialResult, MaterialSpec, PressFitInput, PressFitResult, RoughnessScale, RoughnessInput, RoughnessResult, PitchType, ScrewInput, ScrewResult, ScrewSpec, SpringMaterial, SpringInput, SpringResult, ThreadStandard, TapInput, TapResult, ThreadType, ThreadInput, ThreadResult, ThreadSpec, FitType, ToleranceInput, ToleranceResult, VibrationSystem, CrossSection, VibrationMaterial, VibrationInput, FrequencyMode, VibrationResult, WeldProcess, WeldBaseMetal, CrackingRisk, WeldPreheatSourceCode, WeldRecommendationCode, WeldRecommendation, WeldHeatInput, WeldHeatResult, WeldingBaseMetal, JointType, WeldPosition, WeldingInput, WeldingRod, WeldingResult, MaterialStandard, MaterialGradeConverterInput, MaterialGradeConverterResult, PipeStandard, PipeSchedule, PipeSpecInput, PipeSpecResult, FlangeStandard, PressureClass, FlangeSpecInput, FlangeSpecResult, } from './types.js';
1
+ export type { MetalShape, MaterialName, MetalWeightInput, MetalWeightResult, BendingMaterial, ShapeType, BendAllowanceInput, BendAllowanceResult, SpringbackInput, SpringbackResult, FlatPatternInput, FlatPatternResult, KFactorReverseInput, KFactorReverseResult, PressOperation, BendType, PressTonnageInput, PressTonnageResult, BearingType, BearingInput, BearingResult, BoltCalculationMode, LubricationCondition, BoltInput, BoltResult, CuttingOperation, CuttingInput, CuttingResult, CuttingAlgorithm, CuttingPiece, CuttingStockInput, CuttingPattern, CuttingStockResult, GearCalculationMode, GearInput, GearResult, HardnessScale, HardnessInput, HardnessResult, MaterialCategory, MaterialInput, MaterialResult, MaterialSpec, PressFitInput, PressFitResult, RoughnessScale, RoughnessInput, RoughnessResult, PitchType, ScrewInput, ScrewResult, ScrewSpec, SpringMaterial, SpringInput, SpringResult, ThreadStandard, TapInput, TapResult, ThreadType, ThreadInput, ThreadResult, ThreadSpec, FitType, ToleranceInput, ToleranceResult, VibrationSystem, CrossSection, VibrationMaterial, VibrationInput, FrequencyMode, VibrationResult, WeldProcess, WeldBaseMetal, CrackingRisk, WeldPreheatSourceCode, WeldRecommendationCode, WeldRecommendation, WeldHeatInput, WeldHeatResult, WeldingBaseMetal, JointType, WeldPosition, WeldingInput, WeldingRod, WeldingResult, WeldElectrodeClass, WeldStrengthInput, WeldStrengthResult, ColumnEndCondition, ColumnBucklingInput, ColumnBucklingResult, MaterialStandard, MaterialGradeConverterInput, MaterialGradeConverterResult, PipeStandard, PipeSchedule, PipeSpecInput, PipeSpecResult, FlangeStandard, PressureClass, FlangeSpecInput, FlangeSpecResult, } from './types.js';
2
2
  export { isMetalWeightInput, isBoltInput } from './guards.js';
3
3
  export { metalWeight } from './metalWeight.js';
4
4
  export { bendAllowance } from './bendAllowance.js';
@@ -23,6 +23,8 @@ export { tolerance } from './tolerance.js';
23
23
  export { vibration } from './vibration.js';
24
24
  export { weldHeat } from './weldHeat.js';
25
25
  export { welding } from './welding.js';
26
+ export { weldStrength } from './weldStrength.js';
27
+ export { columnBuckling } from './columnBuckling.js';
26
28
  export { materialGradeConverter } from './materialGradeConverter.js';
27
29
  export { pipeSpec } from './pipeSpec.js';
28
30
  export { flangeSpec } from './flangeSpec.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ export { tolerance } from './tolerance.js';
24
24
  export { vibration } from './vibration.js';
25
25
  export { weldHeat } from './weldHeat.js';
26
26
  export { welding } from './welding.js';
27
+ export { weldStrength } from './weldStrength.js';
28
+ export { columnBuckling } from './columnBuckling.js';
27
29
  export { materialGradeConverter } from './materialGradeConverter.js';
28
30
  export { pipeSpec } from './pipeSpec.js';
29
31
  export { flangeSpec } from './flangeSpec.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"AA2HA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metal/index.ts"],"names":[],"mappings":"AAmIA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -567,6 +567,57 @@ export interface WeldingResult {
567
567
  };
568
568
  notes: string[];
569
569
  }
570
+ /**
571
+ * Weld Strength Types
572
+ *
573
+ * Filler-metal electrode classification. The numeric part is the minimum tensile
574
+ * strength of the deposited weld metal in ksi (E70 = 70 ksi). {@link weldStrength}
575
+ * maps each to an SI value; see FEXX table in weldStrength.ts.
576
+ */
577
+ export type WeldElectrodeClass = 'E60' | 'E70' | 'E80' | 'E90' | 'E100' | 'E110';
578
+ export interface WeldStrengthInput {
579
+ legSize: number;
580
+ weldLength: number;
581
+ weldCount?: number;
582
+ electrode: WeldElectrodeClass;
583
+ appliedLoad: number;
584
+ }
585
+ export interface WeldStrengthResult {
586
+ throat: number;
587
+ effectiveArea: number;
588
+ allowableShearStress: number;
589
+ allowableLoad: number;
590
+ actualStress: number;
591
+ utilization: number;
592
+ minRequiredLeg: number;
593
+ isSafe: boolean;
594
+ }
595
+ /**
596
+ * Column Buckling (Euler) Types
597
+ *
598
+ * Idealized end-restraint condition → effective-length factor K (AISC theoretical):
599
+ * pinned-pinned 1.0, fixed-fixed 0.5, fixed-free 2.0, fixed-pinned 0.7.
600
+ */
601
+ export type ColumnEndCondition = 'pinned-pinned' | 'fixed-fixed' | 'fixed-free' | 'fixed-pinned';
602
+ export interface ColumnBucklingInput {
603
+ youngsModulus: number;
604
+ momentOfInertia: number;
605
+ area: number;
606
+ length: number;
607
+ endCondition: ColumnEndCondition;
608
+ yieldStrength: number;
609
+ }
610
+ export interface ColumnBucklingResult {
611
+ effectiveLengthFactor: number;
612
+ effectiveLength: number;
613
+ criticalLoad: number;
614
+ criticalStress: number;
615
+ radiusOfGyration: number;
616
+ slendernessRatio: number;
617
+ transitionSlenderness: number;
618
+ yieldLoad: number;
619
+ isElastic: boolean;
620
+ }
570
621
  /**
571
622
  * Material Grade Converter Types
572
623
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metal/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metal/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { WeldStrengthInput, WeldStrengthResult } from './types.js';
2
+ /**
3
+ * Calculate the load-carrying capacity of an equal-leg fillet weld (AISC ASD).
4
+ *
5
+ * # Formulas
6
+ * - Effective throat: t = 0.707 x leg
7
+ * - Effective area: Aw = t x L x n
8
+ * - Allowable shear stress: Fw = 0.30 x FEXX
9
+ * - Allowable load (capacity): Pallow = Fw x Aw
10
+ * - Actual shear stress: tau = P / Aw
11
+ * - Utilization: u = tau / Fw = P / Pallow
12
+ * - Minimum required leg: leg_min = P / (Fw x 0.707 x L x n)
13
+ *
14
+ * Units are SI throughout: leg/length in mm give Aw in mm^2; Fw in MPa (= N/mm^2)
15
+ * gives Pallow directly in N. Cross-check: E70 -> Fw = 0.30 x 70 = 21 ksi, the
16
+ * classic AISC worked-example value (= 0.30 x 483 MPa = 144.9 MPa).
17
+ *
18
+ * # v1 scope (deliberately conservative — matches the common baseline calculators)
19
+ * These are recorded here so the boundary is explicit, not accidental:
20
+ * 1. **ASD only.** Allowable-stress design (0.30 x FEXX). LRFD (phi = 0.75,
21
+ * Fnw = 0.60 x FEXX) is deferred until demanded via a `method` parameter.
22
+ * 2. **Longitudinal / conservative.** No directional strength increase. AISC allows
23
+ * up to 1.5x for transverse loading (Fw = 0.60 x FEXX x (1 + 0.5 sin^1.5 theta));
24
+ * omitting it is conservative and matches most basic calculators.
25
+ * 3. **Weld metal only.** Base-metal (shear rupture) checks are the engineer's
26
+ * responsibility; a full design also verifies the connected material.
27
+ * 4. **Equal-leg, 90-degree joint.** t = 0.707 x leg assumes an equal-leg fillet on a
28
+ * square (90-degree) joint. Unequal-leg / non-90-degree joints are deferred.
29
+ *
30
+ * Reference: AISC 360 (Steel Construction Manual), AWS D1.1 Structural Welding Code.
31
+ *
32
+ * @throws {RangeError} legSize or weldLength is not positive, weldCount < 1, or
33
+ * appliedLoad is negative
34
+ */
35
+ export declare function weldStrength(input: WeldStrengthInput): WeldStrengthResult;
36
+ //# sourceMappingURL=weldStrength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weldStrength.d.ts","sourceRoot":"","sources":["../../src/metal/weldStrength.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAyBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA6CzE"}
@@ -0,0 +1,94 @@
1
+ import { roundTo } from '../utils.js';
2
+ /**
3
+ * Minimum tensile strength of deposited weld metal (FEXX), in MPa.
4
+ *
5
+ * The electrode class number is FEXX in ksi (E70 = 70 ksi). Values below are the
6
+ * exact SI conversion of the nominal ksi rating (1 ksi = 6.894757 MPa), rounded to
7
+ * the nearest MPa — NOT eyeballed. E100 = 100 x 6.894757 = 689.48 -> 689 (not 690);
8
+ * E110 = 758.42 -> 758 (not 760).
9
+ */
10
+ const FEXX_MPA = {
11
+ E60: 414, // 60 ksi = 413.69 MPa
12
+ E70: 483, // 70 ksi = 482.63 MPa
13
+ E80: 552, // 80 ksi = 551.58 MPa
14
+ E90: 621, // 90 ksi = 620.53 MPa
15
+ E100: 689, // 100 ksi = 689.48 MPa
16
+ E110: 758, // 110 ksi = 758.42 MPa
17
+ };
18
+ /** Effective-throat factor for an equal-leg, 90-degree fillet weld: t = 0.707 x leg. */
19
+ const THROAT_FACTOR = 0.707;
20
+ /** AISC ASD allowable shear stress on the weld throat: Fw = 0.30 x FEXX. */
21
+ const ASD_SHEAR_FACTOR = 0.30;
22
+ /**
23
+ * Calculate the load-carrying capacity of an equal-leg fillet weld (AISC ASD).
24
+ *
25
+ * # Formulas
26
+ * - Effective throat: t = 0.707 x leg
27
+ * - Effective area: Aw = t x L x n
28
+ * - Allowable shear stress: Fw = 0.30 x FEXX
29
+ * - Allowable load (capacity): Pallow = Fw x Aw
30
+ * - Actual shear stress: tau = P / Aw
31
+ * - Utilization: u = tau / Fw = P / Pallow
32
+ * - Minimum required leg: leg_min = P / (Fw x 0.707 x L x n)
33
+ *
34
+ * Units are SI throughout: leg/length in mm give Aw in mm^2; Fw in MPa (= N/mm^2)
35
+ * gives Pallow directly in N. Cross-check: E70 -> Fw = 0.30 x 70 = 21 ksi, the
36
+ * classic AISC worked-example value (= 0.30 x 483 MPa = 144.9 MPa).
37
+ *
38
+ * # v1 scope (deliberately conservative — matches the common baseline calculators)
39
+ * These are recorded here so the boundary is explicit, not accidental:
40
+ * 1. **ASD only.** Allowable-stress design (0.30 x FEXX). LRFD (phi = 0.75,
41
+ * Fnw = 0.60 x FEXX) is deferred until demanded via a `method` parameter.
42
+ * 2. **Longitudinal / conservative.** No directional strength increase. AISC allows
43
+ * up to 1.5x for transverse loading (Fw = 0.60 x FEXX x (1 + 0.5 sin^1.5 theta));
44
+ * omitting it is conservative and matches most basic calculators.
45
+ * 3. **Weld metal only.** Base-metal (shear rupture) checks are the engineer's
46
+ * responsibility; a full design also verifies the connected material.
47
+ * 4. **Equal-leg, 90-degree joint.** t = 0.707 x leg assumes an equal-leg fillet on a
48
+ * square (90-degree) joint. Unequal-leg / non-90-degree joints are deferred.
49
+ *
50
+ * Reference: AISC 360 (Steel Construction Manual), AWS D1.1 Structural Welding Code.
51
+ *
52
+ * @throws {RangeError} legSize or weldLength is not positive, weldCount < 1, or
53
+ * appliedLoad is negative
54
+ */
55
+ export function weldStrength(input) {
56
+ const { legSize, weldLength, electrode, appliedLoad } = input;
57
+ const weldCount = input.weldCount ?? 1;
58
+ // Validation
59
+ if (legSize <= 0) {
60
+ throw new RangeError('legSize must be greater than 0');
61
+ }
62
+ if (weldLength <= 0) {
63
+ throw new RangeError('weldLength must be greater than 0');
64
+ }
65
+ if (weldCount < 1) {
66
+ throw new RangeError('weldCount must be at least 1');
67
+ }
68
+ if (appliedLoad < 0) {
69
+ throw new RangeError('appliedLoad must not be negative');
70
+ }
71
+ const fexx = FEXX_MPA[electrode];
72
+ // Geometry and capacity
73
+ const throat = THROAT_FACTOR * legSize; // mm
74
+ const effectiveArea = throat * weldLength * weldCount; // mm^2
75
+ const allowableShearStress = ASD_SHEAR_FACTOR * fexx; // MPa
76
+ const allowableLoad = allowableShearStress * effectiveArea; // N (MPa x mm^2)
77
+ // Demand
78
+ const actualStress = appliedLoad / effectiveArea; // MPa
79
+ const utilization = appliedLoad / allowableLoad; // ratio
80
+ // Smallest equal leg that carries appliedLoad (inverts throat + capacity):
81
+ // leg_min = P / (Fw x 0.707 x L x n). Denominator is always > 0.
82
+ const minRequiredLeg = appliedLoad / (allowableShearStress * THROAT_FACTOR * weldLength * weldCount);
83
+ return {
84
+ throat: roundTo(throat, 3),
85
+ effectiveArea: roundTo(effectiveArea, 2),
86
+ allowableShearStress: roundTo(allowableShearStress, 2),
87
+ allowableLoad: roundTo(allowableLoad, 1),
88
+ actualStress: roundTo(actualStress, 2),
89
+ utilization: roundTo(utilization, 4),
90
+ minRequiredLeg: roundTo(minRequiredLeg, 3),
91
+ isSafe: utilization <= 1,
92
+ };
93
+ }
94
+ //# sourceMappingURL=weldStrength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weldStrength.js","sourceRoot":"","sources":["../../src/metal/weldStrength.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAuC;IACnD,GAAG,EAAE,GAAG,EAAI,uBAAuB;IACnC,GAAG,EAAE,GAAG,EAAI,uBAAuB;IACnC,GAAG,EAAE,GAAG,EAAI,uBAAuB;IACnC,GAAG,EAAE,GAAG,EAAI,uBAAuB;IACnC,IAAI,EAAE,GAAG,EAAG,uBAAuB;IACnC,IAAI,EAAE,GAAG,EAAG,uBAAuB;CACpC,CAAC;AAEF,wFAAwF;AACxF,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IAEvC,aAAa;IACb,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAAC,gCAAgC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEjC,wBAAwB;IACxB,MAAM,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,CAAiB,KAAK;IAC7D,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC,CAAE,OAAO;IAC/D,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAG,MAAM;IAC9D,MAAM,aAAa,GAAG,oBAAoB,GAAG,aAAa,CAAC,CAAC,iBAAiB;IAE7E,SAAS;IACT,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC,CAAO,MAAM;IAC9D,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC,CAAQ,QAAQ;IAEhE,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,cAAc,GAClB,WAAW,GAAG,CAAC,oBAAoB,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IAEhF,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,WAAW,IAAI,CAAC;KACzB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "formulab",
3
- "version": "0.20.1",
4
- "description": "Manufacturing & Engineering calculation formulas library - 210 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
3
+ "version": "0.22.0",
4
+ "description": "Manufacturing & Engineering calculation formulas library - 211 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",