3dfg 3D Furniture Generator

App öffnen

Blitzschnell Möbel zeichnen

schreinertool Referenz

Diese Seite beschreibt die Eigenschaften der Zeichnungssprache. Ein Projekt besteht aus Textzeilen. Die erste Zeile beschreibt das Projekt, jede weitere Zeile beschreibt einen Korpus oder ein Teil.

Grundform

projektname mat.19,wh - Projektzeile mit Name und Material.

a teil.sl,sr,bo,de,rw,eb breit.80 tief.40 hoch.72 - Korpus a mit Teilen, Breite, Tiefe und Höhe.

b dock.a,,0_b,,3 breit.40 tief.40 hoch.72 - Korpus b, verbunden mit Korpus a.

Eine Zeile beginnt mit dem Namen, danach folgen Eigenschaften.

a breit.80 tief.40 hoch.72 - Korpus a mit expliziten Maßen.

Vererbung und integrierte Korpusse

Ein Korpus kann von einem anderen Korpus erben. Dabei steht der neue Name vor dem Punkt, der vorhandene Korpus nach dem Punkt.

b.a x.100 - Korpus b erbt von a und bekommt zusätzlich x.100.

Ein Korpus kann auch fest in einen anderen Korpus integriert werden. Dafür steht der Parent vor dem Punkt.

a.griff teil.fr breit.12 tief.2 hoch.2 x.40 y.-2 z.36 - griff gehört fest zu a.

Wird a später kopiert oder wiederholt, wird a.griff automatisch mitkopiert.

Auch geerbte Korpusse nehmen integrierte Kinder mit:

b.a x.100 - erzeugt neben b auch b.griff, wenn a.griff existiert.

Zahlen

Maße werden in Zentimetern angegeben. Materialstärken in der Projektzeile werden in Millimetern geschrieben.

Erste Zeile

test_regal mat.19,wh mat.8,gr - Projektname mit zwei Materialien.

Die erste Zeile enthält:

mat.19,wh - Material 1, 19 mm stark, Farbe wh.

mat.19,dunkelblau,16 - Material mit sprechendem Farbnamen, 19 mm stark, Farbe dunkelblau, Preis 16.

Teile

teil legt fest, welche Teile ein Korpus enthält. teil gehört nur an den Korpus, nicht an einzelne Teile. Die Reihenfolge ist wichtig.

a teil.sl,sr,bo,de,rw,eb - Korpus a mit Seiten, Boden, Deckel, Rückwand und Einlegeboden.

Neue Schreibweise:

a teil.sl,sr,bo,de,rw,eb - Teileliste mit 2-Zeichen-Teilkürzeln.

Teilkürzel:

Richtungen

Eigenschaften

Kürzel-System

Die Sprache trennt kurze Namen optisch nach Länge:

Damit bleiben Teile kompakt, während Befehle und Eigenschaften als gut lesbare Schlagwörter erscheinen.

Wichtige Schlagwörter:

Beispiele im neuen Raster:

a.fr.zie.v.2

a.rw.drk.h.1

a.de.dre.z.90

a.copy.z.7

a.fr.cut.y.3,25

Das liest sich wie eine kleine CAD-Maschinensprache: erst Objekt, dann Aktion, dann Richtung oder Wert.

Mehrere Teile können vor einem Befehl als Gruppe stehen:

sl,mw,sr.cut.y.3,25 - linke Seite, Mittelwand und rechte Seite in y schneiden.

Ungleiche Teilung geht mit einer Werte-Liste:

fr.cut.x.20,30,rest - Front in x in 20, 30 und Rest schneiden.

fr.cut.x.20,g2,30,rest - wie oben, mit 2 Abstand zwischen den Stücken.

Optional kann es explizit als Array markiert werden: fr.cut.x.arr.20,30,rest. Mit arr gehen auch nur zwei Werte: fr.cut.z.arr.20,30. Stückmaße ab 10 werden bei zwei Werten ebenfalls als ungleiche Teilung gelesen: fr.cut.z.20,30.

Punktwerte gehen vom Groben zum Feinen:

Dasselbe Prinzip gilt für y, z, breit, tief und hoch, auch an Teilen: fr.x.4, fr.breit.40, sl.hoch.n2,g1.

Aliase

Aliase sind Kurzbefehle fuer haeufige Korpusformen. Sie bleiben im Text sichtbar und werden nur intern vor dem Berechnen erweitert.

b sk.a,14,3 - erzeugt einen Schubkasten b in Korpus a, Hoehe 14 cm, reihe.o.3.

Das entspricht intern:

b teil.sl,sr,fr,rw,bo breit.a.c.w tief.a.c.d hoch.14 dock.a,g,1 push.-2 mat.3 reihe.o.3

Parameter:

Wenn der Alias sichtbar ausgeschrieben werden soll, wird als vierter Parameter e geschrieben:

b sk.a,14,3,e

a leg.22,4 - erzeugt vier Beine mit 22 cm Höhe.

Das entspricht intern:

a leg.22,4

a leg.22,2 - erzeugt zwei Beine mit 22 cm Höhe.

Maße

breit.80 tief.40 hoch.72 - Breite, Tiefe und Höhe ausgeschrieben.

Position

x.20 - Position nach rechts.

y.10 - Position nach vorne.

z.5 - Position nach oben.

Material

Material kann am Korpus oder am Teil gesetzt werden.

mat.1 - Material am Korpus.

rw.mat.2 - Material an der Rückwand.

fr.mat.1 - Material an der Front.

Verkleinern und Erweitern

push.8 - kann für Sockel- oder Korpusverkürzungen verwendet werden.

fr.push.0.4 - verkleinert die Front an den passenden Seiten um 0,4 cm.

eb.push.2f - verkürzt den Einlegeboden vorne um 2 cm.

eb.push.2f,1b - verkürzt den Einlegeboden vorne und hinten unterschiedlich.

sl.push.7f,9tg - verkürzt die linke Seite vorne um 7 cm und oben/unten um 9 cm.

Rahmen

sl,sr.rah.8,-u - macht linke und rechte Seite zu einem Rahmen mit 8 cm breiten Rahmenhölzern; -u lässt das untere Rahmenholz weg.

Wiederholen

reihe.r, reihe.l, reihe.v, reihe.h, reihe.o, reihe.u erzeugen Wiederholungen.

reihe.r.3,10 - drei Wiederholungen nach rechts mit Abstand 10.

reihe.v.2,5 - zwei Wiederholungen nach vorne mit Abstand 5.

reihe.o.4,20 - vier Wiederholungen nach oben mit Abstand 20.

Der erste Wert ist die Anzahl. Der zweite Wert ist der Abstand. Kurzformen: nr.3,10, nl.3,10, nv.3,10, nh.3,10, no.3,10, nu.3,10.

Cut

cut.x, cut.y, cut.z schneidet ein Teil in mehrere kleinere Teile.

fr.cut.x.3,5 - Front in x-Richtung in drei Teile schneiden, Abstand 5.

fr.cut.y.2,1 - Front in y-Richtung in zwei Teile schneiden, Abstand 1.

fr.cut.z.4,2 - Front in z-Richtung in vier Teile schneiden, Abstand 2.

Der erste Wert ist die Anzahl der Teile. Der zweite Wert ist der Abstand zwischen den Teilen.

Kombinationen erzeugen ein Gitter:

fr.cut.x.3,5 fr.cut.z.2,4 - Gitter aus x- und z-Teilung.

fr.cut.x.2,5 fr.cut.y.3,2 fr.cut.z.2,4 - erzeugt 2 x 3 x 2 Teile.

Ungleiche Werte können direkt an Maß oder Position stehen:

sl.hoch.40,30,6g,20,1 - erzeugt mehrere ungleiche Höhenstücke; 6g oder g6 ist der globale Abstand zwischen allen Stücken, eine abschließende 1 füllt bis Ende.

sl.hoch.2/2,1g(gap) - teilt die Höhe in zwei gleiche Stücke mit 1 cm Abstand.

sl.breit.dito - übernimmt die letzte Wertfolge.

sl.x.1,10,20 - wiederholt das Teil mit ungleichen x-Positionen.

Innenaufteilung

layout und cols erzeugen automatisch Mittelseiten und Fachböden.

a breit.300 tief.60 hoch.220 layout.30:4,240:2,rest:3

Bedeutung:

Die nötigen Mittelseiten und Fachböden werden automatisch erzeugt. Die Breiten sind lichte Spaltenbreiten; Mittelseiten werden dazwischen eingerechnet.

Kurzform für gleichmäßige Spalten:

a breit.300 tief.60 hoch.220 cols.3:4

Das erzeugt 3 gleich breite Spalten mit jeweils 4 Fächern.

Eigene Stärken sind möglich:

a breit.100 tief.50 hoch.100 cols.2:3 mw.anz.3 eb.anz.2

Das erzeugt zwei Spalten mit drei Fächern, Mittelseiten mit 3 cm Stärke und Fachböden mit 2 cm Stärke.

Verbinden

dock dockt einen Punkt des aktuellen Korpus an einen Zielpunkt an.

b dock - verbindet den aktuellen Korpus mit dem vorherigen Korpus.

b dock.a,,0_b,,3 - verbindet Punkt 0 des aktuellen Korpus mit Punkt 3 von Korpus a.

b dock.fr,0,a,bo,3 - verbindet Front, Ecke 0, mit Korpus a, Boden, Ecke 3.

Format: dock.aktuelles_teil,aktuelle_ecke,ziel_korpus,ziel_teil,ziel_ecke.

Wenn nur dock geschrieben wird, wird der aktuelle Korpus mit dem vorherigen Korpus verbunden.

fix hat die gleiche Zielsyntax wie dock, setzt den Zielkorpus aber zusätzlich als Elternkorpus. Die Teile des fixierten Korpus werden dadurch als Teile dieses Elternkorpus behandelt.

b fix.a,,3 - dockt b an a und integriert b in den Elternkorpus a.

An zwei Punkte anpassen

fit berechnet Breite, Tiefe und Höhe aus zwei Punkten. Punkt 1 wird als Zielpunkt gesetzt.

b fit=a,g,1_a,c,7 - berechnet die Maße von b aus den Punkten a,g,1 und a,c,7.

Das bedeutet:

Drehen

dre dreht mit Achse und Winkel.

dre.z.45 - dreht den Korpus um 45 Grad um die z-Achse.

sl.dre.z.9 - dreht die linke Seite um 9 Grad um die z-Achse.

dre.x.15 - dreht um die x-Achse.

Darstellung

vi steuert die Darstellung.

vi=wf - Drahtmodell.

vi.dim - Maßansicht automatisch aktivieren.

vi.dim vi.wf - Maßansicht und Drahtmodell gemeinsam setzen.

vi.nolabel - Labels ausblenden.

vi.label - Labels wieder anzeigen, z.B. für einen einzelnen Korpus nach globalem vi.nolabel.

fr.vi=t4 - Transparenzstufe für die Front.

Punkte

Ein Punkt besteht aus Korpus, Teil und Ecke.

a,sl,1 - Korpus a, linke Seite, Ecke 1.

Ecken

Vorne: 0 unten links, 1 oben links, 2 oben rechts, 3 unten rechts.

Hinten: 4 unten links, 5 oben links, 6 oben rechts, 7 unten rechts.

Kommentare und Deaktivieren

-a teil.sl,sr,bo,de,rw,eb breit.80 tief.40 hoch.72 - deaktivierte Zeile.

Alles hinter # ist Kommentar. Kommentare am besten hinter den Code schreiben. Zeilen oder Blöcke mit - werden deaktiviert.