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.
Files changed (100) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +3 -3
  3. package/README_EN.md +1 -1
  4. package/dist/anchor-length/index.cjs +11 -0
  5. package/dist/anchor-length/index.cjs.map +1 -0
  6. package/dist/anchor-length/index.d.cts +45 -0
  7. package/dist/anchor-length/index.d.ts +45 -0
  8. package/dist/anchor-length/index.js +11 -0
  9. package/dist/anchor-length/index.js.map +1 -0
  10. package/dist/bvalue/index.cjs +9 -0
  11. package/dist/bvalue/index.cjs.map +1 -0
  12. package/dist/bvalue/index.d.cts +35 -0
  13. package/dist/bvalue/index.d.ts +35 -0
  14. package/dist/bvalue/index.js +9 -0
  15. package/dist/bvalue/index.js.map +1 -0
  16. package/dist/cantilever/index.cjs +11 -0
  17. package/dist/cantilever/index.cjs.map +1 -0
  18. package/dist/cantilever/index.d.cts +31 -0
  19. package/dist/cantilever/index.d.ts +31 -0
  20. package/dist/cantilever/index.js +11 -0
  21. package/dist/cantilever/index.js.map +1 -0
  22. package/dist/chunk-3GREMF76.js +44 -0
  23. package/dist/chunk-3GREMF76.js.map +1 -0
  24. package/dist/chunk-4344WWAF.cjs +58 -0
  25. package/dist/chunk-4344WWAF.cjs.map +1 -0
  26. package/dist/chunk-57J7I6JA.cjs +116 -0
  27. package/dist/chunk-57J7I6JA.cjs.map +1 -0
  28. package/dist/chunk-75EGROQB.js +53 -0
  29. package/dist/chunk-75EGROQB.js.map +1 -0
  30. package/dist/chunk-C2XU3XKP.js +46 -0
  31. package/dist/chunk-C2XU3XKP.js.map +1 -0
  32. package/dist/chunk-CLVLOLUJ.js +45 -0
  33. package/dist/chunk-CLVLOLUJ.js.map +1 -0
  34. package/dist/chunk-CSLI5HEJ.cjs +53 -0
  35. package/dist/chunk-CSLI5HEJ.cjs.map +1 -0
  36. package/dist/chunk-D5F5ES2R.js +163 -0
  37. package/dist/chunk-D5F5ES2R.js.map +1 -0
  38. package/dist/chunk-HXALVJ4G.cjs +44 -0
  39. package/dist/chunk-HXALVJ4G.cjs.map +1 -0
  40. package/dist/chunk-HZWNKKIB.js +42 -0
  41. package/dist/chunk-HZWNKKIB.js.map +1 -0
  42. package/dist/{chunk-CVA4EH2K.js → chunk-IQR3SRCD.js} +9 -9
  43. package/dist/chunk-IQR3SRCD.js.map +1 -0
  44. package/dist/chunk-LBGUOTCJ.cjs +45 -0
  45. package/dist/chunk-LBGUOTCJ.cjs.map +1 -0
  46. package/dist/{chunk-MZBQ4546.cjs → chunk-MTAYG3U2.cjs} +9 -9
  47. package/dist/chunk-MTAYG3U2.cjs.map +1 -0
  48. package/dist/chunk-PYNVEHGR.cjs +46 -0
  49. package/dist/chunk-PYNVEHGR.cjs.map +1 -0
  50. package/dist/chunk-TO46PTS3.js +116 -0
  51. package/dist/chunk-TO46PTS3.js.map +1 -0
  52. package/dist/chunk-VXVTT6WS.js +58 -0
  53. package/dist/chunk-VXVTT6WS.js.map +1 -0
  54. package/dist/chunk-WGTOBRYV.cjs +42 -0
  55. package/dist/chunk-WGTOBRYV.cjs.map +1 -0
  56. package/dist/chunk-X25CXRVE.cjs +163 -0
  57. package/dist/chunk-X25CXRVE.cjs.map +1 -0
  58. package/dist/copper/index.cjs +2 -2
  59. package/dist/copper/index.d.cts +2 -2
  60. package/dist/copper/index.d.ts +2 -2
  61. package/dist/copper/index.js +1 -1
  62. package/dist/creepage/index.cjs +15 -0
  63. package/dist/creepage/index.cjs.map +1 -0
  64. package/dist/creepage/index.d.cts +40 -0
  65. package/dist/creepage/index.d.ts +40 -0
  66. package/dist/creepage/index.js +15 -0
  67. package/dist/creepage/index.js.map +1 -0
  68. package/dist/cross-span/index.cjs +9 -0
  69. package/dist/cross-span/index.cjs.map +1 -0
  70. package/dist/cross-span/index.d.cts +68 -0
  71. package/dist/cross-span/index.d.ts +68 -0
  72. package/dist/cross-span/index.js +9 -0
  73. package/dist/cross-span/index.js.map +1 -0
  74. package/dist/index.cjs +83 -15
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.d.cts +10 -2
  77. package/dist/index.d.ts +10 -2
  78. package/dist/index.js +92 -24
  79. package/dist/index.js.map +1 -1
  80. package/dist/pole-capacity/index.cjs +13 -0
  81. package/dist/pole-capacity/index.cjs.map +1 -0
  82. package/dist/pole-capacity/index.d.cts +47 -0
  83. package/dist/pole-capacity/index.d.ts +47 -0
  84. package/dist/pole-capacity/index.js +13 -0
  85. package/dist/pole-capacity/index.js.map +1 -0
  86. package/dist/sag/index.cjs +13 -0
  87. package/dist/sag/index.cjs.map +1 -0
  88. package/dist/sag/index.d.cts +21 -0
  89. package/dist/sag/index.d.ts +21 -0
  90. package/dist/sag/index.js +13 -0
  91. package/dist/sag/index.js.map +1 -0
  92. package/dist/steady-arm/index.cjs +11 -0
  93. package/dist/steady-arm/index.cjs.map +1 -0
  94. package/dist/steady-arm/index.d.cts +66 -0
  95. package/dist/steady-arm/index.d.ts +66 -0
  96. package/dist/steady-arm/index.js +11 -0
  97. package/dist/steady-arm/index.js.map +1 -0
  98. package/package.json +43 -3
  99. package/dist/chunk-CVA4EH2K.js.map +0 -1
  100. package/dist/chunk-MZBQ4546.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -40,47 +40,46 @@ var _chunkFVESJBUDcjs = require('./chunk-FVESJBUD.cjs');
40
40
 
41
41
 
42
42
 
43
- var _chunkNBFOB2PIcjs = require('./chunk-NBFOB2PI.cjs');
43
+ var _chunk4UU7WA7Ncjs = require('./chunk-4UU7WA7N.cjs');
44
44
 
45
45
 
46
46
 
47
47
 
48
- var _chunkMZBQ4546cjs = require('./chunk-MZBQ4546.cjs');
49
48
 
50
49
 
50
+ var _chunkJ2UXRMTUcjs = require('./chunk-J2UXRMTU.cjs');
51
51
 
52
52
 
53
- var _chunkDGO2DCO5cjs = require('./chunk-DGO2DCO5.cjs');
54
53
 
55
54
 
56
55
 
57
56
 
58
57
 
58
+ var _chunkRPKDEFSJcjs = require('./chunk-RPKDEFSJ.cjs');
59
59
 
60
60
 
61
- var _chunk4UU7WA7Ncjs = require('./chunk-4UU7WA7N.cjs');
62
61
 
63
62
 
64
63
 
65
64
 
65
+ var _chunkP6KUGPHDcjs = require('./chunk-P6KUGPHD.cjs');
66
66
 
67
67
 
68
- var _chunkJ2UXRMTUcjs = require('./chunk-J2UXRMTU.cjs');
69
68
 
70
69
 
71
70
 
71
+ var _chunk4344WWAFcjs = require('./chunk-4344WWAF.cjs');
72
72
 
73
73
 
74
74
 
75
75
 
76
- var _chunkRPKDEFSJcjs = require('./chunk-RPKDEFSJ.cjs');
77
76
 
77
+ var _chunkPYNVEHGRcjs = require('./chunk-PYNVEHGR.cjs');
78
78
 
79
79
 
80
80
 
81
81
 
82
-
83
- var _chunkP6KUGPHDcjs = require('./chunk-P6KUGPHD.cjs');
82
+ var _chunk57J7I6JAcjs = require('./chunk-57J7I6JA.cjs');
84
83
 
85
84
 
86
85
 
@@ -91,6 +90,49 @@ var _chunkP6KUGPHDcjs = require('./chunk-P6KUGPHD.cjs');
91
90
 
92
91
  var _chunk5Q6IASB2cjs = require('./chunk-5Q6IASB2.cjs');
93
92
 
93
+
94
+
95
+
96
+
97
+
98
+
99
+ var _chunkNBFOB2PIcjs = require('./chunk-NBFOB2PI.cjs');
100
+
101
+
102
+
103
+
104
+ var _chunkCSLI5HEJcjs = require('./chunk-CSLI5HEJ.cjs');
105
+
106
+
107
+
108
+ var _chunkHXALVJ4Gcjs = require('./chunk-HXALVJ4G.cjs');
109
+
110
+
111
+
112
+
113
+ var _chunkWGTOBRYVcjs = require('./chunk-WGTOBRYV.cjs');
114
+
115
+
116
+
117
+
118
+ var _chunkMTAYG3U2cjs = require('./chunk-MTAYG3U2.cjs');
119
+
120
+
121
+
122
+
123
+ var _chunkDGO2DCO5cjs = require('./chunk-DGO2DCO5.cjs');
124
+
125
+
126
+
127
+
128
+
129
+
130
+ var _chunkLBGUOTCJcjs = require('./chunk-LBGUOTCJ.cjs');
131
+
132
+
133
+
134
+ var _chunkX25CXRVEcjs = require('./chunk-X25CXRVE.cjs');
135
+
94
136
  // src/data/wire-specs.ts
95
137
  var REFERENCE_DENSITY_G_PER_CM3 = 8.94;
96
138
  var STANDARD_UNIT_WEIGHT_KG_PER_KM = {
@@ -108,8 +150,8 @@ var COPPER_ALLOY_ALPHA_PER_DEG_C = 17e-6;
108
150
  var WIRE_PRESETS = [
109
151
  {
110
152
  id: "cthm120",
111
- name: "CTHM-120\uFF08\u94DC\u9541 120\uFF09",
112
- nameEn: "CTHM-120 (CuMg 120 mm\xB2)",
153
+ name: "CTMH-120\uFF08\u94DC\u9541 120\uFF09",
154
+ nameEn: "CTMH-120 (CuMg 120 mm\xB2)",
113
155
  crossSectionMM2: 120,
114
156
  calculatedSectionMM2: 121,
115
157
  elasticModulusGPa: 120,
@@ -118,8 +160,8 @@ var WIRE_PRESETS = [
118
160
  },
119
161
  {
120
162
  id: "cthm150",
121
- name: "CTHM-150\uFF08\u94DC\u9541 150\uFF09",
122
- nameEn: "CTHM-150 (CuMg 150 mm\xB2)",
163
+ name: "CTMH-150\uFF08\u94DC\u9541 150\uFF09",
164
+ nameEn: "CTMH-150 (CuMg 150 mm\xB2)",
123
165
  crossSectionMM2: 150,
124
166
  calculatedSectionMM2: 151,
125
167
  elasticModulusGPa: 120,
@@ -128,8 +170,8 @@ var WIRE_PRESETS = [
128
170
  },
129
171
  {
130
172
  id: "ctha120",
131
- name: "CTHA-120\uFF08\u94DC\u94F6 120\uFF09",
132
- nameEn: "CTHA-120 (CuAg 120 mm\xB2)",
173
+ name: "CTAH-120\uFF08\u94DC\u94F6 120\uFF09",
174
+ nameEn: "CTAH-120 (CuAg 120 mm\xB2)",
133
175
  crossSectionMM2: 120,
134
176
  calculatedSectionMM2: 121,
135
177
  elasticModulusGPa: 120,
@@ -265,5 +307,31 @@ function findAmpacityA(params) {
265
307
 
266
308
 
267
309
 
268
- exports.AIR_DENSITY_KG_PER_M3 = _chunkFVESJBUDcjs.AIR_DENSITY_KG_PER_M3; exports.CONVENTIONAL_MARGIN_MM = _chunk5Q6IASB2cjs.CONVENTIONAL_MARGIN_MM; exports.COPPER_ALLOY_ALPHA_PER_DEG_C = COPPER_ALLOY_ALPHA_PER_DEG_C; exports.COPPER_ALPHA_PER_DEG_C = _chunkDGO2DCO5cjs.COPPER_ALPHA_PER_DEG_C; exports.DEFAULT_BASE_AMBIENT_TEMP_DEG_C = _chunkNBFOB2PIcjs.DEFAULT_BASE_AMBIENT_TEMP_DEG_C; exports.DEFAULT_ICE_DENSITY_KG_PER_M3 = _chunkP6KUGPHDcjs.DEFAULT_ICE_DENSITY_KG_PER_M3; exports.DEFAULT_MIN_END_VOLTAGE_V = _chunkRVP3IU2Lcjs.DEFAULT_MIN_END_VOLTAGE_V; exports.DEFAULT_PANTOGRAPH_HEIGHT_M = _chunk4UU7WA7Ncjs.DEFAULT_PANTOGRAPH_HEIGHT_M; exports.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = _chunk5INEDXRYcjs.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT; exports.DEFAULT_WARN_THRESHOLD = _chunkNBHEOJ5Acjs.DEFAULT_WARN_THRESHOLD; exports.G0 = _chunkP6KUGPHDcjs.G0; exports.IACS_RESISTIVITY_OHM_MM2_PER_M = _chunkDGO2DCO5cjs.IACS_RESISTIVITY_OHM_MM2_PER_M; exports.MIN_MARGIN_MM = _chunk5Q6IASB2cjs.MIN_MARGIN_MM; exports.REFERENCE_DENSITY_G_PER_CM3 = REFERENCE_DENSITY_G_PER_CM3; exports.REF_TARGET_COEFF = _chunkRPKDEFSJcjs.REF_TARGET_COEFF; exports.REF_TARGET_OFFSET_N = _chunkRPKDEFSJcjs.REF_TARGET_OFFSET_N; exports.STANDARD_GAUGE_M = _chunk4UU7WA7Ncjs.STANDARD_GAUGE_M; exports.STANDARD_UNIT_WEIGHT_KG_PER_KM = STANDARD_UNIT_WEIGHT_KG_PER_KM; exports.TB2809_AMPACITY_A = TB2809_AMPACITY_A; exports.TB2809_WIRE_PARAMS = _chunkMZBQ4546cjs.TB2809_WIRE_PARAMS; exports.TRANSMISSION_RATIOS = _chunk5Q6IASB2cjs.TRANSMISSION_RATIOS; exports.WIRE_PRESETS = WIRE_PRESETS; exports.ampacityDeratingFactor = _chunkNBFOB2PIcjs.ampacityDeratingFactor; exports.ampacityMeta = _chunkNBFOB2PIcjs.ampacityMeta; exports.assessContactForce = _chunkRPKDEFSJcjs.assessContactForce; exports.cantShiftM = _chunk4UU7WA7Ncjs.cantShiftM; exports.copperMeta = _chunkMZBQ4546cjs.copperMeta; exports.curveStaggerCheck = _chunk4UU7WA7Ncjs.curveStaggerCheck; exports.curveStaggerMeta = _chunk4UU7WA7Ncjs.curveStaggerMeta; exports.deratedAmpacityA = _chunkNBFOB2PIcjs.deratedAmpacityA; exports.deriveLinearMassKgPerM = deriveLinearMassKgPerM; exports.dropperLengths = _chunkJ2UXRMTUcjs.dropperLengths; exports.dropperMeta = _chunkJ2UXRMTUcjs.dropperMeta; exports.dropperPositionsM = _chunkJ2UXRMTUcjs.dropperPositionsM; exports.elongationMM = _chunk5Q6IASB2cjs.elongationMM; exports.equivalentSpanM = _chunk3ERFRRHZcjs.equivalentSpanM; exports.findAmpacityA = findAmpacityA; exports.findWirePreset = findWirePreset; exports.forceMeta = _chunkRPKDEFSJcjs.forceMeta; exports.iceLoadNPerM = _chunkP6KUGPHDcjs.iceLoadNPerM; exports.icingCheck = _chunkP6KUGPHDcjs.icingCheck; exports.icingMeta = _chunkP6KUGPHDcjs.icingMeta; exports.kmHToMPerS = _chunkNBHEOJ5Acjs.kmHToMPerS; exports.maxParabolaSagM = _chunkJ2UXRMTUcjs.maxParabolaSagM; exports.naturalFrequencyHz = _chunkNBHEOJ5Acjs.naturalFrequencyHz; exports.parabolaSagM = _chunkJ2UXRMTUcjs.parabolaSagM; exports.referenceTargetForceN = _chunkRPKDEFSJcjs.referenceTargetForceN; exports.requiredStrokeMM = _chunk5Q6IASB2cjs.requiredStrokeMM; exports.resistanceAtTempOhmPerKm = _chunkDGO2DCO5cjs.resistanceAtTempOhmPerKm; exports.sagM = _chunk3ERFRRHZcjs.sagM; exports.sectionFromDiameterMM2 = _chunk5INEDXRYcjs.sectionFromDiameterMM2; exports.shortCircuitCheck = _chunkNBFOB2PIcjs.shortCircuitCheck; exports.shortCircuitMinSectionMM2 = _chunkNBFOB2PIcjs.shortCircuitMinSectionMM2; exports.solveTensionN = _chunk3ERFRRHZcjs.solveTensionN; exports.stateCoefficientK = _chunk3ERFRRHZcjs.stateCoefficientK; exports.statisticalForcesN = _chunkRPKDEFSJcjs.statisticalForcesN; exports.strokeCheck = _chunk5Q6IASB2cjs.strokeCheck; exports.strokeMeta = _chunk5Q6IASB2cjs.strokeMeta; exports.tensionAt = _chunk3ERFRRHZcjs.tensionAt; exports.tensionCurve = _chunk3ERFRRHZcjs.tensionCurve; exports.tensionMeta = _chunk3ERFRRHZcjs.tensionMeta; exports.unitWeightToKgPerM = unitWeightToKgPerM; exports.versineM = _chunk4UU7WA7Ncjs.versineM; exports.voltageDropCheck = _chunkRVP3IU2Lcjs.voltageDropCheck; exports.voltageDropMeta = _chunkRVP3IU2Lcjs.voltageDropMeta; exports.wavePropagationSpeedMPerS = _chunkNBHEOJ5Acjs.wavePropagationSpeedMPerS; exports.waveSpeedCheck = _chunkNBHEOJ5Acjs.waveSpeedCheck; exports.wavespeedMeta = _chunkNBHEOJ5Acjs.wavespeedMeta; exports.wearMeta = _chunk5INEDXRYcjs.wearMeta; exports.wearRatio = _chunk5INEDXRYcjs.wearRatio; exports.weightOfPresetNPerM = weightOfPresetNPerM; exports.weightPerLengthNPerM = weightPerLengthNPerM; exports.windClearanceCheck = _chunkFVESJBUDcjs.windClearanceCheck; exports.windDeflectionM = _chunkFVESJBUDcjs.windDeflectionM; exports.windLoadNPerM = _chunkFVESJBUDcjs.windLoadNPerM; exports.windMeta = _chunkFVESJBUDcjs.windMeta; exports.wireLookup = _chunkMZBQ4546cjs.wireLookup;
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+ exports.AIR_DENSITY_KG_PER_M3 = _chunkFVESJBUDcjs.AIR_DENSITY_KG_PER_M3; exports.ASSEMBLY_TOLERANCE_MM = _chunkWGTOBRYVcjs.ASSEMBLY_TOLERANCE_MM; exports.CONVENTIONAL_MARGIN_MM = _chunk5Q6IASB2cjs.CONVENTIONAL_MARGIN_MM; exports.COPPER_ALLOY_ALPHA_PER_DEG_C = COPPER_ALLOY_ALPHA_PER_DEG_C; exports.COPPER_ALPHA_PER_DEG_C = _chunkDGO2DCO5cjs.COPPER_ALPHA_PER_DEG_C; exports.CREEPAGE_FLOOR_GENERAL = _chunkLBGUOTCJcjs.CREEPAGE_FLOOR_GENERAL; exports.CREEPAGE_FLOOR_VCUT = _chunkLBGUOTCJcjs.CREEPAGE_FLOOR_VCUT; exports.DEFAULT_BASE_AMBIENT_TEMP_DEG_C = _chunkNBFOB2PIcjs.DEFAULT_BASE_AMBIENT_TEMP_DEG_C; exports.DEFAULT_ICE_DENSITY_KG_PER_M3 = _chunkP6KUGPHDcjs.DEFAULT_ICE_DENSITY_KG_PER_M3; exports.DEFAULT_MIN_END_VOLTAGE_V = _chunkRVP3IU2Lcjs.DEFAULT_MIN_END_VOLTAGE_V; exports.DEFAULT_PANTOGRAPH_HEIGHT_M = _chunk4UU7WA7Ncjs.DEFAULT_PANTOGRAPH_HEIGHT_M; exports.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = _chunk5INEDXRYcjs.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT; exports.DEFAULT_WARN_THRESHOLD = _chunkNBHEOJ5Acjs.DEFAULT_WARN_THRESHOLD; exports.G0 = _chunkP6KUGPHDcjs.G0; exports.IACS_RESISTIVITY_OHM_MM2_PER_M = _chunkDGO2DCO5cjs.IACS_RESISTIVITY_OHM_MM2_PER_M; exports.MIN_MARGIN_MM = _chunk5Q6IASB2cjs.MIN_MARGIN_MM; exports.REFERENCE_DENSITY_G_PER_CM3 = REFERENCE_DENSITY_G_PER_CM3; exports.REF_TARGET_COEFF = _chunkRPKDEFSJcjs.REF_TARGET_COEFF; exports.REF_TARGET_OFFSET_N = _chunkRPKDEFSJcjs.REF_TARGET_OFFSET_N; exports.STANDARD_GAUGE_M = _chunk4UU7WA7Ncjs.STANDARD_GAUGE_M; exports.STANDARD_UNIT_WEIGHT_KG_PER_KM = STANDARD_UNIT_WEIGHT_KG_PER_KM; exports.STEEL_POLE_SERIES_KNM = _chunk4344WWAFcjs.STEEL_POLE_SERIES_KNM; exports.TB2809_AMPACITY_A = TB2809_AMPACITY_A; exports.TB2809_WIRE_PARAMS = _chunkMTAYG3U2cjs.TB2809_WIRE_PARAMS; exports.TENSION_DIFF_RATIO = _chunkCSLI5HEJcjs.TENSION_DIFF_RATIO; exports.TEST_MOMENT_FACTOR = _chunk4344WWAFcjs.TEST_MOMENT_FACTOR; exports.TRANSMISSION_RATIOS = _chunk5Q6IASB2cjs.TRANSMISSION_RATIOS; exports.USCD_BANDS = _chunkLBGUOTCJcjs.USCD_BANDS; exports.WIRE_PRESETS = WIRE_PRESETS; exports.ampacityDeratingFactor = _chunkNBFOB2PIcjs.ampacityDeratingFactor; exports.ampacityMeta = _chunkNBFOB2PIcjs.ampacityMeta; exports.anchorLengthCheck = _chunkCSLI5HEJcjs.anchorLengthCheck; exports.anchorLengthMeta = _chunkCSLI5HEJcjs.anchorLengthMeta; exports.assessContactForce = _chunkRPKDEFSJcjs.assessContactForce; exports.bValue = _chunkHXALVJ4Gcjs.bValue; exports.bvalueMeta = _chunkHXALVJ4Gcjs.bvalueMeta; exports.cantShiftM = _chunk4UU7WA7Ncjs.cantShiftM; exports.cantileverCut = _chunkWGTOBRYVcjs.cantileverCut; exports.cantileverMeta = _chunkWGTOBRYVcjs.cantileverMeta; exports.copperMeta = _chunkMTAYG3U2cjs.copperMeta; exports.creepageCheck = _chunkLBGUOTCJcjs.creepageCheck; exports.creepageMeta = _chunkLBGUOTCJcjs.creepageMeta; exports.crossSpanAnalyze = _chunkX25CXRVEcjs.crossSpanAnalyze; exports.crossSpanMeta = _chunkX25CXRVEcjs.crossSpanMeta; exports.curveStaggerCheck = _chunk4UU7WA7Ncjs.curveStaggerCheck; exports.curveStaggerMeta = _chunk4UU7WA7Ncjs.curveStaggerMeta; exports.deratedAmpacityA = _chunkNBFOB2PIcjs.deratedAmpacityA; exports.deriveLinearMassKgPerM = deriveLinearMassKgPerM; exports.dropperLengths = _chunkJ2UXRMTUcjs.dropperLengths; exports.dropperMeta = _chunkJ2UXRMTUcjs.dropperMeta; exports.dropperPositionsM = _chunkJ2UXRMTUcjs.dropperPositionsM; exports.elongationMM = _chunk5Q6IASB2cjs.elongationMM; exports.equivalentSpanM = _chunk3ERFRRHZcjs.equivalentSpanM; exports.findAmpacityA = findAmpacityA; exports.findWirePreset = findWirePreset; exports.forceMeta = _chunkRPKDEFSJcjs.forceMeta; exports.iceLoadNPerM = _chunkP6KUGPHDcjs.iceLoadNPerM; exports.icingCheck = _chunkP6KUGPHDcjs.icingCheck; exports.icingMeta = _chunkP6KUGPHDcjs.icingMeta; exports.kmHToMPerS = _chunkNBHEOJ5Acjs.kmHToMPerS; exports.maxParabolaSagM = _chunkJ2UXRMTUcjs.maxParabolaSagM; exports.maxSpanFromSagM = _chunkPYNVEHGRcjs.maxSpanFromSagM; exports.naturalFrequencyHz = _chunkNBHEOJ5Acjs.naturalFrequencyHz; exports.parabolaSagM = _chunkJ2UXRMTUcjs.parabolaSagM; exports.poleCapacityCheck = _chunk4344WWAFcjs.poleCapacityCheck; exports.poleCapacityMeta = _chunk4344WWAFcjs.poleCapacityMeta; exports.referenceTargetForceN = _chunkRPKDEFSJcjs.referenceTargetForceN; exports.requiredStrokeMM = _chunk5Q6IASB2cjs.requiredStrokeMM; exports.resistanceAtTempOhmPerKm = _chunkDGO2DCO5cjs.resistanceAtTempOhmPerKm; exports.sagM = _chunk3ERFRRHZcjs.sagM; exports.sagMM = _chunkPYNVEHGRcjs.sagMM; exports.sagMeta = _chunkPYNVEHGRcjs.sagMeta; exports.sectionFromDiameterMM2 = _chunk5INEDXRYcjs.sectionFromDiameterMM2; exports.shortCircuitCheck = _chunkNBFOB2PIcjs.shortCircuitCheck; exports.shortCircuitMinSectionMM2 = _chunkNBFOB2PIcjs.shortCircuitMinSectionMM2; exports.solveTensionN = _chunk3ERFRRHZcjs.solveTensionN; exports.stateCoefficientK = _chunk3ERFRRHZcjs.stateCoefficientK; exports.statisticalForcesN = _chunkRPKDEFSJcjs.statisticalForcesN; exports.steadyArmAngleDeg = _chunk57J7I6JAcjs.steadyArmAngleDeg; exports.steadyArmCheck = _chunk57J7I6JAcjs.steadyArmCheck; exports.steadyArmMeta = _chunk57J7I6JAcjs.steadyArmMeta; exports.strokeCheck = _chunk5Q6IASB2cjs.strokeCheck; exports.strokeMeta = _chunk5Q6IASB2cjs.strokeMeta; exports.tensionAt = _chunk3ERFRRHZcjs.tensionAt; exports.tensionCurve = _chunk3ERFRRHZcjs.tensionCurve; exports.tensionFromSagKN = _chunkPYNVEHGRcjs.tensionFromSagKN; exports.tensionMeta = _chunk3ERFRRHZcjs.tensionMeta; exports.unitWeightToKgPerM = unitWeightToKgPerM; exports.versineM = _chunk4UU7WA7Ncjs.versineM; exports.voltageDropCheck = _chunkRVP3IU2Lcjs.voltageDropCheck; exports.voltageDropMeta = _chunkRVP3IU2Lcjs.voltageDropMeta; exports.wavePropagationSpeedMPerS = _chunkNBHEOJ5Acjs.wavePropagationSpeedMPerS; exports.waveSpeedCheck = _chunkNBHEOJ5Acjs.waveSpeedCheck; exports.wavespeedMeta = _chunkNBHEOJ5Acjs.wavespeedMeta; exports.wearMeta = _chunk5INEDXRYcjs.wearMeta; exports.wearRatio = _chunk5INEDXRYcjs.wearRatio; exports.weightOfPresetNPerM = weightOfPresetNPerM; exports.weightPerLengthNPerM = weightPerLengthNPerM; exports.windClearanceCheck = _chunkFVESJBUDcjs.windClearanceCheck; exports.windDeflectionM = _chunkFVESJBUDcjs.windDeflectionM; exports.windLoadNPerM = _chunkFVESJBUDcjs.windLoadNPerM; exports.windMeta = _chunkFVESJBUDcjs.windMeta; exports.wireLookup = _chunkMTAYG3U2cjs.wireLookup;
269
337
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","sourcesContent":[null,"import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTHM-120(铜镁 120)',\n nameEn: 'CTHM-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTHM-150(铜镁 150)',\n nameEn: 'CTHM-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTHA-120(铜银 120)',\n nameEn: 'CTHA-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;AC5FO,IAAM,4BAAA,EAA8B,IAAA;AAUpC,IAAM,+BAAA,EAAyE;AAAA,EACpF,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAGO,SAAS,kBAAA,CAAmB,OAAA,EAAyB;AAC1D,EAAA,OAAO,QAAA,EAAU,GAAA;AACnB;AAYO,SAAS,sBAAA,CACd,eAAA,EACA,eAAA,EAAyB,2BAAA,EACjB;AAER,EAAA,OAAO,gBAAA,EAAkB,KAAA,EAAO,eAAA,EAAiB,GAAA;AACnD;AAGO,IAAM,6BAAA,EAA+B,KAAA;AAErC,IAAM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AM,GAAG,CAAC;AAC/E,CAAA;AAMO,SAAS,aAAA,CAAc,MAAA,EAIA;AAC5B,EAAA,MAAM,IAAA,EAAM,iBAAA,CAAkB,IAAA;AAAA,IAC5B,CAAC,CAAA,EAAA,GACC,CAAA,CAAE,KAAA,IAAS,MAAA,CAAO,KAAA,GAClB,CAAA,CAAE,gBAAA,IAAoB,MAAA,CAAO,gBAAA,GAC7B,CAAA,CAAE,UAAA,IAAc,MAAA,CAAO;AAAA,EAC3B,CAAA;AACA,EAAA,OAAO,IAAA,IAAQ,KAAA,EAAA,EAAY,KAAA,EAAA,EAAY,GAAA,CAAI,SAAA;AAC7C;AFgIA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,gqMAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","sourcesContent":[null,"import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTMH-120(铜镁 120)',\n nameEn: 'CTMH-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTMH-150(铜镁 150)',\n nameEn: 'CTMH-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTAH-120(铜银 120)',\n nameEn: 'CTAH-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -11,6 +11,14 @@ export { DEFAULT_WARN_THRESHOLD, WaveSpeedInput, WaveSpeedResult, kmHToMPerS, na
11
11
  export { DEFAULT_MIN_END_VOLTAGE_V, VoltageDropInput, VoltageDropResult, voltageDropCheck, voltageDropMeta } from './voltage-drop/index.cjs';
12
12
  export { CurveStaggerInput, CurveStaggerResult, DEFAULT_PANTOGRAPH_HEIGHT_M, STANDARD_GAUGE_M, cantShiftM, curveStaggerCheck, curveStaggerMeta, versineM } from './curve-stagger/index.cjs';
13
13
  export { IcingCheckInput, IcingCheckResult, icingCheck, icingMeta } from './icing/index.cjs';
14
+ export { SteadyArmAngleResult, SteadyArmCheckResult, SteadyArmInput, steadyArmAngleDeg, steadyArmCheck, steadyArmMeta } from './steady-arm/index.cjs';
15
+ export { CrossSpanNodeInput, CrossSpanResult, crossSpanAnalyze, crossSpanMeta } from './cross-span/index.cjs';
16
+ export { BValueInput, BValueResult, bValue, bvalueMeta } from './bvalue/index.cjs';
17
+ export { SagInput, maxSpanFromSagM, sagMM, sagMeta, tensionFromSagKN } from './sag/index.cjs';
18
+ export { AnchorLengthInput, AnchorLengthResult, TENSION_DIFF_RATIO, anchorLengthCheck, anchorLengthMeta } from './anchor-length/index.cjs';
19
+ export { CREEPAGE_FLOOR_GENERAL, CREEPAGE_FLOOR_VCUT, USCD_BANDS, creepageCheck, creepageMeta } from './creepage/index.cjs';
20
+ export { PoleCapacityInput, PoleCapacityResult, STEEL_POLE_SERIES_KNM, TEST_MOMENT_FACTOR, poleCapacityCheck, poleCapacityMeta } from './pole-capacity/index.cjs';
21
+ export { ASSEMBLY_TOLERANCE_MM, CantileverInput, CantileverResult, cantileverCut, cantileverMeta } from './cantilever/index.cjs';
14
22
 
15
23
  /**
16
24
  * 电阻温度修正 —— copper 与 voltage-drop 共用。
@@ -70,12 +78,12 @@ declare function iceLoadNPerM(params: IceLoadParams): number;
70
78
  * 注:参考单位质量按密度 8.94 g/cm³ 计算
71
79
  * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,
72
80
  * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。
73
- * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
81
+ * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
74
82
  * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。
75
83
  * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。
76
84
  *
77
85
  * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;
78
- * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
86
+ * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
79
87
  */
80
88
  interface WireSpec {
81
89
  /** 唯一标识 */
package/dist/index.d.ts CHANGED
@@ -11,6 +11,14 @@ export { DEFAULT_WARN_THRESHOLD, WaveSpeedInput, WaveSpeedResult, kmHToMPerS, na
11
11
  export { DEFAULT_MIN_END_VOLTAGE_V, VoltageDropInput, VoltageDropResult, voltageDropCheck, voltageDropMeta } from './voltage-drop/index.js';
12
12
  export { CurveStaggerInput, CurveStaggerResult, DEFAULT_PANTOGRAPH_HEIGHT_M, STANDARD_GAUGE_M, cantShiftM, curveStaggerCheck, curveStaggerMeta, versineM } from './curve-stagger/index.js';
13
13
  export { IcingCheckInput, IcingCheckResult, icingCheck, icingMeta } from './icing/index.js';
14
+ export { SteadyArmAngleResult, SteadyArmCheckResult, SteadyArmInput, steadyArmAngleDeg, steadyArmCheck, steadyArmMeta } from './steady-arm/index.js';
15
+ export { CrossSpanNodeInput, CrossSpanResult, crossSpanAnalyze, crossSpanMeta } from './cross-span/index.js';
16
+ export { BValueInput, BValueResult, bValue, bvalueMeta } from './bvalue/index.js';
17
+ export { SagInput, maxSpanFromSagM, sagMM, sagMeta, tensionFromSagKN } from './sag/index.js';
18
+ export { AnchorLengthInput, AnchorLengthResult, TENSION_DIFF_RATIO, anchorLengthCheck, anchorLengthMeta } from './anchor-length/index.js';
19
+ export { CREEPAGE_FLOOR_GENERAL, CREEPAGE_FLOOR_VCUT, USCD_BANDS, creepageCheck, creepageMeta } from './creepage/index.js';
20
+ export { PoleCapacityInput, PoleCapacityResult, STEEL_POLE_SERIES_KNM, TEST_MOMENT_FACTOR, poleCapacityCheck, poleCapacityMeta } from './pole-capacity/index.js';
21
+ export { ASSEMBLY_TOLERANCE_MM, CantileverInput, CantileverResult, cantileverCut, cantileverMeta } from './cantilever/index.js';
14
22
 
15
23
  /**
16
24
  * 电阻温度修正 —— copper 与 voltage-drop 共用。
@@ -70,12 +78,12 @@ declare function iceLoadNPerM(params: IceLoadParams): number;
70
78
  * 注:参考单位质量按密度 8.94 g/cm³ 计算
71
79
  * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,
72
80
  * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。
73
- * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
81
+ * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
74
82
  * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。
75
83
  * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。
76
84
  *
77
85
  * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;
78
- * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
86
+ * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
79
87
  */
80
88
  interface WireSpec {
81
89
  /** 唯一标识 */
package/dist/index.js CHANGED
@@ -33,24 +33,6 @@ import {
33
33
  windLoadNPerM,
34
34
  windMeta
35
35
  } from "./chunk-RVG3LEZQ.js";
36
- import {
37
- DEFAULT_BASE_AMBIENT_TEMP_DEG_C,
38
- ampacityDeratingFactor,
39
- ampacityMeta,
40
- deratedAmpacityA,
41
- shortCircuitCheck,
42
- shortCircuitMinSectionMM2
43
- } from "./chunk-746H65EQ.js";
44
- import {
45
- TB2809_WIRE_PARAMS,
46
- copperMeta,
47
- wireLookup
48
- } from "./chunk-CVA4EH2K.js";
49
- import {
50
- COPPER_ALPHA_PER_DEG_C,
51
- IACS_RESISTIVITY_OHM_MM2_PER_M,
52
- resistanceAtTempOhmPerKm
53
- } from "./chunk-YHDO6XVM.js";
54
36
  import {
55
37
  DEFAULT_PANTOGRAPH_HEIGHT_M,
56
38
  STANDARD_GAUGE_M,
@@ -81,6 +63,23 @@ import {
81
63
  icingCheck,
82
64
  icingMeta
83
65
  } from "./chunk-GN6QNOUL.js";
66
+ import {
67
+ STEEL_POLE_SERIES_KNM,
68
+ TEST_MOMENT_FACTOR,
69
+ poleCapacityCheck,
70
+ poleCapacityMeta
71
+ } from "./chunk-VXVTT6WS.js";
72
+ import {
73
+ maxSpanFromSagM,
74
+ sagMM,
75
+ sagMeta,
76
+ tensionFromSagKN
77
+ } from "./chunk-C2XU3XKP.js";
78
+ import {
79
+ steadyArmAngleDeg,
80
+ steadyArmCheck,
81
+ steadyArmMeta
82
+ } from "./chunk-TO46PTS3.js";
84
83
  import {
85
84
  CONVENTIONAL_MARGIN_MM,
86
85
  MIN_MARGIN_MM,
@@ -90,6 +89,49 @@ import {
90
89
  strokeCheck,
91
90
  strokeMeta
92
91
  } from "./chunk-KOSC6EA3.js";
92
+ import {
93
+ DEFAULT_BASE_AMBIENT_TEMP_DEG_C,
94
+ ampacityDeratingFactor,
95
+ ampacityMeta,
96
+ deratedAmpacityA,
97
+ shortCircuitCheck,
98
+ shortCircuitMinSectionMM2
99
+ } from "./chunk-746H65EQ.js";
100
+ import {
101
+ TENSION_DIFF_RATIO,
102
+ anchorLengthCheck,
103
+ anchorLengthMeta
104
+ } from "./chunk-75EGROQB.js";
105
+ import {
106
+ bValue,
107
+ bvalueMeta
108
+ } from "./chunk-3GREMF76.js";
109
+ import {
110
+ ASSEMBLY_TOLERANCE_MM,
111
+ cantileverCut,
112
+ cantileverMeta
113
+ } from "./chunk-HZWNKKIB.js";
114
+ import {
115
+ TB2809_WIRE_PARAMS,
116
+ copperMeta,
117
+ wireLookup
118
+ } from "./chunk-IQR3SRCD.js";
119
+ import {
120
+ COPPER_ALPHA_PER_DEG_C,
121
+ IACS_RESISTIVITY_OHM_MM2_PER_M,
122
+ resistanceAtTempOhmPerKm
123
+ } from "./chunk-YHDO6XVM.js";
124
+ import {
125
+ CREEPAGE_FLOOR_GENERAL,
126
+ CREEPAGE_FLOOR_VCUT,
127
+ USCD_BANDS,
128
+ creepageCheck,
129
+ creepageMeta
130
+ } from "./chunk-CLVLOLUJ.js";
131
+ import {
132
+ crossSpanAnalyze,
133
+ crossSpanMeta
134
+ } from "./chunk-D5F5ES2R.js";
93
135
 
94
136
  // src/data/wire-specs.ts
95
137
  var REFERENCE_DENSITY_G_PER_CM3 = 8.94;
@@ -108,8 +150,8 @@ var COPPER_ALLOY_ALPHA_PER_DEG_C = 17e-6;
108
150
  var WIRE_PRESETS = [
109
151
  {
110
152
  id: "cthm120",
111
- name: "CTHM-120\uFF08\u94DC\u9541 120\uFF09",
112
- nameEn: "CTHM-120 (CuMg 120 mm\xB2)",
153
+ name: "CTMH-120\uFF08\u94DC\u9541 120\uFF09",
154
+ nameEn: "CTMH-120 (CuMg 120 mm\xB2)",
113
155
  crossSectionMM2: 120,
114
156
  calculatedSectionMM2: 121,
115
157
  elasticModulusGPa: 120,
@@ -118,8 +160,8 @@ var WIRE_PRESETS = [
118
160
  },
119
161
  {
120
162
  id: "cthm150",
121
- name: "CTHM-150\uFF08\u94DC\u9541 150\uFF09",
122
- nameEn: "CTHM-150 (CuMg 150 mm\xB2)",
163
+ name: "CTMH-150\uFF08\u94DC\u9541 150\uFF09",
164
+ nameEn: "CTMH-150 (CuMg 150 mm\xB2)",
123
165
  crossSectionMM2: 150,
124
166
  calculatedSectionMM2: 151,
125
167
  elasticModulusGPa: 120,
@@ -128,8 +170,8 @@ var WIRE_PRESETS = [
128
170
  },
129
171
  {
130
172
  id: "ctha120",
131
- name: "CTHA-120\uFF08\u94DC\u94F6 120\uFF09",
132
- nameEn: "CTHA-120 (CuAg 120 mm\xB2)",
173
+ name: "CTAH-120\uFF08\u94DC\u94F6 120\uFF09",
174
+ nameEn: "CTAH-120 (CuAg 120 mm\xB2)",
133
175
  crossSectionMM2: 120,
134
176
  calculatedSectionMM2: 121,
135
177
  elasticModulusGPa: 120,
@@ -189,9 +231,12 @@ function findAmpacityA(params) {
189
231
  }
190
232
  export {
191
233
  AIR_DENSITY_KG_PER_M3,
234
+ ASSEMBLY_TOLERANCE_MM,
192
235
  CONVENTIONAL_MARGIN_MM,
193
236
  COPPER_ALLOY_ALPHA_PER_DEG_C,
194
237
  COPPER_ALPHA_PER_DEG_C,
238
+ CREEPAGE_FLOOR_GENERAL,
239
+ CREEPAGE_FLOOR_VCUT,
195
240
  DEFAULT_BASE_AMBIENT_TEMP_DEG_C,
196
241
  DEFAULT_ICE_DENSITY_KG_PER_M3,
197
242
  DEFAULT_MIN_END_VOLTAGE_V,
@@ -206,15 +251,29 @@ export {
206
251
  REF_TARGET_OFFSET_N,
207
252
  STANDARD_GAUGE_M,
208
253
  STANDARD_UNIT_WEIGHT_KG_PER_KM,
254
+ STEEL_POLE_SERIES_KNM,
209
255
  TB2809_AMPACITY_A,
210
256
  TB2809_WIRE_PARAMS,
257
+ TENSION_DIFF_RATIO,
258
+ TEST_MOMENT_FACTOR,
211
259
  TRANSMISSION_RATIOS,
260
+ USCD_BANDS,
212
261
  WIRE_PRESETS,
213
262
  ampacityDeratingFactor,
214
263
  ampacityMeta,
264
+ anchorLengthCheck,
265
+ anchorLengthMeta,
215
266
  assessContactForce,
267
+ bValue,
268
+ bvalueMeta,
216
269
  cantShiftM,
270
+ cantileverCut,
271
+ cantileverMeta,
217
272
  copperMeta,
273
+ creepageCheck,
274
+ creepageMeta,
275
+ crossSpanAnalyze,
276
+ crossSpanMeta,
218
277
  curveStaggerCheck,
219
278
  curveStaggerMeta,
220
279
  deratedAmpacityA,
@@ -232,22 +291,31 @@ export {
232
291
  icingMeta,
233
292
  kmHToMPerS,
234
293
  maxParabolaSagM,
294
+ maxSpanFromSagM,
235
295
  naturalFrequencyHz,
236
296
  parabolaSagM,
297
+ poleCapacityCheck,
298
+ poleCapacityMeta,
237
299
  referenceTargetForceN,
238
300
  requiredStrokeMM,
239
301
  resistanceAtTempOhmPerKm,
240
302
  sagM,
303
+ sagMM,
304
+ sagMeta,
241
305
  sectionFromDiameterMM2,
242
306
  shortCircuitCheck,
243
307
  shortCircuitMinSectionMM2,
244
308
  solveTensionN,
245
309
  stateCoefficientK,
246
310
  statisticalForcesN,
311
+ steadyArmAngleDeg,
312
+ steadyArmCheck,
313
+ steadyArmMeta,
247
314
  strokeCheck,
248
315
  strokeMeta,
249
316
  tensionAt,
250
317
  tensionCurve,
318
+ tensionFromSagKN,
251
319
  tensionMeta,
252
320
  unitWeightToKgPerM,
253
321
  versineM,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"sourcesContent":["import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTHM-120(铜镁 120)',\n nameEn: 'CTHM-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTHM-150(铜镁 150)',\n nameEn: 'CTHM-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTHA-120(铜银 120)',\n nameEn: 'CTHA-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"sourcesContent":["import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTMH-120(铜镁 120)',\n nameEn: 'CTMH-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTMH-150(铜镁 150)',\n nameEn: 'CTMH-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTAH-120(铜银 120)',\n nameEn: 'CTAH-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+ var _chunk4344WWAFcjs = require('../chunk-4344WWAF.cjs');
7
+
8
+
9
+
10
+
11
+
12
+ exports.STEEL_POLE_SERIES_KNM = _chunk4344WWAFcjs.STEEL_POLE_SERIES_KNM; exports.TEST_MOMENT_FACTOR = _chunk4344WWAFcjs.TEST_MOMENT_FACTOR; exports.poleCapacityCheck = _chunk4344WWAFcjs.poleCapacityCheck; exports.poleCapacityMeta = _chunk4344WWAFcjs.poleCapacityMeta;
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/pole-capacity/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACF,2QAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/pole-capacity/index.cjs"}
@@ -0,0 +1,47 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
2
+
3
+ declare const poleCapacityMeta: CalculatorMeta;
4
+
5
+ /** GB/T 25020.1-2025 格构式钢支柱标称容量系列(表 A.2),kN·m */
6
+ declare const STEEL_POLE_SERIES_KNM: readonly [150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 750, 900, 1050, 1200, 1500];
7
+ /** 承载力检验弯矩 = 1.5 × 标称容量(25020.1 表 A.2 表值规律) */
8
+ declare const TEST_MOMENT_FACTOR = 1.5;
9
+ /** 支柱容量校核输入。单位:kN、m、mm、Pa。 */
10
+ interface PoleCapacityInput {
11
+ /** 区段类型 */
12
+ readonly section: 'line' | 'curve';
13
+ /** 接触线张力 T_j,kN */
14
+ readonly contactWireTensionKN: number;
15
+ /** 承力索张力 T_c,kN */
16
+ readonly messengerTensionKN: number;
17
+ /** 拉出值 a,mm */
18
+ readonly staggerMM: number;
19
+ /** 跨距 l,m */
20
+ readonly spanM: number;
21
+ /** 曲线半径 R,m(曲线区段) */
22
+ readonly curveRadiusM?: number;
23
+ /** 水平力合力作用高度 h_e,m */
24
+ readonly resultantHeightM: number;
25
+ /** 设计最大风压 P,Pa */
26
+ readonly windPressurePa: number;
27
+ /** 支柱迎风宽度 b,m */
28
+ readonly poleWidthM: number;
29
+ /** 支柱高度 h,m */
30
+ readonly poleHeightM: number;
31
+ /** 线索风载 F_wl,N */
32
+ readonly wireWindLoadN?: number;
33
+ }
34
+ interface PoleCapacityResult {
35
+ /** 悬挂水平力 F_h,N */
36
+ readonly horizontalForceN: number;
37
+ /** 工作弯矩 M,kN·m */
38
+ readonly workMomentKNM: number;
39
+ /** 折合标称容量(÷1.5),kN·m */
40
+ readonly nominalNeedKNM: number;
41
+ /** 选型结果 */
42
+ readonly selection: string | null;
43
+ }
44
+ /** 支柱容量选型(容量比较法,TB/T 2286 5.9.2 检验弯矩口径;钢柱 25020.1 5.1.1+附录A) */
45
+ declare function poleCapacityCheck(input: PoleCapacityInput): PoleCapacityResult;
46
+
47
+ export { type PoleCapacityInput, type PoleCapacityResult, STEEL_POLE_SERIES_KNM, TEST_MOMENT_FACTOR, poleCapacityCheck, poleCapacityMeta };