ocs-calculators 0.1.2 → 0.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/CHANGELOG.md +12 -0
- package/README.md +3 -3
- package/README_EN.md +1 -1
- package/dist/anchor-length/index.cjs +11 -0
- package/dist/anchor-length/index.cjs.map +1 -0
- package/dist/anchor-length/index.d.cts +45 -0
- package/dist/anchor-length/index.d.ts +45 -0
- package/dist/anchor-length/index.js +11 -0
- package/dist/anchor-length/index.js.map +1 -0
- package/dist/bvalue/index.cjs +9 -0
- package/dist/bvalue/index.cjs.map +1 -0
- package/dist/bvalue/index.d.cts +35 -0
- package/dist/bvalue/index.d.ts +35 -0
- package/dist/bvalue/index.js +9 -0
- package/dist/bvalue/index.js.map +1 -0
- package/dist/cantilever/index.cjs +11 -0
- package/dist/cantilever/index.cjs.map +1 -0
- package/dist/cantilever/index.d.cts +31 -0
- package/dist/cantilever/index.d.ts +31 -0
- package/dist/cantilever/index.js +11 -0
- package/dist/cantilever/index.js.map +1 -0
- package/dist/chunk-3GREMF76.js +44 -0
- package/dist/chunk-3GREMF76.js.map +1 -0
- package/dist/chunk-4344WWAF.cjs +58 -0
- package/dist/chunk-4344WWAF.cjs.map +1 -0
- package/dist/chunk-57J7I6JA.cjs +116 -0
- package/dist/chunk-57J7I6JA.cjs.map +1 -0
- package/dist/chunk-75EGROQB.js +53 -0
- package/dist/chunk-75EGROQB.js.map +1 -0
- package/dist/chunk-C2XU3XKP.js +46 -0
- package/dist/chunk-C2XU3XKP.js.map +1 -0
- package/dist/chunk-CLVLOLUJ.js +45 -0
- package/dist/chunk-CLVLOLUJ.js.map +1 -0
- package/dist/chunk-CSLI5HEJ.cjs +53 -0
- package/dist/chunk-CSLI5HEJ.cjs.map +1 -0
- package/dist/chunk-D5F5ES2R.js +163 -0
- package/dist/chunk-D5F5ES2R.js.map +1 -0
- package/dist/chunk-HXALVJ4G.cjs +44 -0
- package/dist/chunk-HXALVJ4G.cjs.map +1 -0
- package/dist/chunk-HZWNKKIB.js +42 -0
- package/dist/chunk-HZWNKKIB.js.map +1 -0
- package/dist/{chunk-CVA4EH2K.js → chunk-IQR3SRCD.js} +9 -9
- package/dist/chunk-IQR3SRCD.js.map +1 -0
- package/dist/chunk-LBGUOTCJ.cjs +45 -0
- package/dist/chunk-LBGUOTCJ.cjs.map +1 -0
- package/dist/{chunk-MZBQ4546.cjs → chunk-MTAYG3U2.cjs} +9 -9
- package/dist/chunk-MTAYG3U2.cjs.map +1 -0
- package/dist/chunk-PYNVEHGR.cjs +46 -0
- package/dist/chunk-PYNVEHGR.cjs.map +1 -0
- package/dist/chunk-TO46PTS3.js +116 -0
- package/dist/chunk-TO46PTS3.js.map +1 -0
- package/dist/chunk-VXVTT6WS.js +58 -0
- package/dist/chunk-VXVTT6WS.js.map +1 -0
- package/dist/chunk-WGTOBRYV.cjs +42 -0
- package/dist/chunk-WGTOBRYV.cjs.map +1 -0
- package/dist/chunk-X25CXRVE.cjs +163 -0
- package/dist/chunk-X25CXRVE.cjs.map +1 -0
- package/dist/copper/index.cjs +2 -2
- package/dist/copper/index.d.cts +2 -2
- package/dist/copper/index.d.ts +2 -2
- package/dist/copper/index.js +1 -1
- package/dist/creepage/index.cjs +15 -0
- package/dist/creepage/index.cjs.map +1 -0
- package/dist/creepage/index.d.cts +40 -0
- package/dist/creepage/index.d.ts +40 -0
- package/dist/creepage/index.js +15 -0
- package/dist/creepage/index.js.map +1 -0
- package/dist/cross-span/index.cjs +9 -0
- package/dist/cross-span/index.cjs.map +1 -0
- package/dist/cross-span/index.d.cts +68 -0
- package/dist/cross-span/index.d.ts +68 -0
- package/dist/cross-span/index.js +9 -0
- package/dist/cross-span/index.js.map +1 -0
- package/dist/index.cjs +83 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -2
- package/dist/index.d.ts +10 -2
- package/dist/index.js +92 -24
- package/dist/index.js.map +1 -1
- package/dist/pole-capacity/index.cjs +13 -0
- package/dist/pole-capacity/index.cjs.map +1 -0
- package/dist/pole-capacity/index.d.cts +47 -0
- package/dist/pole-capacity/index.d.ts +47 -0
- package/dist/pole-capacity/index.js +13 -0
- package/dist/pole-capacity/index.js.map +1 -0
- package/dist/sag/index.cjs +13 -0
- package/dist/sag/index.cjs.map +1 -0
- package/dist/sag/index.d.cts +21 -0
- package/dist/sag/index.d.ts +21 -0
- package/dist/sag/index.js +13 -0
- package/dist/sag/index.js.map +1 -0
- package/dist/steady-arm/index.cjs +11 -0
- package/dist/steady-arm/index.cjs.map +1 -0
- package/dist/steady-arm/index.d.cts +66 -0
- package/dist/steady-arm/index.d.ts +66 -0
- package/dist/steady-arm/index.js +11 -0
- package/dist/steady-arm/index.js.map +1 -0
- package/package.json +43 -3
- package/dist/chunk-CVA4EH2K.js.map +0 -1
- package/dist/chunk-MZBQ4546.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
本文件格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
|
|
4
4
|
版本号遵循[语义化版本](https://semver.org/lang/zh-CN/)。
|
|
5
5
|
|
|
6
|
+
## [0.1.3] - 2026-09-07
|
|
7
|
+
|
|
8
|
+
### 修复
|
|
9
|
+
|
|
10
|
+
- **型号代码规范化**:`COPPER_TABLE` 与铜计算器的型号键由 H 前置误写形态
|
|
11
|
+
(`CTHM` / `CTHA` / `CTHS`)统一为站内规范写法 **`CTMH` / `CTAH` / `CTS`**
|
|
12
|
+
(H 后置构词,与 TB/T 2809-2026 牌号体系及站点词条口径一致)。
|
|
13
|
+
破坏性变更:以旧键字符串调用 copper 相关函数的调用方需同步改名,
|
|
14
|
+
旧键传入会得到「未知型号」错误。
|
|
15
|
+
- 同日已在站点部署侧(itswe `calculator/assets/calc-core.js` 与 7 个计算器页)
|
|
16
|
+
完成相同归一,并修复 7 页输入控件的畸形 `id` 属性(曾致 JS 绑定整体失效)。
|
|
17
|
+
|
|
6
18
|
## [0.1.2] - 2026-09-06
|
|
7
19
|
|
|
8
20
|
### 新增
|
package/README.md
CHANGED
|
@@ -180,8 +180,8 @@ src/<模块名>/
|
|
|
180
180
|
|
|
181
181
|
## 相关项目
|
|
182
182
|
|
|
183
|
-
-
|
|
184
|
-
- [itswe](https://github.com/showhoo/itswe) —
|
|
183
|
+
- ocs-wiki-content — 504 条词条快照与结构化数据(规划中,仓库未建,建仓后再挂链接)
|
|
184
|
+
- [itswe](https://github.com/showhoo/itswe) — 站点介绍与建站文档
|
|
185
185
|
|
|
186
186
|
## 赞助
|
|
187
187
|
|
|
@@ -192,7 +192,7 @@ src/<模块名>/
|
|
|
192
192
|
## 授权
|
|
193
193
|
|
|
194
194
|
- **代码**:[MIT](./LICENSE)
|
|
195
|
-
- **配套百科内容**:CC BY-SA 4.0(见
|
|
195
|
+
- **配套百科内容**:CC BY-SA 4.0(见 [itswe](https://github.com/showhoo/itswe) 仓库 LICENSE 与 [itswe.com](https://www.itswe.com))
|
|
196
196
|
|
|
197
197
|
---
|
|
198
198
|
|
package/README_EN.md
CHANGED
|
@@ -137,7 +137,7 @@ src/<module>/
|
|
|
137
137
|
|
|
138
138
|
Development and maintenance of this project is supported by:
|
|
139
139
|
|
|
140
|
-
**[Henan
|
|
140
|
+
**[Henan Chuangwit Railway Equipment Co., Ltd.](https://www.chuangwit.com)** (河南创为铁路器材有限公司)
|
|
141
141
|
|
|
142
142
|
## License
|
|
143
143
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkCSLI5HEJcjs = require('../chunk-CSLI5HEJ.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.TENSION_DIFF_RATIO = _chunkCSLI5HEJcjs.TENSION_DIFF_RATIO; exports.anchorLengthCheck = _chunkCSLI5HEJcjs.anchorLengthCheck; exports.anchorLengthMeta = _chunkCSLI5HEJcjs.anchorLengthMeta;
|
|
11
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/anchor-length/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACF,kMAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/anchor-length/index.cjs"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
|
|
2
|
+
|
|
3
|
+
declare const anchorLengthMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** 张力增量判据(TB 10009-2016 第 5.4.7 条) */
|
|
6
|
+
declare const TENSION_DIFF_RATIO = 0.1;
|
|
7
|
+
/** 锚段张力增量计算参数(教材口径,直线吊弦项量纲已复核)。单位:m、kN、1/℃、℃。 */
|
|
8
|
+
interface AnchorLengthInput {
|
|
9
|
+
/** 区段类型:'line' 直线 | 'curve' 曲线 */
|
|
10
|
+
readonly section: 'line' | 'curve';
|
|
11
|
+
/** 接触线额定张力 T_N,kN(判据基准) */
|
|
12
|
+
readonly ratedTensionKN: number;
|
|
13
|
+
/** 半锚段长度 L(中心锚结至补偿器),m */
|
|
14
|
+
readonly halfSpanM?: number;
|
|
15
|
+
/** 曲线半径 R,m(曲线区段) */
|
|
16
|
+
readonly curveRadiusM?: number;
|
|
17
|
+
/** 定位器长度 d,m(曲线区段) */
|
|
18
|
+
readonly regulatorLengthM?: number;
|
|
19
|
+
/** 定位器数量 n(曲线区段) */
|
|
20
|
+
readonly regulatorCount?: number;
|
|
21
|
+
/** 跨距 l,m(直线吊弦项) */
|
|
22
|
+
readonly spanM?: number;
|
|
23
|
+
/** 吊弦平均长度 c,m(直线吊弦项) */
|
|
24
|
+
readonly dropperLengthM?: number;
|
|
25
|
+
/** 接触线单位重 g_j,kN/m(直线吊弦项) */
|
|
26
|
+
readonly wireWeightKNPerM?: number;
|
|
27
|
+
/** 线胀系数 α,1/℃(直线吊弦项) */
|
|
28
|
+
readonly expansionCoeff?: number;
|
|
29
|
+
/** 计算温差 Δt,℃(直线吊弦项) */
|
|
30
|
+
readonly tempDeltaC?: number;
|
|
31
|
+
}
|
|
32
|
+
interface AnchorLengthResult {
|
|
33
|
+
/** 张力增量,N */
|
|
34
|
+
readonly deltaN: number;
|
|
35
|
+
/** 判据限值 10%·T_N,N */
|
|
36
|
+
readonly limitN: number;
|
|
37
|
+
/** 张力差占额定张力比例 */
|
|
38
|
+
readonly ratio: number;
|
|
39
|
+
/** 是否合格(ΔT ≤ 10%·T_N) */
|
|
40
|
+
readonly passes: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** 锚段张力增量(教材口径)与 10% 判据校核 */
|
|
43
|
+
declare function anchorLengthCheck(input: AnchorLengthInput): AnchorLengthResult;
|
|
44
|
+
|
|
45
|
+
export { type AnchorLengthInput, type AnchorLengthResult, TENSION_DIFF_RATIO, anchorLengthCheck, anchorLengthMeta };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.js';
|
|
2
|
+
|
|
3
|
+
declare const anchorLengthMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** 张力增量判据(TB 10009-2016 第 5.4.7 条) */
|
|
6
|
+
declare const TENSION_DIFF_RATIO = 0.1;
|
|
7
|
+
/** 锚段张力增量计算参数(教材口径,直线吊弦项量纲已复核)。单位:m、kN、1/℃、℃。 */
|
|
8
|
+
interface AnchorLengthInput {
|
|
9
|
+
/** 区段类型:'line' 直线 | 'curve' 曲线 */
|
|
10
|
+
readonly section: 'line' | 'curve';
|
|
11
|
+
/** 接触线额定张力 T_N,kN(判据基准) */
|
|
12
|
+
readonly ratedTensionKN: number;
|
|
13
|
+
/** 半锚段长度 L(中心锚结至补偿器),m */
|
|
14
|
+
readonly halfSpanM?: number;
|
|
15
|
+
/** 曲线半径 R,m(曲线区段) */
|
|
16
|
+
readonly curveRadiusM?: number;
|
|
17
|
+
/** 定位器长度 d,m(曲线区段) */
|
|
18
|
+
readonly regulatorLengthM?: number;
|
|
19
|
+
/** 定位器数量 n(曲线区段) */
|
|
20
|
+
readonly regulatorCount?: number;
|
|
21
|
+
/** 跨距 l,m(直线吊弦项) */
|
|
22
|
+
readonly spanM?: number;
|
|
23
|
+
/** 吊弦平均长度 c,m(直线吊弦项) */
|
|
24
|
+
readonly dropperLengthM?: number;
|
|
25
|
+
/** 接触线单位重 g_j,kN/m(直线吊弦项) */
|
|
26
|
+
readonly wireWeightKNPerM?: number;
|
|
27
|
+
/** 线胀系数 α,1/℃(直线吊弦项) */
|
|
28
|
+
readonly expansionCoeff?: number;
|
|
29
|
+
/** 计算温差 Δt,℃(直线吊弦项) */
|
|
30
|
+
readonly tempDeltaC?: number;
|
|
31
|
+
}
|
|
32
|
+
interface AnchorLengthResult {
|
|
33
|
+
/** 张力增量,N */
|
|
34
|
+
readonly deltaN: number;
|
|
35
|
+
/** 判据限值 10%·T_N,N */
|
|
36
|
+
readonly limitN: number;
|
|
37
|
+
/** 张力差占额定张力比例 */
|
|
38
|
+
readonly ratio: number;
|
|
39
|
+
/** 是否合格(ΔT ≤ 10%·T_N) */
|
|
40
|
+
readonly passes: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** 锚段张力增量(教材口径)与 10% 判据校核 */
|
|
43
|
+
declare function anchorLengthCheck(input: AnchorLengthInput): AnchorLengthResult;
|
|
44
|
+
|
|
45
|
+
export { type AnchorLengthInput, type AnchorLengthResult, TENSION_DIFF_RATIO, anchorLengthCheck, anchorLengthMeta };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkHXALVJ4Gcjs = require('../chunk-HXALVJ4G.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.bValue = _chunkHXALVJ4Gcjs.bValue; exports.bvalueMeta = _chunkHXALVJ4Gcjs.bvalueMeta;
|
|
9
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/bvalue/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACF,6FAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/bvalue/index.cjs"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
|
|
2
|
+
|
|
3
|
+
declare const bvalueMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** b 值(坠砣底面距地面高度)计算参数。单位:长度 mm、温度 ℃、张力 kN。 */
|
|
6
|
+
interface BValueInput {
|
|
7
|
+
/** 设计最小 b 值 b_min,mm(最高温度时坠砣最低位) */
|
|
8
|
+
readonly minBMM: number;
|
|
9
|
+
/** 传动比倍数 n(1:3 取 3) */
|
|
10
|
+
readonly ratio: number;
|
|
11
|
+
/** 线膨胀系数 α,1/℃(铜合金约 1.7e-5) */
|
|
12
|
+
readonly expansionCoeff: number;
|
|
13
|
+
/** 半锚段长度 L,mm */
|
|
14
|
+
readonly halfSpanMM: number;
|
|
15
|
+
/** 最高工作温度 t_max,℃ */
|
|
16
|
+
readonly maxTempC: number;
|
|
17
|
+
/** 安装/检调温度 t_x,℃ */
|
|
18
|
+
readonly targetTempC: number;
|
|
19
|
+
/** 额定张力 T,kN(用于坠砣重量换算) */
|
|
20
|
+
readonly tensionKN?: number;
|
|
21
|
+
}
|
|
22
|
+
interface BValueResult {
|
|
23
|
+
/** 当前温度 b 值 b_x,mm */
|
|
24
|
+
readonly bMM: number;
|
|
25
|
+
/** 温度伸缩量 ΔL = α·L·(t_max − t_x),mm */
|
|
26
|
+
readonly stretchMM: number;
|
|
27
|
+
/** 坠砣侧行程变化 n·ΔL,mm */
|
|
28
|
+
readonly strokeMM: number;
|
|
29
|
+
/** 坠砣总质量(W=T/n,m≈102·W,g 取 9.81 m/s²),kg */
|
|
30
|
+
readonly weightKg: number | null;
|
|
31
|
+
}
|
|
32
|
+
/** b 值计算:b_x = b_min + n·α·L·(t_max − t_x) */
|
|
33
|
+
declare function bValue(params: BValueInput): BValueResult;
|
|
34
|
+
|
|
35
|
+
export { type BValueInput, type BValueResult, bValue, bvalueMeta };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.js';
|
|
2
|
+
|
|
3
|
+
declare const bvalueMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** b 值(坠砣底面距地面高度)计算参数。单位:长度 mm、温度 ℃、张力 kN。 */
|
|
6
|
+
interface BValueInput {
|
|
7
|
+
/** 设计最小 b 值 b_min,mm(最高温度时坠砣最低位) */
|
|
8
|
+
readonly minBMM: number;
|
|
9
|
+
/** 传动比倍数 n(1:3 取 3) */
|
|
10
|
+
readonly ratio: number;
|
|
11
|
+
/** 线膨胀系数 α,1/℃(铜合金约 1.7e-5) */
|
|
12
|
+
readonly expansionCoeff: number;
|
|
13
|
+
/** 半锚段长度 L,mm */
|
|
14
|
+
readonly halfSpanMM: number;
|
|
15
|
+
/** 最高工作温度 t_max,℃ */
|
|
16
|
+
readonly maxTempC: number;
|
|
17
|
+
/** 安装/检调温度 t_x,℃ */
|
|
18
|
+
readonly targetTempC: number;
|
|
19
|
+
/** 额定张力 T,kN(用于坠砣重量换算) */
|
|
20
|
+
readonly tensionKN?: number;
|
|
21
|
+
}
|
|
22
|
+
interface BValueResult {
|
|
23
|
+
/** 当前温度 b 值 b_x,mm */
|
|
24
|
+
readonly bMM: number;
|
|
25
|
+
/** 温度伸缩量 ΔL = α·L·(t_max − t_x),mm */
|
|
26
|
+
readonly stretchMM: number;
|
|
27
|
+
/** 坠砣侧行程变化 n·ΔL,mm */
|
|
28
|
+
readonly strokeMM: number;
|
|
29
|
+
/** 坠砣总质量(W=T/n,m≈102·W,g 取 9.81 m/s²),kg */
|
|
30
|
+
readonly weightKg: number | null;
|
|
31
|
+
}
|
|
32
|
+
/** b 值计算:b_x = b_min + n·α·L·(t_max − t_x) */
|
|
33
|
+
declare function bValue(params: BValueInput): BValueResult;
|
|
34
|
+
|
|
35
|
+
export { type BValueInput, type BValueResult, bValue, bvalueMeta };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkWGTOBRYVcjs = require('../chunk-WGTOBRYV.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.ASSEMBLY_TOLERANCE_MM = _chunkWGTOBRYVcjs.ASSEMBLY_TOLERANCE_MM; exports.cantileverCut = _chunkWGTOBRYVcjs.cantileverCut; exports.cantileverMeta = _chunkWGTOBRYVcjs.cantileverMeta;
|
|
11
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/cantilever/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACF,4LAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/cantilever/index.cjs"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
|
|
2
|
+
|
|
3
|
+
declare const cantileverMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** 腕臂预配安装偏差(TB 10758-2018 第 5.10.1 条),mm */
|
|
6
|
+
declare const ASSEMBLY_TOLERANCE_MM = 5;
|
|
7
|
+
/** 斜腕臂勾股下料计算输入。单位:m。 */
|
|
8
|
+
interface CantileverInput {
|
|
9
|
+
/** 上下底座竖直距 h,m */
|
|
10
|
+
readonly verticalOffsetM: number;
|
|
11
|
+
/** 下底座至定位点水平投影 d,m */
|
|
12
|
+
readonly horizontalProjectionM: number;
|
|
13
|
+
/** 端部零件扣减 Δc,m */
|
|
14
|
+
readonly endDeductionM?: number;
|
|
15
|
+
/** 定位点至下底座竖直距 y_d,m */
|
|
16
|
+
readonly regHeightM?: number;
|
|
17
|
+
}
|
|
18
|
+
interface CantileverResult {
|
|
19
|
+
/** 理论斜长 √(h²+d²),m */
|
|
20
|
+
readonly fullLengthM: number;
|
|
21
|
+
/** 下料长度 L = √(h²+d²) − Δc,m */
|
|
22
|
+
readonly cutLengthM: number;
|
|
23
|
+
/** 定位环安装位置 s = (y_d/h)·√(h²+d²),m */
|
|
24
|
+
readonly regulatorPosM: number | null;
|
|
25
|
+
/** 安装允差,mm */
|
|
26
|
+
readonly toleranceMM: number;
|
|
27
|
+
}
|
|
28
|
+
/** 斜腕臂勾股下料(几何自证) */
|
|
29
|
+
declare function cantileverCut(input: CantileverInput): CantileverResult;
|
|
30
|
+
|
|
31
|
+
export { ASSEMBLY_TOLERANCE_MM, type CantileverInput, type CantileverResult, cantileverCut, cantileverMeta };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { C as CalculatorMeta } from '../types-C2OanO8N.js';
|
|
2
|
+
|
|
3
|
+
declare const cantileverMeta: CalculatorMeta;
|
|
4
|
+
|
|
5
|
+
/** 腕臂预配安装偏差(TB 10758-2018 第 5.10.1 条),mm */
|
|
6
|
+
declare const ASSEMBLY_TOLERANCE_MM = 5;
|
|
7
|
+
/** 斜腕臂勾股下料计算输入。单位:m。 */
|
|
8
|
+
interface CantileverInput {
|
|
9
|
+
/** 上下底座竖直距 h,m */
|
|
10
|
+
readonly verticalOffsetM: number;
|
|
11
|
+
/** 下底座至定位点水平投影 d,m */
|
|
12
|
+
readonly horizontalProjectionM: number;
|
|
13
|
+
/** 端部零件扣减 Δc,m */
|
|
14
|
+
readonly endDeductionM?: number;
|
|
15
|
+
/** 定位点至下底座竖直距 y_d,m */
|
|
16
|
+
readonly regHeightM?: number;
|
|
17
|
+
}
|
|
18
|
+
interface CantileverResult {
|
|
19
|
+
/** 理论斜长 √(h²+d²),m */
|
|
20
|
+
readonly fullLengthM: number;
|
|
21
|
+
/** 下料长度 L = √(h²+d²) − Δc,m */
|
|
22
|
+
readonly cutLengthM: number;
|
|
23
|
+
/** 定位环安装位置 s = (y_d/h)·√(h²+d²),m */
|
|
24
|
+
readonly regulatorPosM: number | null;
|
|
25
|
+
/** 安装允差,mm */
|
|
26
|
+
readonly toleranceMM: number;
|
|
27
|
+
}
|
|
28
|
+
/** 斜腕臂勾股下料(几何自证) */
|
|
29
|
+
declare function cantileverCut(input: CantileverInput): CantileverResult;
|
|
30
|
+
|
|
31
|
+
export { ASSEMBLY_TOLERANCE_MM, type CantileverInput, type CantileverResult, cantileverCut, cantileverMeta };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/bvalue/meta.ts
|
|
2
|
+
var bvalueMeta = {
|
|
3
|
+
name: "b\u503C\uFF08\u5760\u7823\u9AD8\u5EA6\uFF09\u5B89\u88C5\u66F2\u7EBF",
|
|
4
|
+
nameEn: "B-Value (Balance Weight) Installation Curve",
|
|
5
|
+
summary: "\u6309 b_x = b_min + n\xB7\u03B1\xB7L\xB7(t_max \u2212 t_x) \u8BA1\u7B97\u4EFB\u4E00\u6E29\u5EA6\u4E0B\u5760\u7823\u5E95\u9762\u8DDD\u5730\u9762\u9AD8\u5EA6\uFF0C\u7528\u4E8E\u5760\u7823\u5B89\u88C5\u4E0E\u68C0\u8C03\u5B9A\u4F4D\u3002",
|
|
6
|
+
formula: [
|
|
7
|
+
"b_x = b_min + n\xB7\u03B1\xB7L\xB7(t_max \u2212 t_x)",
|
|
8
|
+
"\u5760\u7823\u4FA7\u884C\u7A0B\u53D8\u5316 n\xB7\u0394L\uFF0C\u0394L = \u03B1\xB7L\xB7(t_max \u2212 t_x)",
|
|
9
|
+
"\u5760\u7823\u4FA7\u5F20\u529B W = T/n\uFF0C\u5BF9\u5E94\u5760\u7823\u603B\u8D28\u91CF m \u2248 102\xB7W kg"
|
|
10
|
+
],
|
|
11
|
+
references: [
|
|
12
|
+
"\u9650\u503C\u53E3\u5F84\uFF1A\u8FD0\u884C \u2265200 mm\u3001\u504F\u5DEE \xB1100 mm\uFF08TB 10421-2018 \u7B2C 5.22.3 \u6761\uFF09",
|
|
13
|
+
"\u8BBE\u8BA1 \u2265300 mm\uFF08\u671F\u520A\u5F15\u94C1\u8FD0\u30142007\u301569 \u53F7\uFF09",
|
|
14
|
+
"\u4F20\u52A8\u6BD4\u500D\u6570 n\uFF1A1:3 \u5373 n=3"
|
|
15
|
+
],
|
|
16
|
+
scope: ["b_min\uFF1A50~1000 mm", "\u534A\u951A\u6BB5 L\uFF1A50000~900000 mm", "\u6E29\u5EA6\u5DEE\uFF1A0~100 \u2103", "\u4F20\u52A8\u6BD4\uFF1A2~4"],
|
|
17
|
+
disclaimer: "\u672C\u5DE5\u5177\u7ED3\u679C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u5DE5\u7A0B\u5E94\u7528\u4EE5\u8BBE\u8BA1\u6587\u4EF6\u4E3A\u51C6\u3002\u8BE6\u89C1 DISCLAIMER.md\u3002",
|
|
18
|
+
online: "https://www.itswe.com/calculator/bvalue/"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// src/bvalue/index.ts
|
|
22
|
+
function bValue(params) {
|
|
23
|
+
const { minBMM, ratio, expansionCoeff, halfSpanMM, maxTempC, targetTempC, tensionKN } = params;
|
|
24
|
+
if (!(minBMM >= 0)) throw new RangeError("b_min \u4E0D\u80FD\u4E3A\u8D1F\uFF0C\u6536\u5230 " + minBMM);
|
|
25
|
+
if (!(ratio > 0)) throw new RangeError("\u4F20\u52A8\u6BD4\u500D\u6570\u5FC5\u987B\u4E3A\u6B63\uFF0C\u6536\u5230 " + ratio);
|
|
26
|
+
if (!(halfSpanMM > 0)) throw new RangeError("\u534A\u951A\u6BB5\u957F\u5EA6\u5FC5\u987B\u4E3A\u6B63\uFF0C\u6536\u5230 " + halfSpanMM);
|
|
27
|
+
const dt = maxTempC - targetTempC;
|
|
28
|
+
const stretchMM = expansionCoeff * halfSpanMM * dt;
|
|
29
|
+
const strokeMM = ratio * stretchMM;
|
|
30
|
+
const bMM = minBMM + strokeMM;
|
|
31
|
+
let weightKg = null;
|
|
32
|
+
if (tensionKN !== void 0) {
|
|
33
|
+
if (!(tensionKN > 0)) throw new RangeError("\u989D\u5B9A\u5F20\u529B\u5FC5\u987B\u4E3A\u6B63\uFF0C\u6536\u5230 " + tensionKN);
|
|
34
|
+
const WKN = tensionKN / ratio;
|
|
35
|
+
weightKg = WKN * 102;
|
|
36
|
+
}
|
|
37
|
+
return { bMM, stretchMM, strokeMM, weightKg };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export {
|
|
41
|
+
bvalueMeta,
|
|
42
|
+
bValue
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=chunk-3GREMF76.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bvalue/meta.ts","../src/bvalue/index.ts"],"sourcesContent":["import type { CalculatorMeta } from '../types';\n\nexport const bvalueMeta: CalculatorMeta = {\n name: 'b值(坠砣高度)安装曲线',\n nameEn: 'B-Value (Balance Weight) Installation Curve',\n summary: '按 b_x = b_min + n·α·L·(t_max − t_x) 计算任一温度下坠砣底面距地面高度,用于坠砣安装与检调定位。',\n formula: [\n 'b_x = b_min + n·α·L·(t_max − t_x)',\n '坠砣侧行程变化 n·ΔL,ΔL = α·L·(t_max − t_x)',\n '坠砣侧张力 W = T/n,对应坠砣总质量 m ≈ 102·W kg',\n ],\n references: [\n '限值口径:运行 ≥200 mm、偏差 ±100 mm(TB 10421-2018 第 5.22.3 条)',\n '设计 ≥300 mm(期刊引铁运〔2007〕69 号)',\n '传动比倍数 n:1:3 即 n=3',\n ],\n scope: ['b_min:50~1000 mm', '半锚段 L:50000~900000 mm', '温度差:0~100 ℃', '传动比:2~4'],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/bvalue/',\n};\n","export { bvalueMeta } from './meta';\n\n/** b 值(坠砣底面距地面高度)计算参数。单位:长度 mm、温度 ℃、张力 kN。 */\nexport interface BValueInput {\n /** 设计最小 b 值 b_min,mm(最高温度时坠砣最低位) */\n readonly minBMM: number;\n /** 传动比倍数 n(1:3 取 3) */\n readonly ratio: number;\n /** 线膨胀系数 α,1/℃(铜合金约 1.7e-5) */\n readonly expansionCoeff: number;\n /** 半锚段长度 L,mm */\n readonly halfSpanMM: number;\n /** 最高工作温度 t_max,℃ */\n readonly maxTempC: number;\n /** 安装/检调温度 t_x,℃ */\n readonly targetTempC: number;\n /** 额定张力 T,kN(用于坠砣重量换算) */\n readonly tensionKN?: number;\n}\n\nexport interface BValueResult {\n /** 当前温度 b 值 b_x,mm */\n readonly bMM: number;\n /** 温度伸缩量 ΔL = α·L·(t_max − t_x),mm */\n readonly stretchMM: number;\n /** 坠砣侧行程变化 n·ΔL,mm */\n readonly strokeMM: number;\n /** 坠砣总质量(W=T/n,m≈102·W,g 取 9.81 m/s²),kg */\n readonly weightKg: number | null;\n}\n\n/** b 值计算:b_x = b_min + n·α·L·(t_max − t_x) */\nexport function bValue(params: BValueInput): BValueResult {\n const { minBMM, ratio, expansionCoeff, halfSpanMM, maxTempC, targetTempC, tensionKN } = params;\n if (!(minBMM >= 0)) throw new RangeError('b_min 不能为负,收到 ' + minBMM);\n if (!(ratio > 0)) throw new RangeError('传动比倍数必须为正,收到 ' + ratio);\n if (!(halfSpanMM > 0)) throw new RangeError('半锚段长度必须为正,收到 ' + halfSpanMM);\n const dt = maxTempC - targetTempC;\n const stretchMM = expansionCoeff * halfSpanMM * dt;\n const strokeMM = ratio * stretchMM;\n const bMM = minBMM + strokeMM;\n let weightKg: number | null = null;\n if (tensionKN !== undefined) {\n if (!(tensionKN > 0)) throw new RangeError('额定张力必须为正,收到 ' + tensionKN);\n const WKN = tensionKN / ratio;\n weightKg = WKN * 102; // 1 kN ≈ 102 kg(g=9.81)\n }\n return { bMM, stretchMM, strokeMM, weightKg };\n}\n"],"mappings":";AAEO,IAAM,aAA6B;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO,CAAC,yBAAoB,6CAAyB,wCAAe,6BAAS;AAAA,EAC7E,YAAY;AAAA,EACZ,QAAQ;AACV;;;ACaO,SAAS,OAAO,QAAmC;AACxD,QAAM,EAAE,QAAQ,OAAO,gBAAgB,YAAY,UAAU,aAAa,UAAU,IAAI;AACxF,MAAI,EAAE,UAAU,GAAI,OAAM,IAAI,WAAW,sDAAmB,MAAM;AAClE,MAAI,EAAE,QAAQ,GAAI,OAAM,IAAI,WAAW,8EAAkB,KAAK;AAC9D,MAAI,EAAE,aAAa,GAAI,OAAM,IAAI,WAAW,8EAAkB,UAAU;AACxE,QAAM,KAAK,WAAW;AACtB,QAAM,YAAY,iBAAiB,aAAa;AAChD,QAAM,WAAW,QAAQ;AACzB,QAAM,MAAM,SAAS;AACrB,MAAI,WAA0B;AAC9B,MAAI,cAAc,QAAW;AAC3B,QAAI,EAAE,YAAY,GAAI,OAAM,IAAI,WAAW,wEAAiB,SAAS;AACrE,UAAM,MAAM,YAAY;AACxB,eAAW,MAAM;AAAA,EACnB;AACA,SAAO,EAAE,KAAK,WAAW,UAAU,SAAS;AAC9C;","names":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/pole-capacity/meta.ts
|
|
2
|
+
var poleCapacityMeta = {
|
|
3
|
+
name: "\u652F\u67F1\u5BB9\u91CF\u9009\u578B\u6821\u6838",
|
|
4
|
+
nameEn: "Mast Capacity Selection Check",
|
|
5
|
+
summary: "\u5BB9\u91CF\u6BD4\u8F83\u6CD5\uFF1A\u60AC\u6302\u6C34\u5E73\u529B\u4E0E\u652F\u67F1\u98CE\u8F7D\u5408\u6210\u5DE5\u4F5C\u5F2F\u77E9\uFF0C\u5BF9\u7167 GB/T 25020.1 \u94A2\u652F\u67F1\u68C0\u9A8C\u5F2F\u77E9\u7CFB\u5217\u9009\u578B\u3002",
|
|
6
|
+
formula: [
|
|
7
|
+
"\u76F4\u7EBF\u4E4B\u5B57\u529B F_z = 4(T_j+T_c)\xB7a/l\uFF1B\u66F2\u7EBF\u529B F_q = (T_j+T_c)\xB7l/R",
|
|
8
|
+
"\u5DE5\u4F5C\u5F2F\u77E9 M = F_h\xB7h_e + P\xB7b\xB7h\xB2/2 + F_wl\xB7h_e",
|
|
9
|
+
"\u627F\u8F7D\u529B\u68C0\u9A8C\u5F2F\u77E9 = 1.5 \xD7 \u6807\u79F0\u5BB9\u91CF\uFF0825020.1 \u8868 A.2 \u8868\u503C\u89C4\u5F8B\uFF09"
|
|
10
|
+
],
|
|
11
|
+
references: [
|
|
12
|
+
"\u94A2\u67F1\u76F4\u63A5\u4F9D\u636E\uFF1AGB/T 25020.1-2025 \u7B2C 5.1.1 \u6761 + \u9644\u5F55 A \u68C0\u9A8C\u5F2F\u77E9\u7CFB\u5217",
|
|
13
|
+
"\u540C\u53E3\u5F84\u6DF7\u51DD\u571F\u67F1\u6761\u6B3E\uFF1ATB/T 2286-2020 \u7B2C 5.9.2 \u6761\uFF08\u8377\u8F7D\u77E2\u91CF\u7EC4\u5408\u4E0D\u5927\u4E8E\u68C0\u9A8C\u5F2F\u77E9\uFF09",
|
|
14
|
+
"\u5206\u9879\u7CFB\u6570\u6781\u9650\u72B6\u6001\u6CD5\uFF08GB/T 32578-2016 6.3.3 \u8868 15\uFF09\u4E3A\u8BBE\u8BA1\u6B63\u5F0F\u53E3\u5F84\uFF0C\u4E0D\u53EF\u6DF7\u7528"
|
|
15
|
+
],
|
|
16
|
+
scope: ["\u5F20\u529B\uFF1A5~45 kN", "\u8DE8\u8DDD\uFF1A30~90 m", "\u98CE\u538B\uFF1A100~1500 Pa", "\u652F\u67F1\u9AD8\uFF1A5~20 m"],
|
|
17
|
+
disclaimer: "\u672C\u5DE5\u5177\u7ED3\u679C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u5DE5\u7A0B\u5E94\u7528\u4EE5\u8BBE\u8BA1\u6587\u4EF6\u4E3A\u51C6\u3002\u8BE6\u89C1 DISCLAIMER.md\u3002",
|
|
18
|
+
online: "https://www.itswe.com/calculator/pole-capacity/"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// src/pole-capacity/index.ts
|
|
22
|
+
var STEEL_POLE_SERIES_KNM = [150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 750, 900, 1050, 1200, 1500];
|
|
23
|
+
var TEST_MOMENT_FACTOR = 1.5;
|
|
24
|
+
function poleCapacityCheck(input) {
|
|
25
|
+
const { section, contactWireTensionKN, messengerTensionKN, staggerMM, spanM, resultantHeightM, windPressurePa, poleWidthM, poleHeightM, wireWindLoadN } = input;
|
|
26
|
+
if (!(contactWireTensionKN >= 0) || !(messengerTensionKN >= 0)) throw new RangeError("\u5F20\u529B\u4E0D\u80FD\u4E3A\u8D1F");
|
|
27
|
+
const T = contactWireTensionKN + messengerTensionKN;
|
|
28
|
+
const a = staggerMM / 1e3;
|
|
29
|
+
const Fz = 4 * T * a / spanM;
|
|
30
|
+
let Fh;
|
|
31
|
+
if (section === "curve") {
|
|
32
|
+
if (!(input.curveRadiusM && input.curveRadiusM > 0)) throw new RangeError("\u66F2\u7EBF\u534A\u5F84\u5FC5\u987B\u4E3A\u6B63");
|
|
33
|
+
const Fq = T * spanM / input.curveRadiusM;
|
|
34
|
+
Fh = Math.abs(Fq - Fz);
|
|
35
|
+
} else {
|
|
36
|
+
Fh = Fz;
|
|
37
|
+
}
|
|
38
|
+
const M1 = Fh * resultantHeightM;
|
|
39
|
+
const M2 = windPressurePa * poleWidthM * Math.pow(poleHeightM, 2) / 2 / 1e3;
|
|
40
|
+
const M3 = (_nullishCoalesce(wireWindLoadN, () => ( 0))) * resultantHeightM / 1e3;
|
|
41
|
+
const M = M1 + M2 + M3;
|
|
42
|
+
const nomNeed = M / TEST_MOMENT_FACTOR;
|
|
43
|
+
const pick = _nullishCoalesce(STEEL_POLE_SERIES_KNM.find((n) => n >= nomNeed), () => ( null));
|
|
44
|
+
return {
|
|
45
|
+
horizontalForceN: Fh * 1e3,
|
|
46
|
+
workMomentKNM: M,
|
|
47
|
+
nominalNeedKNM: nomNeed,
|
|
48
|
+
selection: pick ? "G" + pick : null
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
exports.poleCapacityMeta = poleCapacityMeta; exports.STEEL_POLE_SERIES_KNM = STEEL_POLE_SERIES_KNM; exports.TEST_MOMENT_FACTOR = TEST_MOMENT_FACTOR; exports.poleCapacityCheck = poleCapacityCheck;
|
|
58
|
+
//# sourceMappingURL=chunk-4344WWAF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-4344WWAF.cjs","../src/pole-capacity/meta.ts","../src/pole-capacity/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-4344WWAF.cjs","sourcesContent":[null,"import type { CalculatorMeta } from '../types';\n\nexport const poleCapacityMeta: CalculatorMeta = {\n name: '支柱容量选型校核',\n nameEn: 'Mast Capacity Selection Check',\n summary: '容量比较法:悬挂水平力与支柱风载合成工作弯矩,对照 GB/T 25020.1 钢支柱检验弯矩系列选型。',\n formula: [\n '直线之字力 F_z = 4(T_j+T_c)·a/l;曲线力 F_q = (T_j+T_c)·l/R',\n '工作弯矩 M = F_h·h_e + P·b·h²/2 + F_wl·h_e',\n '承载力检验弯矩 = 1.5 × 标称容量(25020.1 表 A.2 表值规律)',\n ],\n references: [\n '钢柱直接依据:GB/T 25020.1-2025 第 5.1.1 条 + 附录 A 检验弯矩系列',\n '同口径混凝土柱条款:TB/T 2286-2020 第 5.9.2 条(荷载矢量组合不大于检验弯矩)',\n '分项系数极限状态法(GB/T 32578-2016 6.3.3 表 15)为设计正式口径,不可混用',\n ],\n scope: ['张力:5~45 kN', '跨距:30~90 m', '风压:100~1500 Pa', '支柱高:5~20 m'],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/pole-capacity/',\n};\n","export { poleCapacityMeta } from './meta';\n\n/** GB/T 25020.1-2025 格构式钢支柱标称容量系列(表 A.2),kN·m */\nexport const STEEL_POLE_SERIES_KNM = [150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 750, 900, 1050, 1200, 1500] as const;\n\n/** 承载力检验弯矩 = 1.5 × 标称容量(25020.1 表 A.2 表值规律) */\nexport const TEST_MOMENT_FACTOR = 1.5;\n\n/** 支柱容量校核输入。单位:kN、m、mm、Pa。 */\nexport interface PoleCapacityInput {\n /** 区段类型 */\n readonly section: 'line' | 'curve';\n /** 接触线张力 T_j,kN */\n readonly contactWireTensionKN: number;\n /** 承力索张力 T_c,kN */\n readonly messengerTensionKN: number;\n /** 拉出值 a,mm */\n readonly staggerMM: number;\n /** 跨距 l,m */\n readonly spanM: number;\n /** 曲线半径 R,m(曲线区段) */\n readonly curveRadiusM?: number;\n /** 水平力合力作用高度 h_e,m */\n readonly resultantHeightM: number;\n /** 设计最大风压 P,Pa */\n readonly windPressurePa: number;\n /** 支柱迎风宽度 b,m */\n readonly poleWidthM: number;\n /** 支柱高度 h,m */\n readonly poleHeightM: number;\n /** 线索风载 F_wl,N */\n readonly wireWindLoadN?: number;\n}\n\nexport interface PoleCapacityResult {\n /** 悬挂水平力 F_h,N */\n readonly horizontalForceN: number;\n /** 工作弯矩 M,kN·m */\n readonly workMomentKNM: number;\n /** 折合标称容量(÷1.5),kN·m */\n readonly nominalNeedKNM: number;\n /** 选型结果 */\n readonly selection: string | null;\n}\n\n/** 支柱容量选型(容量比较法,TB/T 2286 5.9.2 检验弯矩口径;钢柱 25020.1 5.1.1+附录A) */\nexport function poleCapacityCheck(input: PoleCapacityInput): PoleCapacityResult {\n const { section, contactWireTensionKN, messengerTensionKN, staggerMM, spanM, resultantHeightM, windPressurePa, poleWidthM, poleHeightM, wireWindLoadN } = input;\n if (!(contactWireTensionKN >= 0) || !(messengerTensionKN >= 0)) throw new RangeError('张力不能为负');\n const T = contactWireTensionKN + messengerTensionKN;\n const a = staggerMM / 1e3;\n const Fz = (4 * T * a) / spanM; // kN\n let Fh: number;\n if (section === 'curve') {\n if (!(input.curveRadiusM && input.curveRadiusM > 0)) throw new RangeError('曲线半径必须为正');\n const Fq = (T * spanM) / input.curveRadiusM;\n Fh = Math.abs(Fq - Fz);\n } else {\n Fh = Fz;\n }\n const M1 = Fh * resultantHeightM; // 悬挂水平力矩 kN·m\n const M2 = (windPressurePa * poleWidthM * Math.pow(poleHeightM, 2) / 2) / 1e3; // 支柱风载矩\n const M3 = ((wireWindLoadN ?? 0) * resultantHeightM) / 1e3;\n const M = M1 + M2 + M3;\n const nomNeed = M / TEST_MOMENT_FACTOR;\n const pick = STEEL_POLE_SERIES_KNM.find((n) => n >= nomNeed) ?? null;\n return {\n horizontalForceN: Fh * 1e3,\n workMomentKNM: M,\n nominalNeedKNM: nomNeed,\n selection: pick ? 'G' + pick : null,\n };\n}\n"]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/steady-arm/meta.ts
|
|
2
|
+
var steadyArmMeta = {
|
|
3
|
+
name: "\u5B9A\u4F4D\u5668\u5761\u5EA6\u6821\u6838",
|
|
4
|
+
nameEn: "Steady Arm Slope Check",
|
|
5
|
+
summary: "\u8BA1\u7B97\u5B9A\u4F4D\u5668\u6240\u53D7\u6C34\u5E73\u529B\uFF08\u76F4\u7EBF\u4E4B\u5B57\u529B / \u66F2\u7EBF\u529B\uFF09\u4E0E\u5782\u76F4\u529B\uFF0C\u6C42\u5761\u5EA6\u89D2\u4E0E\u5761\u5EA6\u6BD4\uFF0C\u5E76\u6309\u76F4\u7EBF/\u66F2\u7EBF\u9650\u503C\u5224\u5B9A\u662F\u5426\u6EE1\u8DB3\u5761\u5EA6\u8981\u6C42\u3002",
|
|
6
|
+
formula: [
|
|
7
|
+
"\u76F4\u7EBF\u4E4B\u5B57\u529B\uFF1AFz = 4\xB7T\xB7a/l\uFF08a \u4E3A\u62C9\u51FA\u503C\uFF0Cmm \u6362\u7B97 m\uFF09",
|
|
8
|
+
"\u66F2\u7EBF\u529B\uFF1AFq = T\xB7l/R",
|
|
9
|
+
"\u66F2\u7EBF\u5408\u6210\uFF1AFs = |Fq \u2212 Fz|\uFF1B\u76F4\u7EBF\u533A\u6BB5 Fs = Fz",
|
|
10
|
+
"\u5782\u76F4\u529B\uFF1AFc = g_j\xB7l\u2081 + G_d",
|
|
11
|
+
"\u5761\u5EA6\u89D2\uFF1A\u03B8 = atan(Fc/Fs)\uFF0C\u5F27\u5EA6\u8F6C\u5EA6",
|
|
12
|
+
"\u5761\u5EA6\u6BD4\uFF08\u5782\u76F4\u2236\u6C34\u5E73\uFF09= 1\u2236n\uFF0Cn = Fs/Fc",
|
|
13
|
+
"\u9650\u503C\uFF08\u76F4\u7EBF \u03B8 \u2265 8\xB0\uFF1B\u66F2\u7EBF 6\xB0 \u2264 \u03B8 \u2264 16\xB0\uFF09"
|
|
14
|
+
],
|
|
15
|
+
references: [
|
|
16
|
+
"\u6559\u6750\u901A\u884C\u8FD1\u4F3C\uFF1A\u4E4B\u5B57\u529B Fz = 4\xB7T\xB7a/l\u3001\u66F2\u7EBF\u529B Fq = T\xB7l/R",
|
|
17
|
+
"\u7F57\u5065\u7B49\u300A\u9AD8\u901F\u94C1\u8DEF\u63A5\u89E6\u7F51\u5B9A\u4F4D\u5668\u5761\u5EA6\u95EE\u9898\u7684\u6DF1\u5316\u7814\u7A76\u300B\uFF0C\u94C1\u9053\u5DE5\u7A0B\u5B66\u62A5 2013, 30(1): 76-80\uFF08300 km/h \u53CA\u4EE5\u4E0A\u5761\u5EA6\u9650\u503C\u53E3\u5F84\uFF09",
|
|
18
|
+
"\u5728\u7EBF\u53C2\u8003\uFF1Ahttps://www.itswe.com/calculator/steady-arm/"
|
|
19
|
+
],
|
|
20
|
+
scope: [
|
|
21
|
+
"\u63A5\u89E6\u7EBF\u5F20\u529B T\uFF1A1 ~ 40 kN",
|
|
22
|
+
"\u62C9\u51FA\u503C a\uFF1A50 ~ 500 mm",
|
|
23
|
+
"\u8DE8\u8DDD l\uFF1A5 ~ 80 m",
|
|
24
|
+
"\u66F2\u7EBF\u534A\u5F84 R\uFF1A500 ~ 12000 m\uFF08undefined \u8868\u793A\u76F4\u7EBF\uFF09",
|
|
25
|
+
"\u63A5\u89E6\u7EBF\u5355\u4F4D\u91CD g_j\uFF1A0.001 ~ 0.1 kN/m",
|
|
26
|
+
"\u5B9A\u4F4D\u5668\u81EA\u91CD G_d\uFF1A0 ~ 0.5 kN",
|
|
27
|
+
"\u9650\u503C\u9002\u7528\u4E8E 300 km/h \u53CA\u4EE5\u4E0A\u9AD8\u94C1\uFF1B\u4E2D\u4F4E\u901F\u7EBF\u8DEF\u5761\u5EA6\u9650\u503C\u53EF\u4E0D\u540C",
|
|
28
|
+
"\u672A\u8BA1\u5165\u98CE\u8377\u8F7D\u3001\u5B9A\u4F4D\u5668\u957F\u5EA6\u65B9\u5411\u503E\u659C\u4E0E\u96F6\u90E8\u4EF6\u516C\u5DEE"
|
|
29
|
+
],
|
|
30
|
+
disclaimer: "\u672C\u5DE5\u5177\u7ED3\u679C\u4EC5\u4F9B\u53C2\u8003\uFF0C\u5DE5\u7A0B\u5E94\u7528\u4EE5\u8BBE\u8BA1\u6587\u4EF6\u4E3A\u51C6\u3002\u8BE6\u89C1 DISCLAIMER.md\u3002",
|
|
31
|
+
online: "https://www.itswe.com/calculator/steady-arm/"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// src/steady-arm/index.ts
|
|
35
|
+
function steadyArmAngleDeg(input) {
|
|
36
|
+
const {
|
|
37
|
+
contactWireTensionKN: T,
|
|
38
|
+
staggerMM,
|
|
39
|
+
spanM: l,
|
|
40
|
+
curveRadiusM,
|
|
41
|
+
firstDropperOffsetM: l1,
|
|
42
|
+
wireWeightKNPerM: gJ,
|
|
43
|
+
regulatorSelfWeightKN: gD
|
|
44
|
+
} = input;
|
|
45
|
+
if (!(T > 0)) {
|
|
46
|
+
throw new RangeError(`\u63A5\u89E6\u7EBF\u5F20\u529B\u5FC5\u987B\u4E3A\u6B63\u6570\uFF0C\u6536\u5230 ${T} kN`);
|
|
47
|
+
}
|
|
48
|
+
if (!(staggerMM > 0)) {
|
|
49
|
+
throw new RangeError(`\u62C9\u51FA\u503C\u5FC5\u987B\u4E3A\u6B63\u6570\uFF0C\u6536\u5230 ${staggerMM} mm`);
|
|
50
|
+
}
|
|
51
|
+
if (!(l > 0)) {
|
|
52
|
+
throw new RangeError(`\u8DE8\u8DDD\u5FC5\u987B\u4E3A\u6B63\u6570\uFF0C\u6536\u5230 ${l} m`);
|
|
53
|
+
}
|
|
54
|
+
if (curveRadiusM !== void 0 && !(curveRadiusM > 0)) {
|
|
55
|
+
throw new RangeError(`\u66F2\u7EBF\u534A\u5F84\u5FC5\u987B\u4E3A\u6B63\u6570\uFF0C\u6536\u5230 ${curveRadiusM} m`);
|
|
56
|
+
}
|
|
57
|
+
if (!(l1 >= 0)) {
|
|
58
|
+
throw new RangeError(`\u7B2C\u4E00\u540A\u5F26\u8DDD\u5B9A\u4F4D\u70B9\u8DDD\u79BB\u4E0D\u80FD\u4E3A\u8D1F\uFF0C\u6536\u5230 ${l1} m`);
|
|
59
|
+
}
|
|
60
|
+
if (!(gJ >= 0)) {
|
|
61
|
+
throw new RangeError(`\u63A5\u89E6\u7EBF\u5355\u4F4D\u91CD\u4E0D\u80FD\u4E3A\u8D1F\uFF0C\u6536\u5230 ${gJ} kN/m`);
|
|
62
|
+
}
|
|
63
|
+
if (!(gD >= 0)) {
|
|
64
|
+
throw new RangeError(`\u5B9A\u4F4D\u5668\u81EA\u91CD\u4E0D\u80FD\u4E3A\u8D1F\uFF0C\u6536\u5230 ${gD} kN`);
|
|
65
|
+
}
|
|
66
|
+
const isStraight = curveRadiusM === void 0;
|
|
67
|
+
const aM = staggerMM * 1e-3;
|
|
68
|
+
const fz = 4 * T * aM / l;
|
|
69
|
+
let fq = 0;
|
|
70
|
+
let fs = fz;
|
|
71
|
+
if (!isStraight) {
|
|
72
|
+
const R = curveRadiusM;
|
|
73
|
+
fq = T * l / R;
|
|
74
|
+
fs = Math.abs(fq - fz);
|
|
75
|
+
}
|
|
76
|
+
const fc = gJ * l1 + gD;
|
|
77
|
+
if (!(fs > 0)) {
|
|
78
|
+
throw new RangeError(
|
|
79
|
+
`\u6C34\u5E73\u5408\u6210\u529B Fs = ${fs} kN \u987B\u4E3A\u6B63\u6570\uFF08\u66F2\u7EBF\u529B\u4E0E\u4E4B\u5B57\u529B\u76F8\u7B49\u65F6\u5761\u5EA6\u65E0\u610F\u4E49\uFF09\uFF0C\u8BF7\u590D\u6838\u8F93\u5165`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (!(fc > 0)) {
|
|
83
|
+
throw new RangeError(
|
|
84
|
+
`\u5782\u76F4\u529B Fc = ${fc} kN \u987B\u4E3A\u6B63\u6570\uFF0C\u8BF7\u590D\u6838\u63A5\u89E6\u7EBF\u5355\u4F4D\u91CD / \u5B9A\u4F4D\u5668\u81EA\u91CD`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
const angleDeg = Math.atan(fc / fs) * 180 / Math.PI;
|
|
88
|
+
const slopeRatio = fs / fc;
|
|
89
|
+
return {
|
|
90
|
+
staggerForceKN: fz,
|
|
91
|
+
curveForceKN: fq,
|
|
92
|
+
horizontalForceKN: fs,
|
|
93
|
+
verticalForceKN: fc,
|
|
94
|
+
angleDeg,
|
|
95
|
+
slopeRatio,
|
|
96
|
+
isStraight
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function steadyArmCheck(input) {
|
|
100
|
+
const base = steadyArmAngleDeg(input);
|
|
101
|
+
if (base.isStraight) {
|
|
102
|
+
const passes2 = base.angleDeg >= 8;
|
|
103
|
+
const reason2 = passes2 ? `\u76F4\u7EBF\u533A\u6BB5\uFF1A\u03B8 = ${base.angleDeg.toFixed(4)}\xB0 \u2265 8\xB0\uFF0C\u6EE1\u8DB3\u5761\u5EA6\u8981\u6C42` : `\u76F4\u7EBF\u533A\u6BB5\uFF1A\u03B8 = ${base.angleDeg.toFixed(4)}\xB0 < 8\xB0\uFF0C\u4E0D\u6EE1\u8DB3\u5761\u5EA6\u8981\u6C42\uFF08\u9700 \u2265 8\xB0\uFF09`;
|
|
104
|
+
return { ...base, passes: passes2, reason: reason2 };
|
|
105
|
+
}
|
|
106
|
+
const passes = base.angleDeg >= 6 && base.angleDeg <= 16;
|
|
107
|
+
const reason = passes ? `\u66F2\u7EBF\u533A\u6BB5\uFF1A\u03B8 = ${base.angleDeg.toFixed(4)}\xB0 \u4F4D\u4E8E 6\xB0 ~ 16\xB0 \u533A\u95F4\uFF0C\u6EE1\u8DB3\u5761\u5EA6\u8981\u6C42` : `\u66F2\u7EBF\u533A\u6BB5\uFF1A\u03B8 = ${base.angleDeg.toFixed(4)}\xB0 \u8D85\u51FA 6\xB0 ~ 16\xB0 \u533A\u95F4\uFF0C\u4E0D\u6EE1\u8DB3\u5761\u5EA6\u8981\u6C42`;
|
|
108
|
+
return { ...base, passes, reason };
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
exports.steadyArmMeta = steadyArmMeta; exports.steadyArmAngleDeg = steadyArmAngleDeg; exports.steadyArmCheck = steadyArmCheck;
|
|
116
|
+
//# sourceMappingURL=chunk-57J7I6JA.cjs.map
|