abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

3D-Obkjekt, 2D-Symbol variabel trotz 2D-Script ???

Anonymous
Nicht anwendbar
Hallo,

ich habe ein Problem mit GDL-Objekten und hoffe mir kann jemand helfen.

Ich erstelle grundsätzlich meine eigenen GDL-Objekte, weil ich
1. spezielle Objekte benötige (z.B. Kochkessel etc.) und
2. besondere Parameter erstelle, um mir eine eigene Medienliste erstellen zu können.

Ich zeichne mir in 3D ein Objekt mit Morphs, gehe in das 3D-Fenster (Perspektive), wähle alle Elemente aus und speichere es in meiner Bibliothek ab.
Danach passe ich das 2D-Symbol mit Linien, Schraffur und verdeckten Linien an und erstelle meine Parameter.

Das klappt soweit auch sehr gut. Doch ich würde gerne die Linienfarben ändern können.
Daher habe ich alle schwarzen Linien im 2D-Symbolfenster auf die Ebene 1 gelegt, alle grauen Linien auf Ebene 2 und die Schraffur auf die Ebene 3.

In das 2D-Script habe ich folgendes eingefügt:

pen pen_3
fragment2 1,1

pen pen_2
fragment2 2,1

pen pen_1
fragment2 3,1


... und natürlich die entsprechenden Parameter (pen_3, ...) erstellt.

Es hat prima funktioniert! Aber jetzt kann ich die Größe nicht mehr verstellen!! 😞 Wenn ich den Kessel nun etwas kleiner im Grundriss haben möchte, verändert sich das 2D-Symbol nicht mit. Das 3D-Objekt weiterhin schon...

Gibt es noch eine weitere Angabe, die das 2D-Symbol mit der Größenänderung anpasst? Ich finde einfach nichts...

Danke vorab 🙂

LG
Mareike
7 ANTWORTEN 7
Hmooslechner
Rockstar
Es gibt 2 Möglichkeiten der 2D-Darstellung:

1. gezeichnete Linien und Flächen
2. programmierte 3D-Darstellungen.

Bei den programmierten kannst Du zB. den "project2 3, 270, 2" - Befehl verwenden, um die 3D-Darstellung ins 2D zu projizieren. Dabei solltest Du die 2D-Linien dann rauslöschen..

Dann stimmt 2D und 3D zusammen.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Anonymous
Nicht anwendbar
Hallo Mareike,
versuche es mit:

mul2 A,B

als erster Befehl im 2d Skript.
Anonymous
Nicht anwendbar
@hmooslechner: Danke für die ausführliche Antwort. Doch ich benötige eine andere 2D-Darstellung als von dem 3D-Objekt, daher kommt hier erst einmal nur die gezeichnete Variante in Frage.

@koma: Das hat fast perfekt geklappt! Danke schon einmal. 😄
Ich hatte die Beschreibung für MUL2 auf der selfgdl-Seite so verstanden, dass dies nur den Skalierungsfaktor angibt (1=100%) -> Wohl falsch verstanden! 😄

Aber bei mir hat es sich tatsächlich verzerrt. Mit dieser Einstellung stimmen die Maße nun:

mul2 A-0.075,B+0.13935

Habe ich den falschen Basispunkt? Kann ich dies noch nachträglich ändern?
Wenn ich die Wert erst mit ADD2 eingebe funktioniert das nicht.

LG
Anonymous
Nicht anwendbar
Habe ich befürchtet.
Mul2, ist tatsächlich ein Skalierungsbefehl in 2D Bereich.
A ist die Länge wie im Einstellungsfenster der Objekte eingegeben,
B ist die Breite wie im Einstellungsfenster der Objekte eingegeben,

Wenn du dein Objekt platzierst mit der Grösse 1,00 und 1,00,
und das 2D-Abbild 1m lang und1m breit ist,
dann wird es bei der Grösse 1,50 und 1,00
1.50m lang und1.00m breit.

Wenn allerdings die Welt deiner Objekte nicht so simpel ist, brauchst du zwei Zauberzahlen, und der Befehl im 2D-Skrypt muss so aussehen:

Mul2 A/Zauberzahl1, B/Zauberzahl2

Solange im 2D-Skript nichts steht, wird das 2D-Symbol automatisch gesteuert.
Anonymous
Nicht anwendbar
Ich hatte die Beschreibung für MUL2 auf der selfgdl-Seite so verstanden, dass dies nur den Skalierungsfaktor angibt (1=100%) -> Wohl falsch verstanden!
Das hattest Du richtig verstanden.

AA= 0.7  !Länge des gezeichneten Objektes
BB= 0.4 !Höhe ...

MUL2 A/AA , B/BB


Die Streckung erfolgt aus dem aktuellen (!) Nullpunkt des Objektes heraus.

Um sicherzustellen, dass Zeichnung und 3D an gleicher Stelle und Abmessung liegen füge temporär ein:

PROJECT2 3,270,1


Es könnte auch sein, dass Du unter Optionen noch eine Einstellung findest, die das automatisch macht.
Anonymous
Nicht anwendbar
Hallo,

es hat nun leider etwas gedauert, aber ich hatte bis heute keine Zeit es auszuprobieren. Vielen Dank für die Hilfe!! 😄

Nun klappt alles wunderbar.

Ich habe es mit folgendem Code gemacht:


MUL2 A/*Länge des Objektes* , B/*Tiefe des Objektes*


Also ohne vorher festzulegen, dass
AA = *Länge des Objektes*

Viiiielen Dank 😄
Anonymous
Nicht anwendbar
PS: Aber ich glaube, ich mache es dennoch mit dem Schritt erst AA und BB festzulegen. Das ist "sauberer" und übersichtlicher. 😉

Danke noch einmal.

Liebe Grüße