aboutsummaryrefslogtreecommitdiff
path: root/mechanical-specifications.typ
diff options
context:
space:
mode:
authorDenis Chevalier <perso@denischevalier.fr>2026-08-10 18:19:23 +0200
committerDenis Chevalier <perso@denischevalier.fr>2026-08-10 18:20:41 +0200
commit5a150e77e55cc22fb063facf97fd927a726f9857 (patch)
tree0948f1bb1e4aa4ab51db5bc39da51bdbf2fe6be8 /mechanical-specifications.typ
parent3a0e05c13a43611cd9fd0cd854cc60ae9f500d7d (diff)
downloadsame-5a150e77e55cc22fb063facf97fd927a726f9857.tar.gz
same-5a150e77e55cc22fb063facf97fd927a726f9857.tar.bz2
same-5a150e77e55cc22fb063facf97fd927a726f9857.zip
replace db-25 connector cutout svg with cetz
Diffstat (limited to 'mechanical-specifications.typ')
-rw-r--r--mechanical-specifications.typ296
1 files changed, 293 insertions, 3 deletions
diff --git a/mechanical-specifications.typ b/mechanical-specifications.typ
index 966ab3f..2a433f9 100644
--- a/mechanical-specifications.typ
+++ b/mechanical-specifications.typ
@@ -1636,9 +1636,299 @@ maintaining EMI shielding.
==== DB-25 connector cutout <db-25-connector-cutout>
#figure(
- image("pictures/db-25-connector-cutout.svg"),
- caption: [DB-25 connector cutout],
-) <figure-db-25-connector-cutout>
+ cetz.canvas({
+ import cetz.draw: *
+
+ // Scale factor: 1 mm = 0.06 drawing units
+ let s = 0.06
+
+ let panel-w = 35.7 * s // 1.6065 units
+ let panel-h = 165.1 * s // 7.4295 units
+ let cx-panel = panel-w / 2
+ let cy-panel = panel-h / 2 // 82.5 mm from top/bottom
+
+ // DB-25 Cutout Dimensions (Scale for Detail View)
+ let ds = 0.12 // Magnified detail scale
+
+ let d-width = 33.3 * ds // Overall cutout width (33.3 mm)
+ let d-height = 12.5 * ds // Cutout height (12.5 mm)
+ let hole-spacing = 24.99 * ds // Mounting hole spacing from center / pitch
+ let hole-r = (3.2 / 2) * ds // 3.2 mm diameter (1.6 mm radius)
+
+ // ==========================================
+ // 1. REAR PANEL CUTOUT PLACEMENT VIEW (35.7 mm x 165.1 mm)
+ // ==========================================
+ let x-panel-start = 0
+ let y-panel-start = 0
+
+ // View Title
+ content((cx-panel, panel-h + 0.8), text(
+ size: 8.5pt,
+ weight: "bold",
+ )[REAR PANEL PLACEMENT])
+ content((cx-panel, panel-h + 0.45), text(
+ size: 7pt,
+ fill: luma(90),
+ )[(Centered Position)])
+
+ // Rear Closure Plate Outline
+ rect(
+ (x-panel-start, y-panel-start),
+ (x-panel-start + panel-w, y-panel-start + panel-h),
+ fill: luma(245),
+ stroke: 1.2pt + black,
+ )
+
+ // Centerlines on Rear Panel
+ line(
+ (x-panel-start - 0.4, cy-panel),
+ (x-panel-start + panel-w + 0.4, cy-panel),
+ stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"),
+ )
+ line(
+ (cx-panel, y-panel-start - 0.4),
+ (cx-panel, y-panel-start + panel-h + 0.4),
+ stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"),
+ )
+
+ // Small DB-25 D-Sub Cutout Representation in Center
+ let sm-w = 26.0 * s
+ let sm-h = 11.0 * s
+ rect(
+ (cx-panel - sm-w / 2, cy-panel - sm-h / 2),
+ (cx-panel + sm-w / 2, cy-panel + sm-h / 2),
+ fill: white,
+ stroke: 0.8pt + black,
+ )
+ circle(
+ (cx-panel - 12.5 * s, cy-panel),
+ radius: 1.6 * s,
+ fill: white,
+ stroke: 0.6pt + black,
+ )
+ circle(
+ (cx-panel + 12.5 * s, cy-panel),
+ radius: 1.6 * s,
+ fill: white,
+ stroke: 0.6pt + black,
+ )
+
+ // Center X Dimension Callout (17.85 mm)
+ line(
+ (x-panel-start, y-panel-start),
+ (x-panel-start, y-panel-start - 0.5),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (cx-panel, y-panel-start),
+ (cx-panel, y-panel-start - 0.5),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-panel-start, y-panel-start - 0.45),
+ (cx-panel, y-panel-start - 0.45),
+ mark: (start: "stealth", end: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content((cx-panel / 2, y-panel-start - 0.7), text(
+ size: 6.5pt,
+ weight: "bold",
+ )[$qty(17.85, "mm")$])
+
+ // Center Y Dimension Callout (82.5 mm)
+ line(
+ (x-panel-start, y-panel-start),
+ (x-panel-start - 0.5, y-panel-start),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-panel-start, cy-panel),
+ (x-panel-start - 0.5, cy-panel),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-panel-start - 0.45, y-panel-start),
+ (x-panel-start - 0.45, cy-panel),
+ mark: (start: "stealth", end: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content(
+ (x-panel-start - 0.75, cy-panel / 2),
+ text(size: 6.5pt, weight: "bold")[$qty(82.5, "mm")$],
+ angle: 90deg,
+ )
+
+ // ==========================================
+ // 2. MAGNIFIED DB-25 CUTOUT GEOMETRY DETAIL
+ // ==========================================
+ let x-det-center = 6.2
+ let y-det-center = cy-panel
+
+ // View Title
+ content((x-det-center, y-det-center + 2.2), text(
+ size: 8.5pt,
+ weight: "bold",
+ )[CUTOUT GEOMETRY DETAIL])
+ content((x-det-center, y-det-center + 1.85), text(
+ size: 7pt,
+ fill: luma(90),
+ )[(Standard D-Shaped DB-25 Profile)])
+
+ // Centerlines
+ line(
+ (x-det-center - 2.5, y-det-center),
+ (x-det-center + 2.5, y-det-center),
+ stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"),
+ )
+ line(
+ (x-det-center, y-det-center - 1.5),
+ (x-det-center, y-det-center + 1.5),
+ stroke: (paint: luma(120), thickness: 0.4pt, dash: "dash-dotted"),
+ )
+
+ // D-Sub Trapezoidal Shroud Profile (Closed Path)
+ let tw = 25.0 * ds // Top wider width
+ let bw = 22.5 * ds // Bottom narrower width
+ let hh = d-height / 2
+
+ line(
+ (x-det-center - tw / 2, y-det-center + hh),
+ (x-det-center + tw / 2, y-det-center + hh),
+ (x-det-center + bw / 2, y-det-center - hh),
+ (x-det-center - bw / 2, y-det-center - hh),
+ close: true,
+ fill: white,
+ stroke: 1.2pt + black,
+ )
+
+ // Mounting Holes (Left & Right, Diameter 3.2 mm)
+ let hole-left-x = x-det-center - hole-spacing / 2
+ let hole-right-x = x-det-center + hole-spacing / 2
+
+ circle(
+ (hole-left-x, y-det-center),
+ radius: hole-r,
+ fill: white,
+ stroke: 0.8pt + black,
+ )
+ circle(
+ (hole-right-x, y-det-center),
+ radius: hole-r,
+ fill: white,
+ stroke: 0.8pt + black,
+ )
+
+ // Hole Center Crosshairs
+ line(
+ (hole-left-x - 0.2, y-det-center),
+ (hole-left-x + 0.2, y-det-center),
+ stroke: 0.3pt + luma(120),
+ )
+ line(
+ (hole-left-x, y-det-center - 0.2),
+ (hole-left-x, y-det-center + 0.2),
+ stroke: 0.3pt + luma(120),
+ )
+ line(
+ (hole-right-x - 0.2, y-det-center),
+ (hole-right-x + 0.2, y-det-center),
+ stroke: 0.3pt + luma(120),
+ )
+ line(
+ (hole-right-x, y-det-center - 0.2),
+ (hole-right-x, y-det-center + 0.2),
+ stroke: 0.3pt + luma(120),
+ )
+
+ // Overall D-Opening Width Dimension (33.3 mm)
+ let x-left-edge = x-det-center - d-width / 2
+ let x-right-edge = x-det-center + d-width / 2
+
+ line(
+ (x-left-edge, y-det-center + hh),
+ (x-left-edge, y-det-center + hh + 0.6),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-right-edge, y-det-center + hh),
+ (x-right-edge, y-det-center + hh + 0.6),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-left-edge, y-det-center + hh + 0.6),
+ (x-right-edge, y-det-center + hh + 0.6),
+ mark: (start: "stealth", end: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content((x-det-center, y-det-center + hh + 0.3), text(
+ size: 7pt,
+ )[Opening width: $qty(33.3, "mm")$])
+
+ // D-Opening Height Dimension (12.5 mm)
+ line(
+ (x-left-edge, y-det-center - hh),
+ (x-left-edge - 0.5, y-det-center - hh),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-left-edge, y-det-center + hh),
+ (x-left-edge - 0.5, y-det-center + hh),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (x-left-edge - 0.5, y-det-center - hh),
+ (x-left-edge - 0.5, y-det-center + hh),
+ mark: (start: "stealth", end: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content(
+ (x-left-edge - 0.75, y-det-center),
+ text(size: 7pt)[$qty(12.5, "mm")$],
+ angle: 90deg,
+ )
+
+ // Mounting Hole Spacing Dimension (24.99 mm)
+ line(
+ (hole-left-x, y-det-center - hh),
+ (hole-left-x, y-det-center - hh - 0.6),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (hole-right-x, y-det-center - hh),
+ (hole-right-x, y-det-center - hh - 0.6),
+ stroke: 0.4pt + luma(140),
+ )
+ line(
+ (hole-left-x, y-det-center - hh - 0.6),
+ (hole-right-x, y-det-center - hh - 0.6),
+ mark: (start: "stealth", end: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content((x-det-center, y-det-center - hh - 0.9), text(
+ size: 7pt,
+ )[Hole pitch: $qty(24.99, "mm")$])
+
+ // Hole Diameter Callout (diameter 3.2 mm)
+ line(
+ (hole-right-x, y-det-center + hole-r),
+ (hole-right-x + 0.6, y-det-center + 1.1),
+ mark: (start: "stealth"),
+ mark-size: 0.08,
+ stroke: 0.6pt + black,
+ )
+ content(
+ (hole-right-x + 0.65, y-det-center + 1.15),
+ text(size: 6.5pt)[$2 times diameter qty(3.2, "mm")$ holes],
+ anchor: "west",
+ )
+ }),
+ 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(
table(