diff --git a/.vscode/settings.json b/.vscode/settings.json index cb01807..49fa0c2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,3 @@ { - "tinymist.serverPath": "/nix/store/svghwcmy5qbhf3flz0g09m9i1llfm0m5-tinymist-0.15.8/bin/tinymist", - + "tinymist.serverPath": "/nix/store/nca7wx9jkzdv54ffsmrv2llkj7h1529x-tinymist-0.15.2/bin/tinymist", } diff --git a/presentation.typ b/presentation.typ index 554aab7..16cd550 100644 --- a/presentation.typ +++ b/presentation.typ @@ -57,43 +57,69 @@ }, ) -// Eine Schicht im Querschnittsdiagramm: Farbband links, Beschriftung rechts. -#let _band(fill, h, label, sub: none) = grid( - columns: (1fr, 112pt), - column-gutter: 0.8em, - rect(width: 100%, height: h, fill: fill, stroke: 0.5pt + luma(150), radius: 2pt), - align(horizon + left, { - set text(size: 8.5pt) - label - if sub != none { - linebreak() - set text(size: 7.5pt, fill: luma(120)) - sub - } - }), +// Schichtband: lückenlos gestapelt (Grid mit row-gutter 0 = kein Par-Abstand). +#let _layer(fill, h, round: none) = rect( + width: 100%, + height: h, + fill: fill, + stroke: 0.5pt + luma(150), + radius: if round == none { 0pt } else { round }, ) -// Querschnitt 2-Layer. -#let stack-2() = block(width: 100%, { - _band(mask.lighten(40%), 8pt, [Lötstopp + Bestückungsdruck (Top)]) - _band(cu, 11pt, [Kupfer Top], sub: [Signale, 35 µm]) - _band(fr4, 20pt, [FR4-Kern], sub: [≈ 1,5 mm]) - _band(cu, 11pt, [Kupfer Bottom], sub: [GND-Fläche, 35 µm]) - _band(mask.lighten(40%), 8pt, [Lötstopp (Bottom)]) -}) +#let _stack(..layers) = grid(columns: (1fr,), row-gutter: 0pt, ..layers) -// Querschnitt 4-Layer. -#let stack-4() = block(width: 100%, { - _band(mask.lighten(40%), 8pt, [Lötstopp (Top)]) - _band(cu, 11pt, [Kupfer Top], sub: [Signale]) - _band(prepreg, 7pt, [Prepreg], sub: [≈ 0,2 mm]) - _band(accent, 11pt, [In1.GND], sub: [Masse-Referenz]) - _band(fr4, 18pt, [FR4-Kern], sub: [≈ 1,0 mm]) - _band(accent-soft, 11pt, [In2.PWR], sub: [Versorgung]) - _band(prepreg, 7pt, [Prepreg]) - _band(cu, 11pt, [Kupfer Bottom], sub: [Signale]) - _band(mask.lighten(40%), 8pt, [Lötstopp (Bottom)]) -}) +// Legendenzeile: Farbfeld + Text. +#let _sw(c, note) = grid( + columns: (14pt, 1fr), + column-gutter: 0.45em, + align(horizon, rect(width: 14pt, height: 9pt, fill: c, stroke: 0.5pt + luma(160), radius: 1.5pt)), + align(horizon, text(size: 8.5pt)[#note]), +) + +// Querschnitt 2-Layer: Stack links, Legende rechts. +#let stack-2() = grid( + columns: (1.15fr, 1fr), + gutter: 1.8em, + _stack( + _layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)), + _layer(cu, 12pt), + _layer(fr4, 22pt), + _layer(cu, 12pt), + _layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)), + ), + grid( + row-gutter: 3pt, + _sw(mask.lighten(40%), [Lötstopp + Bestückungsdruck]), + _sw(cu, [Kupfer 35 µm — Top: Signale, Bottom: GND-Fläche]), + _sw(fr4, [FR4-Kern ≈ 1,5 mm]), + ), +) + +// Querschnitt 4-Layer: Stack links, Legende rechts. +#let stack-4() = grid( + columns: (1.15fr, 1fr), + gutter: 1.8em, + _stack( + _layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)), + _layer(cu, 11pt), + _layer(prepreg, 7pt), + _layer(accent, 11pt), + _layer(fr4, 18pt), + _layer(accent-soft, 11pt), + _layer(prepreg, 7pt), + _layer(cu, 11pt), + _layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)), + ), + grid( + row-gutter: 3pt, + _sw(mask.lighten(40%), [Lötstopp]), + _sw(cu, [Kupfer Top/Bottom: Signale]), + _sw(prepreg, [Prepreg ≈ 0,2 mm]), + _sw(accent, [In1.GND — Masse-Referenz]), + _sw(fr4, [FR4-Kern ≈ 1,0 mm]), + _sw(accent-soft, [In2.PWR — Versorgung]), + ), +) // Prozesskasten für die Werkzeugkette (Stil wie diagrams.typ::_pipebox). #let _kbox(title, ..lines, highlight: false) = block( @@ -191,7 +217,7 @@ #slide(title: "ERC — Schaltung prüfen")[ - `Prüfen → Elektrische Regeln prüfen` (ERC): offene Pins, unverbundene \ Drähte, fehlende Spannungs-Flags (`PWR_FLAG` an Versorgung & GND) - - Warnungen verstehen und beheben — nicht wegwarrowen + - Warnungen verstehen und beheben — nicht wegklicken - Erst wenn ERC grün ist: Footprints zuweisen und ins Layout #v(0.5em) #shot("03-erc", [ERC-Dialog mit Ergebnisliste und „0 Verstöße“], tip: [Menü: Prüfen → Elektrische Regeln prüfen]) @@ -256,8 +282,7 @@ ] #slide(title: "Zonen — GND-Fläche")[ - - Kupferfläche zeichnen (`K`)? Nein: `Werkzeuge → Polygonzüge` bzw. \ - Zeichnen-Werkzeug „Fläche“; dann Zone-Eigenschaften: + - Zeichnen-Werkzeug *Kupferfläche* wählen; in den Zone-Eigenschaften: *Netz GND, Lage B.Cu, thermische Reliefs* für Pads - *Stitch-Vias*: GND-Verbindungen Top ↔ Bottom nahe kritischen Bauteilen \ (Entkopplung, Quarze, Spannungsregler)