diff options
| -rw-r--r-- | mechanical-specifications.typ | 341 | ||||
| -rw-r--r-- | pictures/grid.svg | 1177 |
2 files changed, 338 insertions, 1180 deletions
diff --git a/mechanical-specifications.typ b/mechanical-specifications.typ index 2a433f9..ddc3254 100644 --- a/mechanical-specifications.typ +++ b/mechanical-specifications.typ @@ -2460,9 +2460,344 @@ All panel-mounted components follow a $qty(0.75, "inch")$ ($qty(19.05, "mm")$) grid for compatibility with standard banana jack spacing and shorting bars. #figure( - image("pictures/grid.svg"), - caption: [Grid], -) <figure-grid> + cetz.canvas({ + import cetz.draw: * + + // Scale factor: 1 mm = 0.06 drawing units + let s = 0.06 + + let panel-w = 38.0 * s // 1.824 units + let panel-h = 177.8 * s // 8.5344 units + let lip-h = 6.35 * s // Lip height top/bottom + + // Grid Origin & Pitch + let orig-x = 9.525 * s // Column 1 (A) + let col2-x = 28.575 * s // Column 2 (B) + let col-pitch = 19.05 * s // 0.75 inch pitch + + let orig-y-top = 22.225 * s // Row 1 Y offset from top + let row-pitch = 19.05 * s // 0.75 inch pitch + + let y-panel-top = panel-h + let y-panel-bot = 0 + + // Row Y-coordinates from bottom Y=0 + let row-y = ( + y-panel-top - orig-y-top - 0 * row-pitch, // Row 1 + y-panel-top - orig-y-top - 1 * row-pitch, // Row 2 + y-panel-top - orig-y-top - 2 * row-pitch, // Row 3 + y-panel-top - orig-y-top - 3 * row-pitch, // Row 4 + y-panel-top - orig-y-top - 4 * row-pitch, // Row 5 + y-panel-top - orig-y-top - 5 * row-pitch, // Row 6 + y-panel-top - orig-y-top - 6 * row-pitch, // Row 7 + y-panel-top - orig-y-top - 7 * row-pitch, // Row 8 + ) + + // ========================================== + // 1. FULL PANEL GRID MATRIX (A1 to B8) + // ========================================== + let x-grid-start = 0 + + // View Title + content((x-grid-start + panel-w / 2, y-panel-top + 1.5), text( + size: 8.5pt, + weight: "bold", + )[1. 2 $times$ 8 GRID MATRIX LAYOUT]) + content((x-grid-start + panel-w / 2, y-panel-top + 1.15), text( + size: 7pt, + fill: luma(90), + )[($38.0 upright("mm") times 177.8 upright("mm")$ Panel)]) + + // Panel Outer Boundary + rect( + (x-grid-start, y-panel-bot), + (x-grid-start + panel-w, y-panel-top), + fill: luma(250), + stroke: 1.2pt + black, + ) + + // Top/Bottom Lip Boundaries + line( + (x-grid-start, y-panel-top - lip-h), + (x-grid-start + panel-w, y-panel-top - lip-h), + stroke: (paint: luma(140), thickness: 0.5pt, dash: "dashed"), + ) + line( + (x-grid-start, y-panel-bot + lip-h), + (x-grid-start + panel-w, y-panel-bot + lip-h), + stroke: (paint: luma(140), thickness: 0.5pt, dash: "dashed"), + ) + + // Grid Column Lines (A & B) + line( + (x-grid-start + orig-x, y-panel-bot + lip-h), + (x-grid-start + orig-x, y-panel-top - lip-h), + stroke: (paint: luma(130), thickness: 0.5pt, dash: "dash-dotted"), + ) + line( + (x-grid-start + col2-x, y-panel-bot + lip-h), + (x-grid-start + col2-x, y-panel-top - lip-h), + stroke: (paint: luma(130), thickness: 0.5pt, dash: "dash-dotted"), + ) + + // Grid Row Lines (1 to 8) + for ry in row-y { + line( + (x-grid-start, ry), + (x-grid-start + panel-w, ry), + stroke: (paint: luma(130), thickness: 0.5pt, dash: "dash-dotted"), + ) + } + + // Grid Node Markers & Labels (A1..A8, B1..B8) + let col-names = ("A", "B") + let col-xs = (x-grid-start + orig-x, x-grid-start + col2-x) + + for (c-idx, cx) in col-xs.enumerate() { + let c-letter = col-names.at(c-idx) + for (r-idx, ry) in row-y.enumerate() { + let node-name = c-letter + str(r-idx + 1) + circle((cx, ry), radius: 0.08, fill: white, stroke: 0.8pt + black) + content((cx, ry + 0.18), text(size: 5pt, weight: "bold")[#node-name]) + } + } + + // Dimension: Origin X (9.525 mm) + line( + (x-grid-start, y-panel-top), + (x-grid-start, y-panel-top + 0.4), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start + orig-x, y-panel-top), + (x-grid-start + orig-x, y-panel-top + 0.4), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start, y-panel-top + 0.35), + (x-grid-start + orig-x, y-panel-top + 0.35), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.5pt + black, + ) + content((x-grid-start + orig-x / 2, y-panel-top + 0.15), text( + size: 6.5pt, + )[$qty(9.525, "mm")$]) + + // Dimension: Column Pitch (19.05 mm) + line( + (x-grid-start + col2-x, y-panel-top), + (x-grid-start + col2-x, y-panel-top + 0.4), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start + orig-x, y-panel-top + 0.35), + (x-grid-start + col2-x, y-panel-top + 0.35), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.5pt + black, + ) + content((x-grid-start + (orig-x + col2-x) / 2, y-panel-top + 0.55), text( + size: 6.5pt, + )[$qty(19.05, "mm")$ Pitch]) + + // Dimension: Origin Y (22.225 mm from top) + let row1-y = row-y.at(0) + line( + (x-grid-start, y-panel-top), + (x-grid-start - 0.5, y-panel-top), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start, row1-y), + (x-grid-start - 0.5, row1-y), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start - 0.45, y-panel-top), + (x-grid-start - 0.45, row1-y), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.5pt + black, + ) + content( + (x-grid-start - 0.75, (y-panel-top + row1-y) / 2), + text(size: 6.5pt)[Origin Y: $qty(22.225, "mm")$], + angle: 90deg, + ) + + // Dimension: Row Pitch (19.05 mm) + let row2-y = row-y.at(1) + line( + (x-grid-start, row2-y), + (x-grid-start - 0.5, row2-y), + stroke: 0.4pt + luma(140), + ) + line( + (x-grid-start - 0.45, row1-y), + (x-grid-start - 0.45, row2-y), + mark: (start: "stealth", end: "stealth"), + mark-size: 0.08, + stroke: 0.5pt + black, + ) + content( + (x-grid-start - 0.25, (row1-y + row2-y) / 2), + text(size: 6.5pt)[Row pitch: $qty(19.05, "mm")$], + angle: 90deg, + ) + + // ========================================== + // 2. COMPONENT PLACEMENT EXAMPLES (MAGNIFIED ROWS 1–3) + // ========================================== + let x-ex-start = 5.8 + let ex-scale = 1.35 // Magnification factor for detail view + let ex-w = panel-w * ex-scale + let ex-h = (orig-y-top + 2.5 * row-pitch) * ex-scale + + let y-ex-top = y-panel-top + let y-ex-bot = y-ex-top - ex-h + + // View Title + content((x-ex-start + ex-w / 2, y-panel-top + 1.5), text( + size: 8.5pt, + weight: "bold", + )[2. COMPONENT PLACEMENT EXAMPLES]) + content((x-ex-start + ex-w / 2, y-panel-top + 1.15), text( + size: 7pt, + fill: luma(90), + )[(Magnified Detail: Rows 1 to 3)]) + + // Magnified Panel Outline + rect( + (x-ex-start, y-ex-bot), + (x-ex-start + ex-w, y-ex-top), + fill: luma(248), + stroke: 1.2pt + black, + ) + + // Magnified Grid Lines + let ex-colA-x = x-ex-start + orig-x * ex-scale + let ex-colB-x = x-ex-start + col2-x * ex-scale + let ex-row1-y = y-ex-top - orig-y-top * ex-scale + let ex-row2-y = ex-row1-y - row-pitch * ex-scale + let ex-row3-y = ex-row2-y - row-pitch * ex-scale + + let ex-rows = (ex-row1-y, ex-row2-y, ex-row3-y) + + line((ex-colA-x, y-ex-bot), (ex-colA-x, y-ex-top), stroke: ( + paint: luma(140), + thickness: 0.4pt, + dash: "dash-dotted", + )) + line((ex-colB-x, y-ex-bot), (ex-colB-x, y-ex-top), stroke: ( + paint: luma(140), + thickness: 0.4pt, + dash: "dash-dotted", + )) + for ery in ex-rows { + line((x-ex-start, ery), (x-ex-start + ex-w, ery), stroke: ( + paint: luma(140), + thickness: 0.4pt, + dash: "dash-dotted", + )) + } + + // Placement Example 1: 4 mm Banana Jack Hole on A1 (\diameter 8.0 mm) + let r-banana = (8.0 / 2) * s * ex-scale + circle( + (ex-colA-x, ex-row1-y), + radius: r-banana, + fill: white, + stroke: 1pt + black, + ) + circle((ex-colA-x, ex-row1-y), radius: 0.05, fill: black) + + // Placement Example 2: Potentiometer Shaft Hole on B1 (\diameter 7.0 mm) + let r-pot = (7.0 / 2) * s * ex-scale + circle( + (ex-colB-x, ex-row1-y), + radius: r-pot, + fill: white, + stroke: 1pt + black, + ) + circle((ex-colB-x, ex-row1-y), radius: 0.05, fill: black) + + // Placement Example 3: Off-Grid 3 mm LED Hole between A1 and A2 (\diameter 3.2 mm) + let ex-led-y = (ex-row1-y + ex-row2-y) / 2 + let r-led = (3.2 / 2) * s * ex-scale + circle( + (ex-colA-x, ex-led-y), + radius: r-led, + fill: luma(220), + stroke: 0.9pt + black, + ) + circle((ex-colA-x, ex-led-y), radius: 0.04, fill: black) + + // Placement Example 4: Toggle Switch Hole on B2 (\diameter 6.0 mm) + let r-sw = (6.0 / 2) * s * ex-scale + circle( + (ex-colB-x, ex-row2-y), + radius: r-sw, + fill: white, + stroke: 1pt + black, + ) + + // Callout Annotations for Placement Examples + line( + (ex-colA-x, ex-row1-y), + (ex-colA-x - 0.85, ex-row1-y), + stroke: 0.5pt + black, + ) + content( + (ex-colA-x - 0.95, ex-row1-y + r-banana + 0.35), + angle: 90deg, + text( + size: 6pt, + )[A1: $4 upright("mm")$ Banana Jack ($diameter 8.0 upright("mm")$)], + anchor: "east", + ) + + line( + (ex-colB-x, ex-row1-y), + (ex-colB-x + 0.85, ex-row1-y), + stroke: 0.5pt + black, + ) + content( + (ex-colB-x + 0.95, ex-row1-y), + text( + size: 6pt, + )[B1: Pot shaft ($diameter 7.0 upright("mm")$)], + anchor: "west", + ) + + line( + (ex-colA-x + r-led, ex-led-y), + (x-ex-start + ex-w + 0.3, ex-led-y), + stroke: 0.5pt + black, + ) + content( + (x-ex-start + ex-w + 0.35, ex-led-y), + text( + size: 6pt, + )[Off-grid LED ($diameter 3.2 upright("mm")$)], + anchor: "west", + ) + + line( + (ex-colB-x + r-sw, ex-row2-y), + (x-ex-start + ex-w + 0.3, ex-row2-y), + stroke: 0.5pt + black, + ) + content( + (x-ex-start + ex-w + 0.35, ex-row2-y), + text( + size: 6pt, + )[B2: toggle switch ($diameter 6.0 upright("mm")$)], + 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.], +) <figure-panels-grid-diagram> ===== Origin <panels-grid-origin> diff --git a/pictures/grid.svg b/pictures/grid.svg deleted file mode 100644 index 542538c..0000000 --- a/pictures/grid.svg +++ /dev/null @@ -1,1177 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - viewBox="0 0 754.0932 593.61035" - width="754.0932" - height="593.61035" - style="font-family:serif" - version="1.1" - id="svg84" - sodipodi:docname="grid.svg" - inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#"> - <sodipodi:namedview - id="namedview84" - pagecolor="#ffffff" - bordercolor="#000000" - borderopacity="0.25" - inkscape:showpageshadow="false" - inkscape:pageopacity="0.0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#d1d1d1" - showborder="false" - borderlayer="false" - inkscape:zoom="1.2698413" - inkscape:cx="353.98125" - inkscape:cy="290.5875" - inkscape:window-width="1920" - inkscape:window-height="1011" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:current-layer="svg84" /> - <defs - id="defs7"> - <marker - style="overflow:visible" - id="Triangle" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Triangle arrow" - markerWidth="1" - markerHeight="1" - viewBox="0 0 1 1" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <!-- Standard CAD Arrowheads --> - <!-- Standard Banana Jack Hole Pattern (8.0 mm) --> - <g - id="jack-hole"> - <circle - cx="0" - cy="0" - r="11.2" - fill="#ffffff" - stroke="#000000" - stroke-width="1.2" - id="circle2" /> - <line - x1="-14" - y1="0" - x2="14" - y2="0" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line2" /> - <line - x1="0" - y1="-14" - x2="0" - y2="14" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line3" /> - </g> - <!-- Potentiometer Shaft Hole Pattern (7.0 mm) --> - <g - id="pot-hole"> - <circle - cx="0" - cy="0" - r="9.8000002" - fill="#ffffff" - stroke="#000000" - stroke-width="1.2" - id="circle3" /> - <line - x1="-12" - y1="0" - x2="12" - y2="0" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line4" /> - <line - x1="0" - y1="-12" - x2="0" - y2="12" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line5" /> - </g> - <!-- LED Indicator Hole Pattern (3.2 mm) --> - <g - id="led-hole"> - <circle - cx="0" - cy="0" - r="4.48" - fill="#000000" - stroke="#000000" - stroke-width="1" - id="circle5" /> - <line - x1="-7" - y1="0" - x2="7" - y2="0" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line6" /> - <line - x1="0" - y1="-7" - x2="0" - y2="7" - stroke="#000000" - stroke-width="0.5" - stroke-dasharray="2, 2" - id="line7" /> - </g> - </defs> - <!-- ================================================================= --> - <!-- TITLE & HEADER --> - <!-- ================================================================= --> - <!-- ================================================================= --> - <!-- VIEW 1: FULL FRONT PANEL GRID ELEVATION (LEFT VIEW) --> - <!-- ================================================================= --> - <text - x="93.644455" - y="9.6103516" - text-anchor="middle" - fill="#000000" - font-size="13px" - font-weight="700" - id="text9">FULL PANEL GRID LAYOUT</text> - <text - x="93.644455" - y="25.610352" - text-anchor="middle" - fill="#666666" - font-size="10px" - id="text10" - style="fill:#000000;fill-opacity:1">(Scale: 2.8 px/mm | 2 Columns × 8 Rows)</text> - <rect - x="40.444454" - y="85.610352" - width="106.4" - height="497.84" - fill="#f8fafc" - stroke="#000000" - stroke-width="2" - id="rect10" - style="fill:#ffffff;fill-opacity:1" /> - <line - x1="40.444454" - y1="103.39035" - x2="146.84445" - y2="103.39035" - stroke="#000000" - stroke-width="1" - stroke-dasharray="3, 3" - id="line10" /> - <line - x1="40.444454" - y1="565.67035" - x2="146.84445" - y2="565.67035" - stroke="#000000" - stroke-width="1" - stroke-dasharray="3, 3" - id="line11" /> - <line - x1="67.114456" - y1="70.610352" - x2="67.114456" - y2="593.61035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line12" /> - <line - x1="120.45445" - y1="70.610352" - x2="120.45445" - y2="593.61035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line13" /> - <line - x1="28.644451" - y1="147.84035" - x2="158.64445" - y2="147.84035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line14" /> - <use - href="#jack-hole" - x="173.47" - y="172.23" - id="use14" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="172.23" - id="use15" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="151.34035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text15">A1</text> - <text - x="120.45445" - y="151.34035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text16">B1</text> - <line - x1="28.644451" - y1="201.18036" - x2="158.64445" - y2="201.18036" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line16" /> - <use - href="#jack-hole" - x="173.47" - y="225.57001" - id="use16" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="225.57001" - id="use17" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="204.68036" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text17">A2</text> - <text - x="120.45445" - y="204.68036" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text18">B2</text> - <line - x1="28.644451" - y1="254.52036" - x2="158.64445" - y2="254.52036" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line18" /> - <use - href="#jack-hole" - x="173.47" - y="278.91" - id="use18" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="278.91" - id="use19" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="258.02036" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text19">A3</text> - <text - x="120.45445" - y="258.02036" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text20">B3</text> - <line - x1="28.644451" - y1="307.86035" - x2="158.64445" - y2="307.86035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line20" /> - <use - href="#pot-hole" - x="173.47" - y="332.25" - id="use20" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#pot-hole" - x="226.81" - y="332.25" - id="use21" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="311.36035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text21">A4</text> - <text - x="120.45445" - y="311.36035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text22">B4</text> - <use - href="#led-hole" - x="200.14" - y="358.92001" - id="use22" - transform="translate(-106.35555,-24.389648)" /> - <line - x1="28.644451" - y1="361.20035" - x2="158.64445" - y2="361.20035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line22" /> - <use - href="#jack-hole" - x="173.47" - y="385.59" - id="use23" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="385.59" - id="use24" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="364.70035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text24">A5</text> - <text - x="120.45445" - y="364.70035" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text25">B5</text> - <line - x1="28.644451" - y1="414.54034" - x2="158.64445" - y2="414.54034" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line25" /> - <use - href="#jack-hole" - x="173.47" - y="438.92999" - id="use25" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="438.92999" - id="use26" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="418.04034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text26">A6</text> - <text - x="120.45445" - y="418.04034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text27">B6</text> - <line - x1="28.644451" - y1="467.88034" - x2="158.64445" - y2="467.88034" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line27" /> - <use - href="#jack-hole" - x="173.47" - y="492.26999" - id="use27" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="492.26999" - id="use28" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="471.38034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text28">A7</text> - <text - x="120.45445" - y="471.38034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text29">B7</text> - <line - x1="28.644451" - y1="521.22034" - x2="158.64445" - y2="521.22034" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line29" /> - <use - href="#jack-hole" - x="173.47" - y="545.60999" - id="use29" - transform="translate(-106.35555,-24.389648)" /> - <use - href="#jack-hole" - x="226.81" - y="545.60999" - id="use30" - transform="translate(-106.35555,-24.389648)" /> - <text - x="67.114456" - y="524.72034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text30">A8</text> - <text - x="120.45445" - y="524.72034" - text-anchor="middle" - fill="#000000" - font-size="8px" - font-weight="700" - id="text31">B8</text> - <line - x1="40.444454" - y1="85.610352" - x2="40.444454" - y2="50.610352" - stroke="#000000" - stroke-width="0.75" - id="line31" /> - <line - x1="146.84445" - y1="85.610352" - x2="146.84445" - y2="50.610352" - stroke="#000000" - stroke-width="0.75" - id="line32" /> - <line - x1="44.815609" - y1="49.610352" - x2="142.47328" - y2="49.610352" - stroke="#000000" - stroke-width="1.14964" - marker-start="url(#arrow-start)" - marker-end="url(#arrow-end)" - id="line33" - style="marker-start:url(#Triangle);marker-end:url(#Triangle)" /> - <text - x="93.644455" - y="44.610352" - text-anchor="middle" - fill="#000000" - font-size="10.5px" - font-weight="700" - id="text33">38.0 mm</text> - <text - x="67.114456" - y="70.610352" - text-anchor="middle" - fill="#000000" - font-size="9px" - font-weight="700" - id="text34">Col 1 (A)</text> - <text - x="120.45445" - y="70.610352" - text-anchor="middle" - fill="#000000" - font-size="9px" - font-weight="700" - id="text35">Col 2 (B)</text> - <text - x="23.644451" - y="150.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text36">Row 1</text> - <text - x="23.644451" - y="203.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text37">Row 2</text> - <text - x="23.644451" - y="256.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text38">Row 3</text> - <text - x="23.644451" - y="310.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text39">Row 4</text> - <text - x="23.644451" - y="363.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text40">Row 5</text> - <text - x="23.644451" - y="416.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text41">Row 6</text> - <text - x="23.644451" - y="470.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text42">Row 7</text> - <text - x="23.644451" - y="523.61035" - text-anchor="end" - fill="#000000" - font-size="8.5px" - font-weight="600" - id="text43">Row 8</text> - <line - x1="146.84445" - y1="85.610352" - x2="183.64445" - y2="85.610352" - stroke="#000000" - stroke-width="0.75" - id="line43" /> - <line - x1="146.84445" - y1="583.45038" - x2="183.64445" - y2="583.45038" - stroke="#000000" - stroke-width="0.75" - id="line44" /> - <line - x1="183.64445" - y1="90.25563" - x2="183.64445" - y2="578.80505" - stroke="#000000" - stroke-width="1.18875" - marker-start="url(#arrow-start)" - marker-end="url(#arrow-end)" - id="line45" - style="marker-start:url(#Triangle);marker-end:url(#Triangle)" /> - <g - transform="rotate(90,-69.44295,265.0874)" - id="g45"> - <text - x="0" - y="0" - text-anchor="middle" - fill="#000000" - font-size="10.5px" - font-weight="700" - id="text45">177.8 mm (4U Panel Height)</text> - </g> - <!-- ================================================================= --> - <!-- VIEW 2: ZOOMED ORIGIN & PITCH DETAIL (TOP RIGHT) --> - <!-- ================================================================= --> - <text - x="493.64444" - y="9.6103516" - text-anchor="middle" - fill="#000000" - font-size="13px" - font-weight="700" - id="text46">GRID ORIGIN & PITCH DETAIL</text> - <text - x="493.64444" - y="25.610352" - text-anchor="middle" - fill="#666666" - font-size="10px" - id="text47" - style="fill:#000000;fill-opacity:1">(Enlarged View: Rows 1–2 / Scale 4.5 px/mm)</text> - <rect - x="408.14444" - y="90.610352" - width="171" - height="247.5" - fill="#f8fafc" - stroke="#000000" - stroke-width="2" - id="rect47" - style="fill:#ffffff;fill-opacity:1" /> - <line - x1="451.00443" - y1="75.610352" - x2="451.00443" - y2="350.61035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line47" /> - <line - x1="536.72449" - y1="75.610352" - x2="536.72449" - y2="350.61035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line48" /> - <line - x1="388.64444" - y1="190.62035" - x2="598.64447" - y2="190.62035" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line49" /> - <line - x1="388.64444" - y1="276.34534" - x2="598.64447" - y2="276.34534" - stroke="#000000" - stroke-width="0.8" - stroke-dasharray="8, 3, 2, 3" - id="line50" /> - <circle - cx="451.00443" - cy="190.62035" - r="18" - fill="#ffffff" - stroke="#000000" - stroke-width="1.5" - id="circle50" /> - <circle - cx="536.72449" - cy="190.62035" - r="18" - fill="#ffffff" - stroke="#000000" - stroke-width="1.5" - id="circle51" /> - <circle - cx="451.00443" - cy="276.34534" - r="18" - fill="#ffffff" - stroke="#000000" - stroke-width="1.5" - id="circle52" /> - <circle - cx="536.72449" - cy="276.34534" - r="18" - fill="#ffffff" - stroke="#000000" - stroke-width="1.5" - id="circle53" /> - <text - x="451.00443" - y="194.62035" - text-anchor="middle" - fill="#000000" - font-size="11px" - font-weight="700" - id="text53">A1</text> - <text - x="536.72449" - y="194.62035" - text-anchor="middle" - fill="#000000" - font-size="11px" - font-weight="700" - id="text54">B1</text> - <text - x="451.00443" - y="280.34534" - text-anchor="middle" - fill="#000000" - font-size="11px" - font-weight="700" - id="text55">A2</text> - <text - x="536.72449" - y="280.34534" - text-anchor="middle" - fill="#000000" - font-size="11px" - font-weight="700" - id="text56">B2</text> - <line - x1="408.14444" - y1="90.610352" - x2="408.14444" - y2="60.610352" - stroke="#000000" - stroke-width="0.75" - id="line56" /> - <line - x1="451.00443" - y1="190.62035" - x2="451.00443" - y2="60.610352" - stroke="#000000" - stroke-width="0.75" - id="line57" /> - <line - x1="412.78903" - y1="59.610352" - x2="447.14731" - y2="59.610352" - stroke="#000000" - stroke-width="1.07441" - marker-start="url(#arrow-start)" - marker-end="url(#arrow-end)" - id="line58" - style="marker-start:url(#Triangle);marker-end:url(#Triangle)" /> - <text - x="429.57443" - y="69.610352" - text-anchor="middle" - fill="#000000" - font-size="9px" - font-weight="700" - id="text58">Origin X: 9.525 mm</text> - <line - x1="536.72449" - y1="190.62035" - x2="536.72449" - y2="60.610352" - stroke="#000000" - stroke-width="0.75" - id="line59" /> - <line - x1="454.54605" - y1="59.610352" - x2="532.39539" - y2="59.610352" - stroke="#000000" - stroke-width="1.14358" - marker-start="url(#arrow-start)" - marker-end="url(#arrow-end)" - id="line60" - style="marker-start:url(#Triangle);marker-end:url(#Triangle)" /> - <text - x="493.86441" - y="53.610352" - text-anchor="middle" - fill="#000000" - font-size="9px" - font-weight="700" - id="text60">Column Pitch: 19.05 mm (0.75")</text> - <line - x1="408.14444" - y1="90.610352" - x2="358.64444" - y2="90.610352" - stroke="#000000" - stroke-width="0.75" - id="line61" /> - <line - x1="451.00443" - y1="190.62035" - x2="358.64444" - y2="190.62035" - stroke="#000000" - stroke-width="0.75" - id="line62" /> - <line - x1="357.64444" - y1="95.74807" - x2="357.64444" - y2="187.05763" - stroke="#000000" - stroke-width="1.14662" - marker-start="url(#arrow-start)" - marker-end="url(#arrow-end)" - id="line63" - style="marker-start:url(#Triangle);marker-end:url(#Triangle)" /> |
