aboutsummaryrefslogtreecommitdiff
path: root/mechanical-specifications.typ
diff options
context:
space:
mode:
authorDenis Chevalier <perso@denischevalier.fr>2026-08-10 20:00:04 +0200
committerDenis Chevalier <perso@denischevalier.fr>2026-08-10 20:00:04 +0200
commit32d3f3d945002c1413490449aa08522c78f4dcad (patch)
tree79d588ee7f63b422818b3b98932261ba7df724ef /mechanical-specifications.typ
parentee50cee9cc2d155ea6530da2c038d72b334ca8a4 (diff)
downloadsame-32d3f3d945002c1413490449aa08522c78f4dcad.tar.gz
same-32d3f3d945002c1413490449aa08522c78f4dcad.tar.bz2
same-32d3f3d945002c1413490449aa08522c78f4dcad.zip
replace chassis module loading svg
Diffstat (limited to 'mechanical-specifications.typ')
-rw-r--r--mechanical-specifications.typ496
1 files changed, 483 insertions, 13 deletions
diff --git a/mechanical-specifications.typ b/mechanical-specifications.typ
index ddc3254..de765f6 100644
--- a/mechanical-specifications.typ
+++ b/mechanical-specifications.typ
@@ -29,7 +29,7 @@ especially in terms of magnetic shielding.
table.header([Parameter], [Value]),
[Material], [DC01 cold-rolled steel (EN 10130)],
[Thickness], [$qty(1.2, "mm")$],
- [Finish], [Matte black powder coard (RAL 9005), all surfaces.],
+ [Finish], [Matte black powder coard (RAL 9005), all surfaces],
),
caption: [Cassette construction parameters],
) <table-cassette-construction-parameters>
@@ -252,7 +252,7 @@ especially in terms of magnetic shielding.
text(size: 7.0pt)[$qty(6.35, "mm")$],
)
}),
- caption: [Cassette enclosure orthographic projections (front and side elevation) detailing external physical dimensions and lip offsets.],
+ caption: [Cassette enclosure orthographic projections (front and side elevation) detailing external physical dimensions and lip offsets],
) <figure-cassette-external-dimensions-diagram>
#figure(
@@ -268,12 +268,12 @@ especially in terms of magnetic shielding.
[$qty(38.1, "mm")$ ($qty(1.5, "inch")$)],
[N/A],
[Theoretical center to center spacing. Two columns of banana jacks
- ($qty(0.75, "inch")$ grid).],
+ ($qty(0.75, "inch")$ grid)],
[Panel Width],
[$qty(38.0, "mm")$ ($qty(1.5, "inch")$)],
[$+0.0 "/" -0.1 "mm"$],
- [Undersized to accomodate paint thickness and thermal expansion.],
+ [Undersized to accomodate paint thickness and thermal expansion],
[Body height], [$qty(165.1, "mm")$, ($qty(6.5, "inch")$)], [$plus.minus qty(0.1, "mm")$], [Fits between rails],
@@ -713,7 +713,7 @@ interlocking U-shaped steel channel:
anchor: "south-west",
)
}),
- caption: [Cassette L-Channel structural spine technical drawings showing orthographic projections (left and rear elevations) and 3D isometric sheet metal form.],
+ caption: [Cassette L-Channel structural spine technical drawings showing orthographic projections (left and rear elevations) and 3D isometric sheet metal form],
) <figure-cassette-lchannel-diagram>
/ Role: Structural spine. Holds the PCB and Front Panel.
@@ -935,7 +935,7 @@ interlocking U-shaped steel channel:
angle: 90deg,
)
}),
- caption: [Cassette U-Channel cover technical drawings showing Front Elevation (profile) and Right Elevation (inner face showing masked unpainted EMI perimeter and countersunk hole grid).],
+ caption: [Cassette U-Channel cover technical drawings showing Front Elevation (profile) and Right Elevation (inner face showing masked unpainted EMI perimeter and countersunk hole grid)],
) <figure-cassette-uchannel-diagram>
/ Role: EMI Shielding and Protection.
@@ -1196,7 +1196,7 @@ interlocking U-shaped steel channel:
anchor: "west",
)
}),
- caption: [Cassette Front Panel technical drawings showing Front Elevation (with countersunk L-channel attachment holes and lip mounting holes) and Rear Elevation (inner face detailing masked unpainted EMI contact areas).],
+ caption: [Cassette Front Panel technical drawings showing Front Elevation (with countersunk L-channel attachment holes and lip mounting holes) and Rear Elevation (inner face detailing masked unpainted EMI contact areas)],
) <figure-cassette-front-panel-diagram>
/ Geometry: $qty(177.8, "mm") times qty(38.0, "mm")$, body section
$qty(165.1, "mm")$
@@ -1613,7 +1613,7 @@ maintaining EMI shielding.
anchor: "east",
)
}),
- caption: [Cassette ventilation system details detailing full $5 times 12$ slot top elevation array, magnified single slot geometry with $R = qty(1.25, "mm")$ corner radius, and cross-sectional natural convective cooling / RF electromagnetic shielding concept.],
+ caption: [Cassette ventilation system details detailing full $5 times 12$ slot top elevation array, magnified single slot geometry with $R = qty(1.25, "mm")$ corner radius, and cross-sectional natural convective cooling / RF electromagnetic shielding concept],
) <figure-cassette-ventilation-diagram>
#figure(
@@ -1927,7 +1927,7 @@ maintaining EMI shielding.
anchor: "west",
)
}),
- caption: [Cassette DB-25 connector cutout technical drawing showing rear panel placement coordinates and magnified CAD geometry dimensions.],
+ caption: [Cassette DB-25 connector cutout technical drawing showing rear panel placement coordinates and magnified CAD geometry dimensions],
) <figure-cassette-db-25-connector-cutout-diagram>
#figure(
@@ -2796,7 +2796,7 @@ grid for compatibility with standard banana jack spacing and shorting bars.
anchor: "west",
)
}),
- caption: [Panels grid specification technical drawing showing full $2 times 8$ grid matrix coordinates (origin X = $qty(9.525, "mm")$, origin Y = $qty(22.225, "mm")$, pitch = $qty(19.05, "mm")$) and component placement rules.],
+ caption: [Panels grid specification technical drawing showing full $2 times 8$ grid matrix coordinates (origin X = $qty(9.525, "mm")$, origin Y = $qty(22.225, "mm")$, pitch = $qty(19.05, "mm")$) and component placement rules],
) <figure-panels-grid-diagram>
===== Origin <panels-grid-origin>
@@ -2957,9 +2957,479 @@ $qty(19, "inch")$ $qty(4, "U")$ rack-mount chassis with $8$ module positions.
=== Dimensional requirements <chassis-dimensional-requirements>
#figure(
- image("pictures/chassis-module-loading.svg"),
- caption: [Chassis module loading dimensional requirements],
-) <figure-chassis-dimensional-requirements>
+ 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>
==== Module interface dimensions <chassis-module-interface-dimensions>