@willcgage/module-schematic 0.53.0 → 0.55.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/dist/index.cjs +25 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +60 -30
- package/dist/index.d.ts +60 -30
- package/dist/index.js +25 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1039,22 +1039,25 @@ declare const RAIL_GAUGE_INCHES = 0.354;
|
|
|
1039
1039
|
* frog, i.e. a turnout's LEAD if lead were proportional to frog number. From an
|
|
1040
1040
|
* Atlas code 55 #7 measuring 3⅜″ (Steve Branton, #173) ⇒ 3.375 / 7.
|
|
1041
1041
|
*
|
|
1042
|
-
* It is NOT proportional. Measured lead ÷ N: **#
|
|
1043
|
-
*
|
|
1044
|
-
* compress the lead on long turnouts, just as they compress overall length.
|
|
1042
|
+
* It is NOT proportional. Measured lead ÷ N: **#5 = 0.600, #7 = 0.482,
|
|
1043
|
+
* #10 = 0.494.** This rule reads ~20% SHORT at N=5 (2.41″ vs a measured 3.00″).
|
|
1045
1044
|
*
|
|
1046
1045
|
* Prefer {@link leadInchesForSize}, which returns a real part's measurement when
|
|
1047
1046
|
* one exists and only falls back here for sizes nothing in the library covers.
|
|
1048
|
-
*
|
|
1047
|
+
* ⚠️ The remaining fallback user is the #2.5 wye at 1.21″; since per-frog is
|
|
1048
|
+
* HIGHEST at the low end (0.600 at N=5), that is very likely SHORT. It is a
|
|
1049
|
+
* placeholder, not a value.
|
|
1049
1050
|
*
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
1052
|
-
*
|
|
1053
|
-
*
|
|
1054
|
-
*
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1057
|
-
*
|
|
1051
|
+
* A constant-switch-angle model was also proposed here and is likewise REFUTED:
|
|
1052
|
+
* inverting {@link turnoutClosure} gives α = 0.036 (#5), 0.067 (#7), 0.043
|
|
1053
|
+
* (#10). Kept as a warning — it was floated when the #7 and #10 agreed to 3%,
|
|
1054
|
+
* on a #10 figure that later turned out to be measured to the wrong landmark.
|
|
1055
|
+
* TWO AGREEING PARTS ARE NOT A LAW, and neither is a coincidence you haven't
|
|
1056
|
+
* checked the provenance of.
|
|
1057
|
+
*
|
|
1058
|
+
* The pattern that currently fits is on {@link ATLAS_CODE55_N}: the moulding
|
|
1059
|
+
* runs past the frog far enough to gain a constant 0.25″ of separation. Note it
|
|
1060
|
+
* predicts the FROG POSITION, not the lead — this constant has no successor.
|
|
1058
1061
|
*/
|
|
1059
1062
|
declare const TURNOUT_LEAD_INCHES_PER_FROG = 0.482;
|
|
1060
1063
|
/** Where a dimension came from. `derived` = we computed it from another part or
|
|
@@ -1103,6 +1106,13 @@ interface TrackPart {
|
|
|
1103
1106
|
* inside its moulding; the rest of that end is plain approach track. Needed to
|
|
1104
1107
|
* fit a part into a space, and by any renderer drawing the real outline. */
|
|
1105
1108
|
pointsOffset?: PartDimension;
|
|
1109
|
+
/** End of the tie strip → the APEX OF THE FROG V, measured from the same end
|
|
1110
|
+
* as {@link pointsOffset}. ⚠️ The apex, NOT the end of the frog casting — on a
|
|
1111
|
+
* shallow #10 those are ¾″ apart, which is how this library recorded a wrong
|
|
1112
|
+
* #10 lead through two releases. `lead` is the difference of the two, so
|
|
1113
|
+
* prefer these when both are known: they're what someone can actually put a
|
|
1114
|
+
* rule against. */
|
|
1115
|
+
frogOffset?: PartDimension;
|
|
1106
1116
|
/** End-to-end length of the part. */
|
|
1107
1117
|
overallLength?: PartDimension;
|
|
1108
1118
|
/** Diverging route radius (straight turnouts). */
|
|
@@ -1123,26 +1133,46 @@ declare const CODE55_RAIL_HEIGHT_INCHES = 0.055;
|
|
|
1123
1133
|
* (3⅜″ points→frog, #173) and Will Gage's #5/#7/#10 overall lengths plus the
|
|
1124
1134
|
* #10's lead and points offset. The #5's lead and the wye's are still derived.
|
|
1125
1135
|
*
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
*
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
+
* MEASURED GEOMETRY (all Will Gage's, off physical parts, frog taken at the V):
|
|
1137
|
+
*
|
|
1138
|
+
* part points frog V overall lead past frog ÷N
|
|
1139
|
+
* #5 1¾″ 4.75″ 6.00″ 3.0000″ 1.25″ 0.2500
|
|
1140
|
+
* #7 — 4³⁄₁₆″ 6.00″ 3.3750″* 1.8125″ 0.2589
|
|
1141
|
+
* #10 ⁹⁄₁₆″ 5.50″ 8.00″ 4.9375″ 2.50″ 0.2500
|
|
1142
|
+
*
|
|
1143
|
+
* * the #7's lead is Steve Branton's (#173), a DIFFERENT person and possibly
|
|
1144
|
+
* a different convention. Its points offset has never been measured, so
|
|
1145
|
+
* 4³⁄₁₆ − 3⅜ = ¹³⁄₁₆″ is implied, not observed. Measure a 2052 to close it.
|
|
1146
|
+
*
|
|
1147
|
+
* ⭐ **THE PART RUNS PAST THE FROG FAR ENOUGH TO GAIN 0.25″ OF SEPARATION.**
|
|
1148
|
+
* Past-frog run ÷ N is 0.2500 / 0.2589 / 0.2500 — the #5 and #10 EXACT, the #7
|
|
1149
|
+
* within ¹⁄₁₆″ of the tie end (a 4¼″ frog would make it exact too). At the frog
|
|
1150
|
+
* the routes are one gauge apart; at the end of the moulding they are
|
|
1151
|
+
* 0.354 + 0.25 ≈ 0.6″ apart. So Atlas size the moulding for a constant
|
|
1152
|
+
* CLEARANCE, not a constant length — which is what a manufacturer would
|
|
1153
|
+
* sensibly do, and why overall length looks arbitrary until you divide by N.
|
|
1154
|
+
* ⚠️ It predicts the FROG POSITION from the overall length. It does NOT predict
|
|
1155
|
+
* the lead — the points offset is independent and must still be measured.
|
|
1156
|
+
* ⚠️ HYPOTHESIS. It is the FOURTH rule fitted to this data; the first three all
|
|
1157
|
+
* died. Two exact hits and a near miss is not a law.
|
|
1136
1158
|
*
|
|
1137
|
-
*
|
|
1138
|
-
*
|
|
1139
|
-
*
|
|
1140
|
-
*
|
|
1141
|
-
*
|
|
1159
|
+
* NOTHING HERE IS PROPORTIONAL TO FROG NUMBER. Three rules assumed otherwise;
|
|
1160
|
+
* all three were tested against a physical part and FAILED:
|
|
1161
|
+
* - ❌ **Lead ∝ N.** Measured lead ÷ N: #5 = 0.600, #7 = 0.482, #10 = 0.494.
|
|
1162
|
+
* {@link TURNOUT_LEAD_INCHES_PER_FROG} reads ~20% SHORT at N=5.
|
|
1163
|
+
* - ❌ **Constant switch angle.** Inverting {@link turnoutClosure} gives α =
|
|
1164
|
+
* 0.036 (#5), 0.067 (#7), 0.043 (#10). Not constant.
|
|
1165
|
+
* - ❌ **Overall length ∝ N.** #5 = 6.00″ and #7 = 6.00″ — same moulding, two
|
|
1166
|
+
* frog numbers.
|
|
1167
|
+
* - ❌ **Frog fixed at 4.75″** (shipped in 0.54.0, retracted in 0.55.0). It
|
|
1168
|
+
* rested on the #5 and #10 both reading 4.75″, but the #10's was the END OF
|
|
1169
|
+
* THE FROG CASTING, not the V. Measured consistently the frogs are at 4.75″,
|
|
1170
|
+
* 4³⁄₁₆″ and 5.5″ — all different.
|
|
1142
1171
|
*
|
|
1143
|
-
*
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1172
|
+
* The definition is the reason: #N fixes the DIVERGENCE RATE AT THE FROG (1
|
|
1173
|
+
* across per N along) and says NOTHING about how much tie strip the manufacturer
|
|
1174
|
+
* wraps around it, or where inside it the frog goes. Angle is geometry;
|
|
1175
|
+
* everything else is a tooling decision. **Measure the part. Do not model it.**
|
|
1146
1176
|
*/
|
|
1147
1177
|
declare const ATLAS_CODE55_N: TrackPart[];
|
|
1148
1178
|
/** Every built-in part, across manufacturers. */
|
package/dist/index.d.ts
CHANGED
|
@@ -1039,22 +1039,25 @@ declare const RAIL_GAUGE_INCHES = 0.354;
|
|
|
1039
1039
|
* frog, i.e. a turnout's LEAD if lead were proportional to frog number. From an
|
|
1040
1040
|
* Atlas code 55 #7 measuring 3⅜″ (Steve Branton, #173) ⇒ 3.375 / 7.
|
|
1041
1041
|
*
|
|
1042
|
-
* It is NOT proportional. Measured lead ÷ N: **#
|
|
1043
|
-
*
|
|
1044
|
-
* compress the lead on long turnouts, just as they compress overall length.
|
|
1042
|
+
* It is NOT proportional. Measured lead ÷ N: **#5 = 0.600, #7 = 0.482,
|
|
1043
|
+
* #10 = 0.494.** This rule reads ~20% SHORT at N=5 (2.41″ vs a measured 3.00″).
|
|
1045
1044
|
*
|
|
1046
1045
|
* Prefer {@link leadInchesForSize}, which returns a real part's measurement when
|
|
1047
1046
|
* one exists and only falls back here for sizes nothing in the library covers.
|
|
1048
|
-
*
|
|
1047
|
+
* ⚠️ The remaining fallback user is the #2.5 wye at 1.21″; since per-frog is
|
|
1048
|
+
* HIGHEST at the low end (0.600 at N=5), that is very likely SHORT. It is a
|
|
1049
|
+
* placeholder, not a value.
|
|
1049
1050
|
*
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
1052
|
-
*
|
|
1053
|
-
*
|
|
1054
|
-
*
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1057
|
-
*
|
|
1051
|
+
* A constant-switch-angle model was also proposed here and is likewise REFUTED:
|
|
1052
|
+
* inverting {@link turnoutClosure} gives α = 0.036 (#5), 0.067 (#7), 0.043
|
|
1053
|
+
* (#10). Kept as a warning — it was floated when the #7 and #10 agreed to 3%,
|
|
1054
|
+
* on a #10 figure that later turned out to be measured to the wrong landmark.
|
|
1055
|
+
* TWO AGREEING PARTS ARE NOT A LAW, and neither is a coincidence you haven't
|
|
1056
|
+
* checked the provenance of.
|
|
1057
|
+
*
|
|
1058
|
+
* The pattern that currently fits is on {@link ATLAS_CODE55_N}: the moulding
|
|
1059
|
+
* runs past the frog far enough to gain a constant 0.25″ of separation. Note it
|
|
1060
|
+
* predicts the FROG POSITION, not the lead — this constant has no successor.
|
|
1058
1061
|
*/
|
|
1059
1062
|
declare const TURNOUT_LEAD_INCHES_PER_FROG = 0.482;
|
|
1060
1063
|
/** Where a dimension came from. `derived` = we computed it from another part or
|
|
@@ -1103,6 +1106,13 @@ interface TrackPart {
|
|
|
1103
1106
|
* inside its moulding; the rest of that end is plain approach track. Needed to
|
|
1104
1107
|
* fit a part into a space, and by any renderer drawing the real outline. */
|
|
1105
1108
|
pointsOffset?: PartDimension;
|
|
1109
|
+
/** End of the tie strip → the APEX OF THE FROG V, measured from the same end
|
|
1110
|
+
* as {@link pointsOffset}. ⚠️ The apex, NOT the end of the frog casting — on a
|
|
1111
|
+
* shallow #10 those are ¾″ apart, which is how this library recorded a wrong
|
|
1112
|
+
* #10 lead through two releases. `lead` is the difference of the two, so
|
|
1113
|
+
* prefer these when both are known: they're what someone can actually put a
|
|
1114
|
+
* rule against. */
|
|
1115
|
+
frogOffset?: PartDimension;
|
|
1106
1116
|
/** End-to-end length of the part. */
|
|
1107
1117
|
overallLength?: PartDimension;
|
|
1108
1118
|
/** Diverging route radius (straight turnouts). */
|
|
@@ -1123,26 +1133,46 @@ declare const CODE55_RAIL_HEIGHT_INCHES = 0.055;
|
|
|
1123
1133
|
* (3⅜″ points→frog, #173) and Will Gage's #5/#7/#10 overall lengths plus the
|
|
1124
1134
|
* #10's lead and points offset. The #5's lead and the wye's are still derived.
|
|
1125
1135
|
*
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
*
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1136
|
+
* MEASURED GEOMETRY (all Will Gage's, off physical parts, frog taken at the V):
|
|
1137
|
+
*
|
|
1138
|
+
* part points frog V overall lead past frog ÷N
|
|
1139
|
+
* #5 1¾″ 4.75″ 6.00″ 3.0000″ 1.25″ 0.2500
|
|
1140
|
+
* #7 — 4³⁄₁₆″ 6.00″ 3.3750″* 1.8125″ 0.2589
|
|
1141
|
+
* #10 ⁹⁄₁₆″ 5.50″ 8.00″ 4.9375″ 2.50″ 0.2500
|
|
1142
|
+
*
|
|
1143
|
+
* * the #7's lead is Steve Branton's (#173), a DIFFERENT person and possibly
|
|
1144
|
+
* a different convention. Its points offset has never been measured, so
|
|
1145
|
+
* 4³⁄₁₆ − 3⅜ = ¹³⁄₁₆″ is implied, not observed. Measure a 2052 to close it.
|
|
1146
|
+
*
|
|
1147
|
+
* ⭐ **THE PART RUNS PAST THE FROG FAR ENOUGH TO GAIN 0.25″ OF SEPARATION.**
|
|
1148
|
+
* Past-frog run ÷ N is 0.2500 / 0.2589 / 0.2500 — the #5 and #10 EXACT, the #7
|
|
1149
|
+
* within ¹⁄₁₆″ of the tie end (a 4¼″ frog would make it exact too). At the frog
|
|
1150
|
+
* the routes are one gauge apart; at the end of the moulding they are
|
|
1151
|
+
* 0.354 + 0.25 ≈ 0.6″ apart. So Atlas size the moulding for a constant
|
|
1152
|
+
* CLEARANCE, not a constant length — which is what a manufacturer would
|
|
1153
|
+
* sensibly do, and why overall length looks arbitrary until you divide by N.
|
|
1154
|
+
* ⚠️ It predicts the FROG POSITION from the overall length. It does NOT predict
|
|
1155
|
+
* the lead — the points offset is independent and must still be measured.
|
|
1156
|
+
* ⚠️ HYPOTHESIS. It is the FOURTH rule fitted to this data; the first three all
|
|
1157
|
+
* died. Two exact hits and a near miss is not a law.
|
|
1136
1158
|
*
|
|
1137
|
-
*
|
|
1138
|
-
*
|
|
1139
|
-
*
|
|
1140
|
-
*
|
|
1141
|
-
*
|
|
1159
|
+
* NOTHING HERE IS PROPORTIONAL TO FROG NUMBER. Three rules assumed otherwise;
|
|
1160
|
+
* all three were tested against a physical part and FAILED:
|
|
1161
|
+
* - ❌ **Lead ∝ N.** Measured lead ÷ N: #5 = 0.600, #7 = 0.482, #10 = 0.494.
|
|
1162
|
+
* {@link TURNOUT_LEAD_INCHES_PER_FROG} reads ~20% SHORT at N=5.
|
|
1163
|
+
* - ❌ **Constant switch angle.** Inverting {@link turnoutClosure} gives α =
|
|
1164
|
+
* 0.036 (#5), 0.067 (#7), 0.043 (#10). Not constant.
|
|
1165
|
+
* - ❌ **Overall length ∝ N.** #5 = 6.00″ and #7 = 6.00″ — same moulding, two
|
|
1166
|
+
* frog numbers.
|
|
1167
|
+
* - ❌ **Frog fixed at 4.75″** (shipped in 0.54.0, retracted in 0.55.0). It
|
|
1168
|
+
* rested on the #5 and #10 both reading 4.75″, but the #10's was the END OF
|
|
1169
|
+
* THE FROG CASTING, not the V. Measured consistently the frogs are at 4.75″,
|
|
1170
|
+
* 4³⁄₁₆″ and 5.5″ — all different.
|
|
1142
1171
|
*
|
|
1143
|
-
*
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1172
|
+
* The definition is the reason: #N fixes the DIVERGENCE RATE AT THE FROG (1
|
|
1173
|
+
* across per N along) and says NOTHING about how much tie strip the manufacturer
|
|
1174
|
+
* wraps around it, or where inside it the frog goes. Angle is geometry;
|
|
1175
|
+
* everything else is a tooling decision. **Measure the part. Do not model it.**
|
|
1146
1176
|
*/
|
|
1147
1177
|
declare const ATLAS_CODE55_N: TrackPart[];
|
|
1148
1178
|
/** Every built-in part, across manufacturers. */
|
package/dist/index.js
CHANGED
|
@@ -1102,9 +1102,19 @@ var ATLAS_CODE55_N = [
|
|
|
1102
1102
|
partNumbers: { left: "2050", right: "2051" },
|
|
1103
1103
|
frogNumber: 5,
|
|
1104
1104
|
lead: {
|
|
1105
|
-
inches:
|
|
1106
|
-
source: "
|
|
1107
|
-
note: "
|
|
1105
|
+
inches: 3,
|
|
1106
|
+
source: "measured",
|
|
1107
|
+
note: "Will Gage, physical Atlas 2050 (#5 LH): points at 1\xBE\u2033, frog at 4.75\u2033 \u21D2 3\u2033 exactly. REFUTED BOTH standing models \u2014 the per-frog rule predicted 2.41\u2033, the constant-switch-angle model 2.64\u2033; both read short. It also retired my earlier ~2.4\u2033 photo estimate, which was 20% under."
|
|
1108
|
+
},
|
|
1109
|
+
pointsOffset: {
|
|
1110
|
+
inches: 1.75,
|
|
1111
|
+
source: "measured",
|
|
1112
|
+
note: "Will Gage, physical Atlas 2050 (#5 LH) \u2014 end of tie strip to point tips"
|
|
1113
|
+
},
|
|
1114
|
+
frogOffset: {
|
|
1115
|
+
inches: 4.75,
|
|
1116
|
+
source: "measured",
|
|
1117
|
+
note: "Will Gage, physical Atlas 2050 (#5 LH) \u2014 tie end to the apex of the V"
|
|
1108
1118
|
},
|
|
1109
1119
|
overallLength: {
|
|
1110
1120
|
inches: 6,
|
|
@@ -1131,6 +1141,11 @@ var ATLAS_CODE55_N = [
|
|
|
1131
1141
|
source: "measured",
|
|
1132
1142
|
note: "Steve Branton, physical Atlas code 55 #7, 3\u215C\u2033 points\u2192frog (#173)"
|
|
1133
1143
|
},
|
|
1144
|
+
frogOffset: {
|
|
1145
|
+
inches: 4.1875,
|
|
1146
|
+
source: "measured",
|
|
1147
|
+
note: "Will Gage, physical Atlas 2052 (#7) \u2014 tie end to the apex of the V"
|
|
1148
|
+
},
|
|
1134
1149
|
overallLength: {
|
|
1135
1150
|
inches: 6,
|
|
1136
1151
|
source: "measured",
|
|
@@ -1152,15 +1167,20 @@ var ATLAS_CODE55_N = [
|
|
|
1152
1167
|
partNumbers: { left: "2054", right: "2055" },
|
|
1153
1168
|
frogNumber: 10,
|
|
1154
1169
|
lead: {
|
|
1155
|
-
inches: 4.
|
|
1170
|
+
inches: 4.9375,
|
|
1156
1171
|
source: "measured",
|
|
1157
|
-
note: "Will Gage, physical Atlas 2054 (#10):
|
|
1172
|
+
note: "Will Gage, physical Atlas 2054 (#10): 5.5\u2033 frog \u2212 9/16\u2033 points = 4\xB9\u2075\u2044\u2081\u2086\u2033. \u26A0\uFE0F CORRECTED from 4\xB3\u2044\u2081\u2086\u2033 (0.53.0\u20130.54.0), which used a 4.75\u2033 frog reading taken before we'd agreed the landmark. That earlier figure was the END OF THE FROG CASTING; a #10's V is shallow, so the apex is \xBE\u2033 back from it."
|
|
1158
1173
|
},
|
|
1159
1174
|
pointsOffset: {
|
|
1160
1175
|
inches: 0.5625,
|
|
1161
1176
|
source: "measured",
|
|
1162
1177
|
note: "Will Gage, physical Atlas 2054 (#10) \u2014 end of tie strip to point tips"
|
|
1163
1178
|
},
|
|
1179
|
+
frogOffset: {
|
|
1180
|
+
inches: 5.5,
|
|
1181
|
+
source: "measured",
|
|
1182
|
+
note: "Will Gage, physical Atlas 2054 (#10) \u2014 tie end to the apex of the V"
|
|
1183
|
+
},
|
|
1164
1184
|
overallLength: {
|
|
1165
1185
|
inches: 8,
|
|
1166
1186
|
source: "measured",
|