Benutzer-Werkzeuge

Webseiten-Werkzeuge


3d_druck:mll-masken-generator

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
3d_druck:mll-masken-generator [2026/06/25 11:13] – [MobaLedLib Lichtmasken-Generator] moba_nick3d_druck:mll-masken-generator [2026/11/01 19:37] (aktuell) – Anpassungen an Version v0.7 oliwel
Zeile 1: Zeile 1:
 ====== MobaLedLib Lichtmasken-Generator ====== ====== MobaLedLib Lichtmasken-Generator ======
  
-Der [[https://3d-haus.mobaledlib.net/|MLL Lichtmasken Generator (https://3d-haus.mobaledlib.net/)]] erzeugt aus einer einfachen Text-Konfiguration eine druckfertige +Der [[https://3d-haus.mobaledlib.net/|MLL Lichtmasken Generator (https://3d-haus.mobaledlib.net/)]] erzeugt aus einer einfachen Text-Konfiguration eine druckfertige 3D-Lichtmaske (STL) für Modellgebäude. Die Maske wird von innen in das Gebäude 
-3D-Lichtmaske (STL) für Modellgebäude. Die Maske wird von innen in das Gebäude eingesetzt, trennt die Räume lichtdicht voneinander und kann zusammen mit der Hausplatine (296) genutzt werden. Es ist natürlich auch möglich die LEDs manuell einzubauen.+eingesetzt, trennt die Räume lichtdicht voneinander und nimmt die Hausplatine auf.
  
-{{bilder:3d_druck:3dhaeuser:screenshot_maskengenerator.png|Screenshot des Generators}}+{{bilder:3d_druck:3dhaeuser:mll_generator_v07.png?800|Screenshot des Generators}} 
 + 
 +{{:bilder:3d_druck:3dhaeuser:img_20260604_222711948.jpg?330 |}}{{:bilder:3d_druck:3dhaeuser:img_20260610_091018941.jpg?330|}} 
 +{{:bilder:3d_druck:3dhaeuser:masken_gestapelt_zweiteilig.png?500}}
  
 Diese Anleitung beschreibt **Schritt für Schritt, wie eine Konfiguration aufgebaut wird**. Diese Anleitung beschreibt **Schritt für Schritt, wie eine Konfiguration aufgebaut wird**.
Zeile 14: Zeile 17:
   - Konfiguration in das Eingabefeld schreiben (oder eine vorhandene .csv laden).   - Konfiguration in das Eingabefeld schreiben (oder eine vorhandene .csv laden).
   - **▶ Vorschau** klicken – das Modell erscheint rechts und lässt sich mit der Maus drehen.   - **▶ Vorschau** klicken – das Modell erscheint rechts und lässt sich mit der Maus drehen.
-  - Passt alles, mit **↓ STL** die Druckdatei speichern.+  - Unter dem Eingabefeld das **Exportformat** wählen (siehe unten). 
 +  - Passt alles, mit **↓ STL** oder **↓ 3MF** die Druckdatei speichern. Der Dateiname ergibt sich aus dem Hausnamen im Abschnitt ''text'' (sonst ''MLL Hausmaske''), bei gesetztem Stockwerk ergänzt um ''G<n>''. 
 + 
 +^ Exportformat ^ Ergebnis ^ 
 +| kompakt | Hülle und Innenteil ineinander als ein Gebäude (Standard, für Multi-Material-Druck) | 
 +| beide | Hülle und Innenteil als getrennte Teile nebeneinander, entlang der längeren Raumkante angeordnet | 
 +| außen | nur die Hülle | 
 +| innen | nur das Innenteil | 
 + 
 +Die Vorschau zeigt Hülle (rot) und Innenteil (gelb) farbig. Farbige 3MF-Dateien erzeugt OpenSCAD erst ab den Entwicklungsständen von 2025 (z. B. das Docker-Image); ältere Versionen liefern ein einfarbiges Modell.
  
 <WRAP tip>Fügt man Zellen aus einer Tabelle (z. B. Excel) ein, werden Tabulatoren <WRAP tip>Fügt man Zellen aus einer Tabelle (z. B. Excel) ein, werden Tabulatoren
Zeile 23: Zeile 35:
 ===== Vorbereitung ===== ===== Vorbereitung =====
  
-  - Stelle dein Modellhaus auf ein Blatt kariertes Papier und übertrage die Aussenmaße auf das Papier.+  - Stelle dein Modellhaus auf ein Blatt karriertes Papier und übertrage die Aussenmaße auf das Papier.
   - Markiere alle Fenster und Türen durch einen dicken Strich auf der Wandlinie.   - Markiere alle Fenster und Türen durch einen dicken Strich auf der Wandlinie.
   - Messe für jedes Fenster den Abstand zur linken Hausecke und vom "Boden" sowie Breite und Höhe der Öffnung, schreibe die vier Zahlen an den Strich.   - Messe für jedes Fenster den Abstand zur linken Hausecke und vom "Boden" sowie Breite und Höhe der Öffnung, schreibe die vier Zahlen an den Strich.
Zeile 29: Zeile 41:
   - Überlege dir die Position der Wände und skizziere Sie auf dem Papier.   - Überlege dir die Position der Wände und skizziere Sie auf dem Papier.
   - Finde eine geeignete Position für die Lichtplatine.   - Finde eine geeignete Position für die Lichtplatine.
- 
-Die Grundlagen für das Ausmessen der Fenster und der Vorbereitung des Hauses findet ihr auch im [[.:anleitungen:haustrennwaende-teil1|Artikel zur Trennwanderstellung]]. 
  
 ---- ----
Zeile 46: Zeile 56:
  
   * Werte werden durch **Komma** getrennt.   * Werte werden durch **Komma** getrennt.
-  * **Alle Maße in Millimetern.** Nachkommastellen mit Punkt schreiben (''2.5'', nicht ''2,5''). +  * **Alle Maße in Millimetern.** Nachkommastellen mit Punkt schreiben (''2.5'', nicht ''2,5''). Jeder einzelne Wert muss zwischen ''-9999'' und ''9999'' liegen. 
-  * Die Reihenfolge der Abschnitte ist frei wählbar.+  * Die Reihenfolge der Abschnitte ist frei wählbar. Einzige Ausnahme: der Fenster-Abschnitt einer benannten Wand muss **nach** der ''wand''-Zeile stehen, die den Namen vergibt.
   * Mit ''#'' beginnt ein **Kommentar** – sowohl als ganze Zeile als auch am Zeilenende:   * Mit ''#'' beginnt ein **Kommentar** – sowohl als ganze Zeile als auch am Zeilenende:
  
Zeile 98: Zeile 108:
 ^ Werte ^ Bedeutung ^ ^ Werte ^ Bedeutung ^
 | ''2.5'' | gleicher Offset auf **allen vier Seiten** | | ''2.5'' | gleicher Offset auf **allen vier Seiten** |
-| ''2.5,1'' | erste Zahl = **vorne & hinten**, zweite = **links & rechts** |+| ''2.5,1'' | wie die Maßzeile: erste Zahl = **Breite** (links & rechts), zweite = **Tiefe** (vorne & hinten) |
 | ''2,1,2,1'' | je Seite einzeln: **vorne, rechts, hinten, links** | | ''2,1,2,1'' | je Seite einzeln: **vorne, rechts, hinten, links** |
 +| ''2.5,1,45'' | wie ''2.5,1'', dazu die **Fussbodenhöhe** 45 (siehe unten) |
 +| ''2,1,2,1,45'' | wie ''2,1,2,1'', dazu die **Fussbodenhöhe** 45 |
 +
 +<WRAP info>Die Reihenfolge unterscheidet sich zwischen den beiden Formen. Mit
 +**zwei** Werten zählt die Zeile **Achsen** wie die Maßzeile: ''Breite, Tiefe''.
 +Mit **vier** Werten zählt sie **Seiten** reihum ab vorne:
 +''vorne, rechts, hinten, links''. Die vier Seiten einzeln zu setzen heißt also
 +nicht, einfach zwei Werte anzuhängen – ''2,1'' entspricht ''1,2,1,2''.</WRAP>
 +
 +**Fussbodenhöhe (optional, letzter Wert):** bei einem mehrstöckigen Haus misst man die Fensterhöhen bequemer **einmal durchgängig vom Erdboden** statt für jedes Stockwerk neu. Die Fussbodenhöhe sagt dem Generator, wie hoch der Fussboden dieses Stockwerks über dem Erdboden liegt; sie wird von jeder Höhenangabe einer Öffnung abgezogen. Liegt der Fussboden des ersten Obergeschosses 45 mm über dem Erdboden, wird aus einem bei 52 gemessenen Fenster eine Öffnung 7 mm über dem Boden der Maske.
 +
 +Sie steht immer als **letzter** Wert hinter der Zwei- oder Vierwertform. An die Einwertform lässt sie sich nicht anhängen – ''2.5,45'' wäre die Achsenform. Wer auf allen Seiten denselben Versatz will, schreibt also ''2.5,2.5,45''.
 +
 +<WRAP info>Die Fussbodenhöhe hat nichts mit der Stockwerkszeile ''G<n>'' zu tun. ''G<n>'' steuert Drehung, Gravur und Stapelecken, kennt aber keine Höhen – die Stockwerke dürfen unterschiedlich hoch sein. Beides wird getrennt angegeben.</WRAP>
  
 <code> <code>
Zeile 106: Zeile 130:
 2.5 2.5
 </code> </code>
 +
 +==== Dritte Zeile – Stockwerk (''G<n>''), optional ====
 +
 +Werden mehrere Räume übereinander gestapelt, bekommt der ''raum''-Abschnitt eine
 +eigene Zeile ''G<n>'' mit der Stockwerksnummer (''G0'' = Erdgeschoss, einstellig).
 +Sie gilt für den ganzen Raum und setzt automatisch:
 +
 +  * jedes **ungerade** Stockwerk dreht alle Platinen um 180°, damit die Anschlüsse abwechselnd liegen,
 +  * die Ziffer wird in die **vordere rechte Ecke** des Dachs graviert, sodass am gedruckten Teil ablesbar ist, zu welchem Stockwerk es gehört,
 +  * an den vier **Innenecken der Außenwände** kommt je eine Aussparung im Dach; ab ''G1'' sitzt an denselben Ecken unten ein passender Zapfen. Aufeinandergesetzt rasten die Räume darüber ineinander ein. An einer Ecke, an der beide angrenzenden Außenwände fehlen (Wand ohne Öffnungen), entfällt der Zapfen.
 +
 +Die Ecken liegen **innen an den Wänden**, die Außenkontur der Maske bleibt also
 +unberührt und beim Einschieben ins Haus setzt nichts auf. Drei Ecken sind
 +rechtwinklige Dreiecke mit 4 mm Kantenlänge, die Ecke **vorne links** ist ein
 +Viertelkreis mit 3 mm Radius – damit passen gestapelte Räume nur in einer
 +Drehlage zusammen.
 +
 +Die Offset-Zeile darf fehlen, ''G<n>'' steht dann direkt unter den Außenmaßen.
 +
 +<code>
 +raum
 +110,78,35
 +2.5
 +G1
 +</code>
 +
 +<WRAP alert>''G<n>'' setzt **nicht** die Anschlussart der Platine. ''idc'' bzw.
 +''stack'' gehören immer explizit in die Datenzeile des ''licht''-Abschnitts.</WRAP>
  
 ---- ----
Zeile 112: Zeile 164:
  
 Der ''licht''-Abschnitt bestimmt, wo die Platine sitzt. Die Platinenaufnahme hat ein Der ''licht''-Abschnitt bestimmt, wo die Platine sitzt. Die Platinenaufnahme hat ein
-festes Format von **41 × 36 mm** und muss mit etwas Abstand vollständig innerhalb +festes Format von **41 × 36 mm** und muss mit mindestens **2 mm** Abstand 
-der Maske liegen.+vollständig innerhalb der Maske liegen.
  
-**Format:** Mitte-X, Mitte-Y [, Rotation] [, Schalter]+**Format:** Mitte-X, Mitte-Y [, Rotation] [, Schalter] [, Anschluss]
  
   * ''Mitte-X, Mitte-Y'' = Koordinaten des **Platinenmittelpunkts** (vom Ursprung vorne links).   * ''Mitte-X, Mitte-Y'' = Koordinaten des **Platinenmittelpunkts** (vom Ursprung vorne links).
-  * ''Rotation'' (optional) = Drehung in Grad: ''90'', ''180'', ''-90''.+  * ''Rotation'' (optional) = Drehung in Grad: ''90'', ''180'', ''-90''. Ohne Angabe setzt die Stockwerkszeile ''G<n>'' des ''raum''-Abschnitts die Drehung.
   * ''Schalter'' (optional) = Position des Schalterausschnitts: ''weiter'' oder ''ende''.   * ''Schalter'' (optional) = Position des Schalterausschnitts: ''weiter'' oder ''ende''.
 +  * ''Anschluss'' (optional) = Schlüsselwort: ''idc'' druckt die IDC-Buchse mit, ''stack'' nur die Führung für die Platinenverbinder. Ohne Schlüsselwort bleibt der Tunnel offen; ''G<n>'' setzt die Anschlussart **nicht**.
 +
 +Werden beide Schlüsselwörter angegeben, steht ''Schalter'' **vor** ''Anschluss'':
 +''41,40,ende,idc'' ist gültig, ''41,40,idc,ende'' nicht.
  
 <code> <code>
 licht licht
-41,40,ende+41,40,ende,idc
 </code> </code>
  
Zeile 144: Zeile 200:
  
   * ''Abstand'' = horizontale Lage entlang der Wand, gemessen von der Ecke.   * ''Abstand'' = horizontale Lage entlang der Wand, gemessen von der Ecke.
-  * ''Höhe-über-Boden'' = Abstand der **Unterkante** vom Boden.+  * ''Höhe-über-Boden'' = Abstand der **Unterkante** vom Boden. Ist in der Offset-Zeile eine Fussbodenhöhe gesetzt, wird ab **Erdboden** gemessen statt ab dem Fussboden dieses Stockwerks.
   * ''Breite, Höhe'' = Größe der Öffnung.   * ''Breite, Höhe'' = Größe der Öffnung.
  
Zeile 169: Zeile 225:
 in der Zeile stehen: in der Zeile stehen:
  
-  * **Eine Zahl** → automatische Trennwand: Die Zahl ist die **Position** entlang der Wand. Die Trennwand wächst von der Außenwand nach innen bis zum Dachausschnitt der Platine. Die Lücke zwischen der Wand und der Stützwand der Platine wird entlang der Dachkante automatisch geschlossen.+  * **Eine Zahl** → automatische Trennwand: Die Zahl ist die **Position** entlang der Wand. Die Trennwand wächst von der Außenwand nach innen bis zum Dachausschnitt der Platine. Die Lücke zwischen der Wand und der Stützwand der Platine wird entlang der Dachkante automatisch geschlossen. Sind mehrere Platinen definiert, läuft die Wand zu der Platine, deren Mitte ihrem Ansatzpunkt an der Außenwand am nächsten liegt.
   * **Zwei Zahlen** (''Position, Länge'') → Trennwand mit **fester Länge**, es findet keine automatische Verbindung mit der Stützstruktur statt.   * **Zwei Zahlen** (''Position, Länge'') → Trennwand mit **fester Länge**, es findet keine automatische Verbindung mit der Stützstruktur statt.
  
 <code> <code>
 hinten hinten
-15,4,22.5,26     ← Fenster (4 Werte) +15,4,22.5,26     # Fenster (4 Werte) 
-72.5,4,22.5,26   ← Fenster (4 Werte) +72.5,4,22.5,26   # Fenster (4 Werte) 
-42               ← automatische Trennwand bei Position 42+42               # automatische Trennwand bei Position 42
 </code> </code>
  
Zeile 189: Zeile 245:
 zu Punkt. zu Punkt.
  
-**Format:** x1, y1, x2, y2 [, x3, y3, …] (2 bis 10 Punkte)+**Format:** x1, y1, x2, y2 [, x3, y3, …] (mindestens 2 Punkte, nach oben offen) 
 + 
 +Ein ''wand''-Abschnitt nimmt beliebig viele solcher Zeilen auf; jede ist eine 
 +**eigenständige** Wand.
  
 <code> <code>
 wand wand
-41,0,41,25,66,25,66,0+41,0,41,25,66,25,66,0    # ein Linienzug über drei Segmente 
 +27,0,27,22               # davon unabhängige zweite Wand
 </code> </code>
 +
 +**Linienzug über mehrere Zeilen:** Trägt eine Zeile nur **ein** Koordinatenpaar,
 +verlängert sie die zuletzt begonnene Wand um diesen Punkt – unabhängig davon, wie
 +viele Punkte deren vorige Zeile hatte. Eine Zeile mit **zwei oder mehr** Paaren
 +beginnt dagegen immer eine neue Wand.
 +
 +<code>
 +wand
 +10,10               # eine Wand
 +20,20               # über zwei
 +30,30               # Segmente
 +40,40,50,50         # neue Wand …
 +60,20               # … um einen Punkt verlängert
 +</code>
 +
 +<WRAP alert>Ein einzelnes Koordinatenpaar, das nichts fortsetzt und selbst nicht
 +fortgesetzt wird, ergibt kein Segment und wird als Fehler gemeldet.</WRAP>
  
 Auch hier messen negative Koordinaten von der rechten bzw. hinteren Raumkante. Auch hier messen negative Koordinaten von der rechten bzw. hinteren Raumkante.
 Die Wände können anhand der Außenmaße gesetzt werden, der Generator beschneidet Die Wände können anhand der Außenmaße gesetzt werden, der Generator beschneidet
 die Länge automatisch an der Außenhülle der Maske. die Länge automatisch an der Außenhülle der Maske.
 +
 +==== Fenster in einer freien Wand ====
 +
 +Ein einzelnes **gerades** Segment eines Linienzugs lässt sich benennen und bekommt
 +dann eigene Fenster – wie eine Außenwand. Der Name ist ein beliebiges Wort, das
 +hinter dem **Startpunkt** des Segments steht; das Segment endet am nächsten Punkt.
 +
 +**Format:** x1, y1, name, x2, y2 – oder zweizeilig, mit dem Endpunkt in der Folgezeile:
 +
 +<code>
 +wand
 +20,10,flur
 +20,50
 +</code>
 +
 +Der Name wird anschließend zum **Abschnitts-Schlüsselwort** für die Öffnungen. Sie
 +werden wie bei den Außenwänden angegeben, der Abstand misst dabei ab dem
 +Startpunkt der Wand (x1, y1):
 +
 +<code>
 +flur
 +5,0,8,12
 +25,4,6,8
 +</code>
 +
 +  * Der Name darf kein reserviertes Schlüsselwort sein (''raum'', ''wand'', ''vorne'', …) und nicht zweimal vergeben werden.
 +  * Der Fenster-Abschnitt muss **nach** der ''wand''-Zeile stehen, die den Namen vergibt – sonst ist der Name noch unbekannt und die Datei wird abgewiesen.
 +  * Benannt wird immer nur **ein** Segment, nicht der ganze Linienzug. Ein Linienzug kann mehrere benannte Segmente enthalten.
 +  * Ohne zugehörigen Fenster-Abschnitt bleibt das Segment eine normale freie Wand.
 +  * Anders als bei den Außenwänden ist der Abstand hier immer positiv; negative Werte werden nicht von der Gegenecke gemessen, sondern abgewiesen.
  
 ---- ----
Zeile 209: Zeile 316:
  
 ^ Zeile ^ Bedeutung ^ ^ Zeile ^ Bedeutung ^
-| Musterhaus | Text, automatisch platziert |+| Musterhaus | Text, automatisch platziert: 3 mm/3 mm von der vorderen linken Ecke des **Druckkörpers**, wandert also mit dem Offset |
 | 20,30,Musterhaus | Text an Position ''X,Y'' | | 20,30,Musterhaus | Text an Position ''X,Y'' |
 | 20,30,90,Musterhaus | Text an Position ''X,Y'' mit Drehung in Grad | | 20,30,90,Musterhaus | Text an Position ''X,Y'' mit Drehung in Grad |
Zeile 217: Zeile 324:
 Musterhaus Musterhaus
 </code> </code>
 +
 +Zwei Einschränkungen ergeben sich aus dem CSV-Format: Der Text darf **kein Komma**
 +enthalten (es trennt die Felder), und er darf nicht genauso heißen wie ein
 +Abschnitts-Schlüsselwort oder eine benannte Wand – ein solches Wort beendet den
 +''text''-Abschnitt, statt als Beschriftung zu gelten.
 +
 +----
  
 ===== Optional – Dachöffnungen (''dach'') ===== ===== Optional – Dachöffnungen (''dach'') =====
Zeile 222: Zeile 336:
 Zusätzliche Öffnungen in der Dachfläche, z. B. für Dachfenster oder zum Einbau weiterer LEDs von oben. Zusätzliche Öffnungen in der Dachfläche, z. B. für Dachfenster oder zum Einbau weiterer LEDs von oben.
  
-**Format:** ''X, Y, Breite, Tiefe'' (Ursprung vorne links)+**Format:** 
 +  * ''X, Y, Breite, Tiefe'' – rechteckiger Ausschnitt (Ecke bei X,Y, Ursprung vorne links) 
 +  * ''X, Y, <LED-Typ>'' – Öffnung passend zu einem LED-Typ (Mitte bei X,Y); die Geometrie wird wie in der Lichtbox erzeugt. Anstelle der Ausschnitt-Masse wird der Name des LED-Typs angegeben: ''none'' (auch ''keine''), ''3mm'', ''5mm'', ''plcc6'', ''plcc2'', ''ws2812''.
  
 <code> <code>
 dach dach
 44,10,5,5 44,10,5,5
 +55,40,ws2812
 </code> </code>
  
Zeile 236: Zeile 353:
  
 ^ Schlüssel ^ Bedeutung ^ Standard ^ ^ Schlüssel ^ Bedeutung ^ Standard ^
-| wand | allgemeine Wandstärke | 0.8 mm | +| aussen | Stärke der Außenwände | 1.2 mm (Minimum 0.8 mm) | 
-| aussen | Stärke der Außenwände | wie ''wand'' | +| innen | Stärke der Innenwände | 1.0 mm (Minimum 0.8 mm) | 
-| innen | Stärke der Innenwände | wie ''wand'' | +| dach | Stärke der Dachfläche | 1.2 mm (Minimum 1.2 mm, licht_h) |
-| dach | Stärke der Dachfläche | 1.0 mm |+
  
 <code> <code>
Zeile 245: Zeile 361:
 aussen,1.0 aussen,1.0
 dach,1.2 dach,1.2
 +</code>
 +
 +----
 +
 +===== Lichtbox-Modus (''box'') =====
 +<WRAP center round important 60%>
 +Der Lichtbox Modus ist noch in der Entwicklungsphase!
 +</WRAP>
 +
 +Statt einer kompletten Hausmaske (''raum'') lässt sich auch eine einzelne
 +**Lichtbox** erzeugen – ein kleiner Kasten, der über eine LED gestülpt wird und
 +das Licht gerichtet abgibt. Sobald das Schlüsselwort ''box'' verwendet wird,
 +schaltet der Generator auf den Lichtbox-Renderer (''lightbox.scad'') um;
 +''box'' und ''raum'' schließen sich gegenseitig aus.
 +
 +**Erste Zeile – Außenmaße (Pflicht):** Breite, Höhe, Tiefe
 +
 +<code>
 +box
 +40,25,15
 +</code>
 +
 +==== LED-Öffnungen (''oben'', ''links'', ''rechts'') ====
 +
 +Die Schlüsselwörter ''oben'', ''links'' und ''rechts'' setzen je eine (oder
 +mehrere) LED-Öffnung auf die entsprechende Fläche. Jede Öffnung ist eine eigene
 +Zeile, die mit dem **LED-Typ** beginnt:
 +
 +^ LED-Typ ^ Bedeutung ^
 +| ''none'' (auch ''keine'') | keine Öffnung |
 +| ''3mm'' | durchgehende Bohrung 3 mm |
 +| ''5mm'' | durchgehende Bohrung 5 mm |
 +| ''plcc6'' | PLCC6 (innen 4 mm, außen 6×6 mm) |
 +| ''plcc2'' | PLCC2 (innen 3 mm, außen 4×3 mm) |
 +| ''ws2812'' | innen 6×6 mm, außen 15 mm |
 +
 +**Format:** ''<typ> [, <clip>] [, offset_breite [, offset_tiefe]]''
 +
 +  * Nur ''<typ>'' → LED **mittig** auf der Fläche.
 +  * ''<clip>'' (optional, 2. Argument) → Halteclip: ''ohne'', ''einfach'' oder ''doppel''. Standard ist ''ohne'' und kann weggelassen werden.
 +  * ''offset_breite'' → Verschiebung **entlang der Vorderkante** der Fläche.
 +  * ''offset_tiefe'' → zusätzliche Verschiebung **in Tiefenrichtung (Z)**.
 +
 +Die Offsets messen von der **Flächenmitte** aus und dürfen der Kante nicht näher
 +als **5 mm** kommen.
 +
 +<code>
 +box
 +40,25,15
 +oben
 +plcc6, doppel
 +links
 +ws2812, 4
 +rechts
 +plcc2, einfach, 4, -2
 </code> </code>
  
Zeile 253: Zeile 424:
 <code> <code>
 licht licht
-41,40,ende+41,40,ende,idc
 raum raum
 110,78,35 110,78,35
Zeile 280: Zeile 451:
 Musterhaus Musterhaus
 </code> </code>
 +
 +----
  
3d_druck/mll-masken-generator.1782385983.txt.gz · Zuletzt geändert: von moba_nick