diff options
Diffstat (limited to 'diagrams/chassis-dimensional-requirements.typ')
| -rw-r--r-- | diagrams/chassis-dimensional-requirements.typ | 477 |
1 files changed, 477 insertions, 0 deletions
diff --git a/diagrams/chassis-dimensional-requirements.typ b/diagrams/chassis-dimensional-requirements.typ new file mode 100644 index 0000000..9168a7d --- /dev/null +++ b/diagrams/chassis-dimensional-requirements.typ @@ -0,0 +1,477 @@ +#import "../lib/unify.typ": qty +#import "@preview/cetz:0.5.2" + +#figure( + cetz.canvas({ + import cetz.draw: * + + // Scale factor: 1 mm = 0.04 drawing units + let s = 0.04 + + // ========================================================================= + // VIEW A: SIDE ELEVATION CUTAWAY (Chassis & Module Clearance) + // ========================================================================= + let x-side-start = -3.8 + let y-side-bot = 0 + let h-panel = 177.8 * s // 4.2672 + let h-body = 165.1 * s // 3.9624 + let h-lip = 6.35 * s // 0.1524 + let d-body = 152.4 * s // 3.6576 + let d-cable = 28.0 * s // 0.672 (>= 25 mm cable bend zone) + + let y-side-top = y-side-bot + h-panel + let y-body-bot = y-side-bot + h-lip + let y-body-top = y-side-top - h-lip + let x-panel-front = x-side-start + let x-body-start = x-panel-front + 3.0 * s + let x-body-rear = x-body-start + d-body + let x-chassis-rear = x-body-rear + d-cable + + // View Title + content((x-body-start + (d-body + d-cable) / 2, y-side-top + 1.5), text( + size: 8.5pt, + weight: "bold", + )[VIEW A: SIDE ELEVATION CUTAWAY]) + content((x-body-start + (d-body + d-cable) / 2, y-side-top + 1.15), text( + size: 7pt, + fill: luma(90), + )[(Chassis enclosure & module interface clearance)]) + + // Chassis Steel Structure Outline (1.5 mm / 2.0 mm outer shell) + rect( + (x-body-start - 2.0 * s, y-side-bot - 2.0 * s), + (x-chassis-rear + 2.0 * s, y-side-top + 2.0 * s), + fill: luma(250), + stroke: 1.2pt + black, + ) + + // Cassette Guide Rails (Top and Bottom Channels) + rect( + (x-body-start, y-side-top - 8.0 * s), + (x-body-rear, y-side-top), + fill: luma(210), + stroke: 0.8pt + black, + ) + rect( + (x-body-start, y-side-bot), + (x-body-rear, y-side-bot + 8.0 * s), + fill: luma(210), + stroke: 0.8pt + black, + ) + + // Installed Cassette Outer Body (White fill inside chassis) + rect( + (x-body-start, y-body-bot), + (x-body-rear, y-body-top), + fill: white, + stroke: 1pt + black, + ) + + // Front Panel Attached to Cassette Lip + rect( + (x-panel-front, y-side-bot), + (x-body-start, y-side-top), + fill: luma(225), + stroke: 1.2pt + black, + ) + + // DB-25 Backplane Connector (Mating Pair at Rear of Cassette) + let db-h = 50.0 * s + rect( + (x-body-rear - 2.0 * s, y-side-bot + (h-panel - db-h) / 2), + (x-body-rear + 8.0 * s, y-side-bot + (h-panel + db-h) / 2), + fill: luma(180), + stroke: 0.9pt + black, + ) + + // Cable Bend & Wiring Harness Zone (Dashed hatched path behind backplane) + line( + (x-body-rear + 8.0 * s, y-side-bot + h-panel / 2), + (x-chassis-rear - 4.0 * s, y-side-bot + h-panel / 2), + (x-chassis-rear - 4.0 * s, y-side-bot + 15.0 * s), + stroke: (paint: luma(120), thickness: 0.8pt, dash: "dashed"), + ) + + // Dimensions for View A + // Total Panel Height (177.8 mm / 4U) + line( + (x-panel-front, y-side-bot), + (x-panel-front - 0.5, y-side-bot), + stroke: 0.4pt + luma(140), + ) + line( + (x-panel-front, y-side-top), + (x-panel-front - 0.5, y-side-top), + stroke: 0.4pt + luma(140), + ) + line( + (x-panel-front - 0.45, y-side-bot), + (x-panel-front - 0.45, y-side-top), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content( + (x-panel-front - 0.75, (y-side-bot + y-side-top) / 2), + text(size: 6.5pt, weight: "bold")[$qty(177.8, "mm")$ ($qty(4, "U")$)], + angle: 90deg, + ) + + // Lip Height (6.35 mm) + line( + (x-body-start, y-side-top), + (x-body-start + 0.4, y-side-top), + stroke: 0.4pt + luma(140), + ) + line( + (x-body-start, y-body-top), + (x-body-start + 0.4, y-body-top), + stroke: 0.4pt + luma(140), + ) + line( + (x-body-start + 0.35, y-body-top), + (x-body-start + 0.35, y-side-top), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.06, + stroke: 0.6pt + black, + ) + content((x-body-start + 0.65, (y-body-top + y-side-top) / 2), text( + size: 5.5pt, + )[$qty(6.35, "mm")$]) + + // Body Height (165.1 mm) + line( + (x-body-start + 0.8, y-body-bot), + (x-body-start + 0.8, y-body-top), + stroke: (paint: luma(140), thickness: 0.4pt, dash: "dashed"), + ) + line( + (x-body-start + 0.8, y-body-bot), + (x-body-start + 0.8, y-body-top), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content( + (x-body-start + 1.1, (y-body-bot + y-body-top) / 2), + text(size: 6.5pt)[$qty(165.1, "mm")$ body], + angle: -90deg, + ) + + // Cassette Depth (152.4 mm) + line( + (x-body-start, y-side-top + 2.0 * s), + (x-body-start, y-side-top + 0.5), + stroke: 0.4pt + luma(140), + ) + line( + (x-body-rear, y-side-top + 2.0 * s), + (x-body-rear, y-side-top + 0.5), + stroke: 0.4pt + luma(140), + ) + line( + (x-body-start, y-side-top + 0.45), + (x-body-rear, y-side-top + 0.45), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content(((x-body-start + x-body-rear) / 2, y-side-top + 0.65), text( + size: 6.5pt, + )[$qty(152.4, "mm")$]) + + // Cable Zone Depth (>= 25.0 mm) + line( + (x-chassis-rear, y-side-top + 2.0 * s), + (x-chassis-rear, y-side-top + 0.5), + stroke: 0.4pt + luma(140), + ) + line( + (x-body-rear, y-side-top + 0.45), + (x-chassis-rear, y-side-top + 0.45), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content(((x-body-rear + x-chassis-rear) / 2, y-side-top + 0.65), text( + size: 6pt, + )[$gt.eq qty(25.0, "mm")$]) + + // Callout Annotations for View A + line( + (x-body-rear + 3.0 * s, y-side-bot + h-panel / 2), + (x-body-rear + 1.2, y-side-bot + h-panel / 2 + 0.6), + stroke: 0.5pt + black, + ) + content( + (x-body-rear + 1.25, y-side-bot + h-panel / 2 + 0.6), + text(size: 6pt)[DB-25 backplane \ + (grounded via shell & pin 25)], + anchor: "south-west", + ) + + line( + (x-chassis-rear - 2.0 * s, y-side-bot + 20.0 * s), + (x-chassis-rear + 0.5, y-side-bot - 0.3), + stroke: 0.5pt + black, + ) + content( + (x-chassis-rear + 0.55, y-side-bot - 0.3), + text(size: 6pt)[Cable bend & wiring zone], + anchor: "west", + ) + + // ========================================================================= + // VIEW B: FRONT ELEVATION (Module Pitch Alignment) + // ========================================================================= + let x-front-view = 7.2 + let w-module = 38.0 * s // 0.912 + let pitch-module = 38.1 * s // 0.9144 + + // View Title + content((x-front-view + 1.5 * pitch-module, y-side-top + 1.5), text( + size: 8.5pt, + weight: "bold", + )[VIEW B: FRONT ELEVATION]) + content((x-front-view + 1.5 * pitch-module, y-side-top + 1.15), text( + size: 7pt, + fill: luma(90), + )[(Module pitch & slot interface alignment)]) + + // Chassis Front Frame + rect( + (x-front-view - 0.2, y-side-bot - 2.0 * s), + (x-front-view + 3 * pitch-module + 0.2, y-side-top + 2.0 * s), + fill: luma(240), + stroke: 1.2pt + black, + ) + + // Module Slot 1 (Module 1 Installed) + let m1-x = x-front-view + rect( + (m1-x, y-side-bot), + (m1-x + w-module, y-side-top), + fill: luma(250), + stroke: 1pt + black, + ) + circle( + (m1-x + w-module / 2, y-side-bot + h-lip / 2), + radius: 1.2 * s, + fill: white, + stroke: 0.6pt + black, + ) + circle( + (m1-x + w-module / 2, y-side-top - h-lip / 2), + radius: 1.2 * s, + fill: white, + stroke: 0.6pt + black, + ) + content((m1-x + w-module / 2, y-side-bot + h-panel / 2), text( + size: 6.5pt, + weight: "bold", + )[Module 1]) + + // Module Slot 2 (Module 2 Installed) + let m2-x = x-front-view + pitch-module + rect( + (m2-x, y-side-bot), + (m2-x + w-module, y-side-top), + fill: luma(250), + stroke: 1pt + black, + ) + circle( + (m2-x + w-module / 2, y-side-bot + h-lip / 2), + radius: 1.2 * s, + fill: white, + stroke: 0.6pt + black, + ) + circle( + (m2-x + w-module / 2, y-side-top - h-lip / 2), + radius: 1.2 * s, + fill: white, + stroke: 0.6pt + black, + ) + content((m2-x + w-module / 2, y-side-bot + h-panel / 2), text( + size: 6.5pt, + weight: "bold", + )[Module 2]) + + // Module Slot 3 (Empty Slot showing chassis guide rails) + let m3-x = x-front-view + 2 * pitch-module + rect( + (m3-x, y-side-bot), + (m3-x + w-module, y-side-top), + fill: white, + stroke: 0.8pt + black, + ) + rect( + (m3-x, y-side-top - h-lip), + (m3-x + w-module, y-side-top), + fill: luma(210), + stroke: 0.5pt + black, + ) + rect( + (m3-x, y-side-bot), + (m3-x + w-module, y-side-bot + h-lip), + fill: luma(210), + stroke: 0.5pt + black, + ) + content((m3-x + w-module / 2, y-side-bot + h-panel / 2), text( + size: 6pt, + fill: luma(100), + )[Empty slot \ (rails visible)]) + + // Centerlines for Module Center Pitch + line( + (m1-x + w-module / 2, y-side-bot - 0.4), + (m1-x + w-module / 2, y-side-top + 0.4), + stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"), + ) + line( + (m2-x + w-module / 2, y-side-bot - 0.4), + (m2-x + w-module / 2, y-side-top + 0.4), + stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"), + ) + line( + (m3-x + w-module / 2, y-side-bot - 0.4), + (m3-x + w-module / 2, y-side-top + 0.4), + stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"), + ) + + // Dimension: Module Pitch (38.1 mm / 1.5") + line( + (m1-x + w-module / 2, y-side-top + 0.35), + (m2-x + w-module / 2, y-side-top + 0.35), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content(((m1-x + m2-x + w-module) / 2, y-side-top + 0.55), text( + size: 6.5pt, + )[$qty(38.1, "mm")$ ($qty(1.5, "inch")$) pitch]) + + // ========================================================================= + // VIEW C: CASSETTE RAIL GEOMETRY & RETENTION (ENLARGED DETAIL) + // ========================================================================= + let x-rail-center = 4.8 + let y-rail-center = -3.6 + let rail-w = 38.1 * 0.08 // Magnified channel width (38.1 mm) + let rail-h = 6.35 * 0.08 // Magnified rail height (6.35 mm) + let lip-t = 1.2 * 0.08 // Sheet metal thickness (1.2 mm) + + let rx1 = x-rail-center - rail-w / 2 + let rx2 = x-rail-center + rail-w / 2 + let ry1 = y-rail-center - rail-h / 2 + let ry2 = y-rail-center + rail-h / 2 + + // View Title + content((x-rail-center, y-rail-center + 2.2), text( + size: 8.5pt, + weight: "bold", + )[VIEW C: CASSETTE RAIL GEOMETRY & RETENTION]) + content((x-rail-center, y-rail-center + 1.85), text( + size: 7pt, + fill: luma(90), + )[(Cross-section of guide rail channel - scale enlarged)]) + + // Main Chassis Guide Channel (U-shaped metal guide track) + line( + (rx1 - 0.4, ry2 + 0.4), + (rx1 - 0.4, ry1 - lip-t), + (rx2 + 0.4, ry1 - lip-t), + (rx2 + 0.4, ry2 + 0.4), + stroke: 1.2pt + black, + ) + line( + (rx1, ry2 + 0.4), + (rx1, ry1), + (rx2, ry1), + (rx2, ry2 + 0.4), + stroke: 1.2pt + black, + ) + + // Inserted Cassette Front Panel Lip (Mating into Channel) + rect( + (rx1 + 0.05, ry1 + 0.05), + (rx2 - 0.05, ry2), + fill: luma(230), + stroke: 0.8pt + black, + ) + + // Optional Spring Clip / Retention Latch (Contact spring on left side) + line( + (rx1 - 0.3, ry1 + 0.2), + (rx1 - 0.05, ry1 + 0.25), + (rx1 + 0.2, ry1 + 0.2), + stroke: 0.8pt + black, + ) + circle((rx1 - 0.3, ry1 + 0.2), radius: 0.04, fill: black) + + // Centerline + line( + (x-rail-center, ry1 - 0.6), + (x-rail-center, ry2 + 0.6), + stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"), + ) + + // Dimension: Channel Width (38.1 mm +0.2/-0.0 mm) + line((rx1, ry2 + 0.1), (rx1, ry2 + 0.7), stroke: 0.4pt + luma(140)) + line((rx2, ry2 + 0.1), (rx2, ry2 + 0.7), stroke: 0.4pt + luma(140)) + line( + (rx1, ry2 + 0.6), + (rx2, ry2 + 0.6), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content((x-rail-center, ry2 + 0.85), text( + size: 7pt, + )[Channel width: $qty(38.1, "mm") +0.2/(-0.0)$]) + + // Dimension: Rail Height (6.35 mm / 0.25") + line((rx2 + 0.1, ry1), (rx2 + 0.7, ry1), stroke: 0.4pt + luma(140)) + line((rx2 + 0.1, ry2), (rx2 + 0.7, ry2), stroke: 0.4pt + luma(140)) + line( + (rx2 + 0.6, ry1), + (rx2 + 0.6, ry2), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.6pt + black, + ) + content( + (rx2 + 0.8, (ry1 + ry2) / 2), + text( + size: 6.5pt, + )[$qty(6.35, "mm")$ ($qty(0.25, "inch")$) rail height], + anchor: "west", + ) + + // Callout Annotations for View C + line( + (rx1 - 0.15, ry1 + 0.2), + (rx1 - 1.2, ry1 - 0.4), + stroke: 0.5pt + black, + ) + content( + (rx1 - 1.25, ry1 - 0.4), + text( + size: 6pt, + )[Optional positive retention \ (spring clip / latch mechanism)], + anchor: "east", + ) + + line( + (rx2 - 0.3, ry1 + 0.1), + (rx2 + 1.2, ry1 - 0.4), + stroke: 0.5pt + black, + ) + content( + (rx2 + 1.25, ry1 - 0.4), + text( + size: 6pt, + )[Metal-to-metal grounding contact \ (cassette lip insertion clearance)], + anchor: "west", + ) + }), + caption: [Chassis dimensional requirements and module loading interface specifications detailing Side Elevation Cutaway (View A), Front Elevation Module Pitch Alignment (View B), and enlarged Cassette Rail Geometry & Retention Cross-Section (View C).], +) <figure-chassis-dimensional-requirements-diagram> |
