@willcgage/module-schematic 0.52.0 → 0.53.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 +39 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +65 -10
- package/dist/index.d.ts +65 -10
- package/dist/index.js +39 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1034,11 +1034,28 @@ interface ModuleFeatures {
|
|
|
1034
1034
|
*/
|
|
1035
1035
|
/** N-scale track gauge, inches (9 mm). */
|
|
1036
1036
|
declare const RAIL_GAUGE_INCHES = 0.354;
|
|
1037
|
-
/**
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
* #173) ⇒ 3.375 / 7.
|
|
1041
|
-
*
|
|
1037
|
+
/**
|
|
1038
|
+
* ⚠️ **REFUTED AS A GENERAL RULE — LAST RESORT ONLY.** Points→frog for a #1
|
|
1039
|
+
* frog, i.e. a turnout's LEAD if lead were proportional to frog number. From an
|
|
1040
|
+
* Atlas code 55 #7 measuring 3⅜″ (Steve Branton, #173) ⇒ 3.375 / 7.
|
|
1041
|
+
*
|
|
1042
|
+
* It is NOT proportional. Measured lead ÷ N: **#7 = 0.482, #10 = 0.419.** The
|
|
1043
|
+
* rule predicted 4.82″ for the #10; it measures 4³⁄₁₆″ — **13% over**. Atlas
|
|
1044
|
+
* compress the lead on long turnouts, just as they compress overall length.
|
|
1045
|
+
*
|
|
1046
|
+
* Prefer {@link leadInchesForSize}, which returns a real part's measurement when
|
|
1047
|
+
* one exists and only falls back here for sizes nothing in the library covers.
|
|
1048
|
+
* A fallback at N ≥ 10 will read LONG.
|
|
1049
|
+
*
|
|
1050
|
+
* BETTER MODEL (hypothesis, not yet enough data): a roughly CONSTANT SWITCH
|
|
1051
|
+
* ANGLE α — the angle the point rails leave the stock rail at — which is real
|
|
1052
|
+
* prototype practice, points being planed to a standard angle. Inverting
|
|
1053
|
+
* {@link turnoutClosure} gives `lead = 2g / (1/N + α)`, and the two measured
|
|
1054
|
+
* leads agree to 3%: #7 ⇒ α = 0.0669, #10 ⇒ α = 0.0691. If it holds, lead is
|
|
1055
|
+
* whatever falls out of a fixed point angle meeting the frog, not a multiple
|
|
1056
|
+
* of N. DISCRIMINATING TEST: at α ≈ 0.068 the #5's lead is **2.64″**, where
|
|
1057
|
+
* this constant says 2.41″ — measure a physical 2050 to settle it.
|
|
1058
|
+
*/
|
|
1042
1059
|
declare const TURNOUT_LEAD_INCHES_PER_FROG = 0.482;
|
|
1043
1060
|
/** Where a dimension came from. `derived` = we computed it from another part or
|
|
1044
1061
|
* a rule of thumb; `unverified` = plausible but unconfirmed — treat with care. */
|
|
@@ -1049,6 +1066,12 @@ interface PartDimension {
|
|
|
1049
1066
|
/** Who measured it / which spec, so it can be re-checked. */
|
|
1050
1067
|
note?: string;
|
|
1051
1068
|
}
|
|
1069
|
+
/** Same provenance discipline as {@link PartDimension}, for angles. */
|
|
1070
|
+
interface PartAngle {
|
|
1071
|
+
deg: number;
|
|
1072
|
+
source: DimensionSource;
|
|
1073
|
+
note?: string;
|
|
1074
|
+
}
|
|
1052
1075
|
interface TrackPart {
|
|
1053
1076
|
/** Stable slug, e.g. "atlas-c55-n-7". */
|
|
1054
1077
|
id: string;
|
|
@@ -1066,8 +1089,20 @@ interface TrackPart {
|
|
|
1066
1089
|
};
|
|
1067
1090
|
/** Frog number N (the 1:N ratio). Definitional, so no provenance needed. */
|
|
1068
1091
|
frogNumber?: number;
|
|
1092
|
+
/** The angle the part ACTUALLY diverges at, where that's known to differ from
|
|
1093
|
+
* the theoretical `atan(1/N)`. Atlas appear to build to SECTIONAL angles
|
|
1094
|
+
* (multiples of 11.25° = 1/32 turn) rather than true frog ratios, so a "#5" is
|
|
1095
|
+
* 11.25° not 11.31°. ⚠️ Currently below our drawing resolution — 0.06° over a
|
|
1096
|
+
* 6″ turnout is 0.006″ — so nothing uses this yet. Recorded because it's a
|
|
1097
|
+
* real property of the product and will matter if we ever check whether a part
|
|
1098
|
+
* mates with sectional track. */
|
|
1099
|
+
actualAngle?: PartAngle;
|
|
1069
1100
|
/** Points → frog. The number that decides where a turnout's throat lands. */
|
|
1070
1101
|
lead?: PartDimension;
|
|
1102
|
+
/** End of the tie strip → the point tips. Where the working turnout starts
|
|
1103
|
+
* inside its moulding; the rest of that end is plain approach track. Needed to
|
|
1104
|
+
* fit a part into a space, and by any renderer drawing the real outline. */
|
|
1105
|
+
pointsOffset?: PartDimension;
|
|
1071
1106
|
/** End-to-end length of the part. */
|
|
1072
1107
|
overallLength?: PartDimension;
|
|
1073
1108
|
/** Diverging route radius (straight turnouts). */
|
|
@@ -1084,10 +1119,30 @@ declare const CODE55_RAIL_HEIGHT_INCHES = 0.055;
|
|
|
1084
1119
|
* Atlas N-scale Code 55 — the Free-moN mainstay.
|
|
1085
1120
|
*
|
|
1086
1121
|
* ⚠️ Atlas do not publish leads or overall lengths for the straight turnouts.
|
|
1087
|
-
*
|
|
1088
|
-
* #173)
|
|
1089
|
-
*
|
|
1090
|
-
*
|
|
1122
|
+
* Everything here traces to physical measurements: Steve Branton's #7 lead
|
|
1123
|
+
* (3⅜″ points→frog, #173) and Will Gage's #5/#7/#10 overall lengths plus the
|
|
1124
|
+
* #10's lead and points offset. The #5's lead and the wye's are still derived.
|
|
1125
|
+
*
|
|
1126
|
+
* NEITHER DIMENSION IS PROPORTIONAL TO FROG NUMBER. Both rules that assumed so
|
|
1127
|
+
* have now been tested and failed:
|
|
1128
|
+
* - **Lead does NOT scale with N.** Measured lead ÷ N: #7 = 0.482, #10 = 0.419.
|
|
1129
|
+
* {@link TURNOUT_LEAD_INCHES_PER_FROG} predicted 4.82″ for the #10 against a
|
|
1130
|
+
* measured 4³⁄₁₆″ — 13% over. See that constant for the constant-switch-angle
|
|
1131
|
+
* model that fits both measurements, and the test that would confirm it.
|
|
1132
|
+
* - ⭐ **Overall length is NOT A FUNCTION OF N AT ALL.** Measured: #5 = 6.00″,
|
|
1133
|
+
* **#7 = 6.00″**, #10 = 8.00″. The #5 and #7 are the SAME LENGTH — Atlas mould
|
|
1134
|
+
* them on a shared 6″ tie strip and vary only the frog angle and where the frog
|
|
1135
|
+
* sits. NEVER derive a length from a frog number; look the part up.
|
|
1136
|
+
*
|
|
1137
|
+
* This is what the frog-number definition actually says, and it's easy to forget:
|
|
1138
|
+
* #N fixes the DIVERGENCE RATE AT THE FROG (1 across per N along). It says
|
|
1139
|
+
* nothing about how much tie strip the manufacturer wraps around it. Angle is
|
|
1140
|
+
* geometry; length is packaging. Hence the lead — where the frog falls inside
|
|
1141
|
+
* that strip — is the only dimension worth chasing.
|
|
1142
|
+
*
|
|
1143
|
+
* (Lengths are whole inches and the #5 diverges at exactly 1/32 of a circle, so
|
|
1144
|
+
* Atlas do seem to work to round numbers — but a prediction that the #7 would
|
|
1145
|
+
* therefore be 7.00″ was tested and FAILED. Round, but not one inch per frog.)
|
|
1091
1146
|
*/
|
|
1092
1147
|
declare const ATLAS_CODE55_N: TrackPart[];
|
|
1093
1148
|
/** Every built-in part, across manufacturers. */
|
|
@@ -1343,4 +1398,4 @@ declare function poseOverridesFromDoc(doc: ModuleSchematicDoc): Record<string, {
|
|
|
1343
1398
|
heading: number;
|
|
1344
1399
|
}>;
|
|
1345
1400
|
|
|
1346
|
-
export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, fromSectionRelative, geometryTurnDegrees, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
|
|
1401
|
+
export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, fromSectionRelative, geometryTurnDegrees, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
|
package/dist/index.d.ts
CHANGED
|
@@ -1034,11 +1034,28 @@ interface ModuleFeatures {
|
|
|
1034
1034
|
*/
|
|
1035
1035
|
/** N-scale track gauge, inches (9 mm). */
|
|
1036
1036
|
declare const RAIL_GAUGE_INCHES = 0.354;
|
|
1037
|
-
/**
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
* #173) ⇒ 3.375 / 7.
|
|
1041
|
-
*
|
|
1037
|
+
/**
|
|
1038
|
+
* ⚠️ **REFUTED AS A GENERAL RULE — LAST RESORT ONLY.** Points→frog for a #1
|
|
1039
|
+
* frog, i.e. a turnout's LEAD if lead were proportional to frog number. From an
|
|
1040
|
+
* Atlas code 55 #7 measuring 3⅜″ (Steve Branton, #173) ⇒ 3.375 / 7.
|
|
1041
|
+
*
|
|
1042
|
+
* It is NOT proportional. Measured lead ÷ N: **#7 = 0.482, #10 = 0.419.** The
|
|
1043
|
+
* rule predicted 4.82″ for the #10; it measures 4³⁄₁₆″ — **13% over**. Atlas
|
|
1044
|
+
* compress the lead on long turnouts, just as they compress overall length.
|
|
1045
|
+
*
|
|
1046
|
+
* Prefer {@link leadInchesForSize}, which returns a real part's measurement when
|
|
1047
|
+
* one exists and only falls back here for sizes nothing in the library covers.
|
|
1048
|
+
* A fallback at N ≥ 10 will read LONG.
|
|
1049
|
+
*
|
|
1050
|
+
* BETTER MODEL (hypothesis, not yet enough data): a roughly CONSTANT SWITCH
|
|
1051
|
+
* ANGLE α — the angle the point rails leave the stock rail at — which is real
|
|
1052
|
+
* prototype practice, points being planed to a standard angle. Inverting
|
|
1053
|
+
* {@link turnoutClosure} gives `lead = 2g / (1/N + α)`, and the two measured
|
|
1054
|
+
* leads agree to 3%: #7 ⇒ α = 0.0669, #10 ⇒ α = 0.0691. If it holds, lead is
|
|
1055
|
+
* whatever falls out of a fixed point angle meeting the frog, not a multiple
|
|
1056
|
+
* of N. DISCRIMINATING TEST: at α ≈ 0.068 the #5's lead is **2.64″**, where
|
|
1057
|
+
* this constant says 2.41″ — measure a physical 2050 to settle it.
|
|
1058
|
+
*/
|
|
1042
1059
|
declare const TURNOUT_LEAD_INCHES_PER_FROG = 0.482;
|
|
1043
1060
|
/** Where a dimension came from. `derived` = we computed it from another part or
|
|
1044
1061
|
* a rule of thumb; `unverified` = plausible but unconfirmed — treat with care. */
|
|
@@ -1049,6 +1066,12 @@ interface PartDimension {
|
|
|
1049
1066
|
/** Who measured it / which spec, so it can be re-checked. */
|
|
1050
1067
|
note?: string;
|
|
1051
1068
|
}
|
|
1069
|
+
/** Same provenance discipline as {@link PartDimension}, for angles. */
|
|
1070
|
+
interface PartAngle {
|
|
1071
|
+
deg: number;
|
|
1072
|
+
source: DimensionSource;
|
|
1073
|
+
note?: string;
|
|
1074
|
+
}
|
|
1052
1075
|
interface TrackPart {
|
|
1053
1076
|
/** Stable slug, e.g. "atlas-c55-n-7". */
|
|
1054
1077
|
id: string;
|
|
@@ -1066,8 +1089,20 @@ interface TrackPart {
|
|
|
1066
1089
|
};
|
|
1067
1090
|
/** Frog number N (the 1:N ratio). Definitional, so no provenance needed. */
|
|
1068
1091
|
frogNumber?: number;
|
|
1092
|
+
/** The angle the part ACTUALLY diverges at, where that's known to differ from
|
|
1093
|
+
* the theoretical `atan(1/N)`. Atlas appear to build to SECTIONAL angles
|
|
1094
|
+
* (multiples of 11.25° = 1/32 turn) rather than true frog ratios, so a "#5" is
|
|
1095
|
+
* 11.25° not 11.31°. ⚠️ Currently below our drawing resolution — 0.06° over a
|
|
1096
|
+
* 6″ turnout is 0.006″ — so nothing uses this yet. Recorded because it's a
|
|
1097
|
+
* real property of the product and will matter if we ever check whether a part
|
|
1098
|
+
* mates with sectional track. */
|
|
1099
|
+
actualAngle?: PartAngle;
|
|
1069
1100
|
/** Points → frog. The number that decides where a turnout's throat lands. */
|
|
1070
1101
|
lead?: PartDimension;
|
|
1102
|
+
/** End of the tie strip → the point tips. Where the working turnout starts
|
|
1103
|
+
* inside its moulding; the rest of that end is plain approach track. Needed to
|
|
1104
|
+
* fit a part into a space, and by any renderer drawing the real outline. */
|
|
1105
|
+
pointsOffset?: PartDimension;
|
|
1071
1106
|
/** End-to-end length of the part. */
|
|
1072
1107
|
overallLength?: PartDimension;
|
|
1073
1108
|
/** Diverging route radius (straight turnouts). */
|
|
@@ -1084,10 +1119,30 @@ declare const CODE55_RAIL_HEIGHT_INCHES = 0.055;
|
|
|
1084
1119
|
* Atlas N-scale Code 55 — the Free-moN mainstay.
|
|
1085
1120
|
*
|
|
1086
1121
|
* ⚠️ Atlas do not publish leads or overall lengths for the straight turnouts.
|
|
1087
|
-
*
|
|
1088
|
-
* #173)
|
|
1089
|
-
*
|
|
1090
|
-
*
|
|
1122
|
+
* Everything here traces to physical measurements: Steve Branton's #7 lead
|
|
1123
|
+
* (3⅜″ points→frog, #173) and Will Gage's #5/#7/#10 overall lengths plus the
|
|
1124
|
+
* #10's lead and points offset. The #5's lead and the wye's are still derived.
|
|
1125
|
+
*
|
|
1126
|
+
* NEITHER DIMENSION IS PROPORTIONAL TO FROG NUMBER. Both rules that assumed so
|
|
1127
|
+
* have now been tested and failed:
|
|
1128
|
+
* - **Lead does NOT scale with N.** Measured lead ÷ N: #7 = 0.482, #10 = 0.419.
|
|
1129
|
+
* {@link TURNOUT_LEAD_INCHES_PER_FROG} predicted 4.82″ for the #10 against a
|
|
1130
|
+
* measured 4³⁄₁₆″ — 13% over. See that constant for the constant-switch-angle
|
|
1131
|
+
* model that fits both measurements, and the test that would confirm it.
|
|
1132
|
+
* - ⭐ **Overall length is NOT A FUNCTION OF N AT ALL.** Measured: #5 = 6.00″,
|
|
1133
|
+
* **#7 = 6.00″**, #10 = 8.00″. The #5 and #7 are the SAME LENGTH — Atlas mould
|
|
1134
|
+
* them on a shared 6″ tie strip and vary only the frog angle and where the frog
|
|
1135
|
+
* sits. NEVER derive a length from a frog number; look the part up.
|
|
1136
|
+
*
|
|
1137
|
+
* This is what the frog-number definition actually says, and it's easy to forget:
|
|
1138
|
+
* #N fixes the DIVERGENCE RATE AT THE FROG (1 across per N along). It says
|
|
1139
|
+
* nothing about how much tie strip the manufacturer wraps around it. Angle is
|
|
1140
|
+
* geometry; length is packaging. Hence the lead — where the frog falls inside
|
|
1141
|
+
* that strip — is the only dimension worth chasing.
|
|
1142
|
+
*
|
|
1143
|
+
* (Lengths are whole inches and the #5 diverges at exactly 1/32 of a circle, so
|
|
1144
|
+
* Atlas do seem to work to round numbers — but a prediction that the #7 would
|
|
1145
|
+
* therefore be 7.00″ was tested and FAILED. Round, but not one inch per frog.)
|
|
1091
1146
|
*/
|
|
1092
1147
|
declare const ATLAS_CODE55_N: TrackPart[];
|
|
1093
1148
|
/** Every built-in part, across manufacturers. */
|
|
@@ -1343,4 +1398,4 @@ declare function poseOverridesFromDoc(doc: ModuleSchematicDoc): Record<string, {
|
|
|
1343
1398
|
heading: number;
|
|
1344
1399
|
}>;
|
|
1345
1400
|
|
|
1346
|
-
export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, fromSectionRelative, geometryTurnDegrees, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
|
|
1401
|
+
export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, fromSectionRelative, geometryTurnDegrees, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
|
package/dist/index.js
CHANGED
|
@@ -1104,7 +1104,17 @@ var ATLAS_CODE55_N = [
|
|
|
1104
1104
|
lead: {
|
|
1105
1105
|
inches: 5 * TURNOUT_LEAD_INCHES_PER_FROG,
|
|
1106
1106
|
source: "derived",
|
|
1107
|
-
note: "scaled from the measured #7 by frog number \u2014 not measured"
|
|
1107
|
+
note: "scaled from the measured #7 by frog number \u2014 not measured, BUT now corroborated: a photo read of Will's physical 2050 puts points\u2192frog at ~2.4\u2033, i.e. 0.48/frog against the #7's 0.482. Replace with a real measurement when someone puts a rule on it."
|
|
1108
|
+
},
|
|
1109
|
+
overallLength: {
|
|
1110
|
+
inches: 6,
|
|
1111
|
+
source: "measured",
|
|
1112
|
+
note: "Will Gage, physical Atlas 2050 (#5 LH), end tie to end tie"
|
|
1113
|
+
},
|
|
1114
|
+
actualAngle: {
|
|
1115
|
+
deg: 11.25,
|
|
1116
|
+
source: "unverified",
|
|
1117
|
+
note: "CORROBORATED: XTrkCAD N-atlasn55.xtp gives 11.250152\xB0, and AnyRail-forum trial-and-error (glakedylan, 2012) gives 11.25\xB0. Theory atan(1/5) = 11.310\xB0. 11.25\xB0 is exactly 1/32 turn \u2014 Atlas appear to build to sectional angles."
|
|
1108
1118
|
}
|
|
1109
1119
|
},
|
|
1110
1120
|
{
|
|
@@ -1120,6 +1130,16 @@ var ATLAS_CODE55_N = [
|
|
|
1120
1130
|
inches: 3.375,
|
|
1121
1131
|
source: "measured",
|
|
1122
1132
|
note: "Steve Branton, physical Atlas code 55 #7, 3\u215C\u2033 points\u2192frog (#173)"
|
|
1133
|
+
},
|
|
1134
|
+
overallLength: {
|
|
1135
|
+
inches: 6,
|
|
1136
|
+
source: "measured",
|
|
1137
|
+
note: "Will Gage, physical Atlas 2052 (#7), end tie to end tie \u2014 the SAME 6\u2033 as the #5, which is what proves length is not a function of frog number"
|
|
1138
|
+
},
|
|
1139
|
+
actualAngle: {
|
|
1140
|
+
deg: 8.13,
|
|
1141
|
+
source: "unverified",
|
|
1142
|
+
note: "DISPUTED: XTrkCAD .xtp says 8.1818\xB0, AnyRail forum says 8.125\xB0, theory atan(1/7) = 8.130\xB0. The sources disagree, so theory is used here."
|
|
1123
1143
|
}
|
|
1124
1144
|
},
|
|
1125
1145
|
{
|
|
@@ -1132,9 +1152,24 @@ var ATLAS_CODE55_N = [
|
|
|
1132
1152
|
partNumbers: { left: "2054", right: "2055" },
|
|
1133
1153
|
frogNumber: 10,
|
|
1134
1154
|
lead: {
|
|
1135
|
-
inches:
|
|
1136
|
-
source: "
|
|
1137
|
-
note: "
|
|
1155
|
+
inches: 4.1875,
|
|
1156
|
+
source: "measured",
|
|
1157
|
+
note: "Will Gage, physical Atlas 2054 (#10): points at 9/16\u2033 from the end, frog at 4.75\u2033 \u21D2 4\xB3\u2044\u2081\u2086\u2033. THIS IS THE MEASUREMENT THAT REFUTED the lead-per-frog rule \u2014 it predicted 4.82\u2033, 13% over."
|
|
1158
|
+
},
|
|
1159
|
+
pointsOffset: {
|
|
1160
|
+
inches: 0.5625,
|
|
1161
|
+
source: "measured",
|
|
1162
|
+
note: "Will Gage, physical Atlas 2054 (#10) \u2014 end of tie strip to point tips"
|
|
1163
|
+
},
|
|
1164
|
+
overallLength: {
|
|
1165
|
+
inches: 8,
|
|
1166
|
+
source: "measured",
|
|
1167
|
+
note: "Will Gage, physical Atlas 2054 (#10), end tie to end tie"
|
|
1168
|
+
},
|
|
1169
|
+
actualAngle: {
|
|
1170
|
+
deg: 5.74,
|
|
1171
|
+
source: "unverified",
|
|
1172
|
+
note: "CORROBORATED: XTrkCAD .xtp gives 5.739\xB0, AnyRail forum 5.75\xB0 \u2014 they agree with each other and not with theory atan(1/10) = 5.711\xB0."
|
|
1138
1173
|
}
|
|
1139
1174
|
},
|
|
1140
1175
|
{
|