am 2025-05-01 05:20 PM
Ich habe aus Wänden, Unterzügen und Morph Elektroschalter gezeichnet und diese als GDL- Objekt gespeichert. Damit ich in den Ansichten nun die Achsen der Elektroapparate vermassen kann muss ich einen Fangpunkt im Zentrum vom Apparat haben. Im Moment sind die Fangpunkte nur an den Ecken. Frage: Wie muss ich das 3D-Script ergänzen, damit im Zentrum ein Fangpunkt ist.
Ich bin absoluter Anfänger, wenn es um die GDL-Programmiersprache geht. Das sind meine ersten 3D GDL Objekte. Deshalb bitte bei Antworten beachten, dass kaum Kenntnis vorhanden ist. Besten Dank!
Gelöst! Gehe zu Lösung.
am 2025-05-01 10:43 PM
Die Syntax für einen fixen Hotspot lautet: HOTSPOT x, y, z(, hotID)
Die Hotspot-ID sollte man immer verwenden, wenn man etwas an den Fangpunkten bemaßen möchte.
Also z.B.
hotID = 1
HOTPSPOT 0.05, - 0.04, 0.05, hotID : hotID = hotID + 1
HOTPSPOT 0.05, - 0.04, 0.10, hotID : hotID = hotID + 1
HOTPSPOT 0.05, - 0.04, 0.15, hotID : hotID = hotID + 1
x, y, z, sind die Koordinaten der Hotspots (von mir angenommen) bezogen auf den Objektursprung, daher schreibe diese am besten ganz oben ins 3D-Script, damit Du nicht in einer Koordinatentransformation (ADD-Befehle) landest.
am 2025-05-01 10:43 PM
Die Syntax für einen fixen Hotspot lautet: HOTSPOT x, y, z(, hotID)
Die Hotspot-ID sollte man immer verwenden, wenn man etwas an den Fangpunkten bemaßen möchte.
Also z.B.
hotID = 1
HOTPSPOT 0.05, - 0.04, 0.05, hotID : hotID = hotID + 1
HOTPSPOT 0.05, - 0.04, 0.10, hotID : hotID = hotID + 1
HOTPSPOT 0.05, - 0.04, 0.15, hotID : hotID = hotID + 1
x, y, z, sind die Koordinaten der Hotspots (von mir angenommen) bezogen auf den Objektursprung, daher schreibe diese am besten ganz oben ins 3D-Script, damit Du nicht in einer Koordinatentransformation (ADD-Befehle) landest.
am 2025-05-01 10:56 PM
Hi zws, willkommen im Forum!
Der Befehl für einen Hotspot lautet "hotspot xx, yy, zz, ID
" – also überschaubar in der Parametrisierung: Das sind die Koordinaten plus ein eindeutiger numerischer Identifier.
Problem: Sobald man anfängt sich die Hotspots selber zu skripten, fliegen die automatisch gesetzten wieder raus; du hättest dann nur noch den gerade eingefügten. Daher musst du, sofern du die brauchst, die an den Ecken auch wieder skripten.
Wenn man Elemente so speichert, wie du, sollten eigentlich die Abmessungen der "Bounding Box" immer richtig gesetzt werden. Damit müsste es einfach sein, sich die Hotspots noch zu programmieren:
hotspot 0, B, 0, 1
hotspot A, B, 0, 2
hotspot 0, B, ZZYZX, 3
hotspot A, B, ZZYZX, 4
hotspot A/2, B, ZZYZX/2, 5
Geht jetzt davon aus, dass das Objekt parallel zur X-Achse gezeichnet wurde und mit den Schaltern in Richtung -Y.
Damit das auch so klappt, musst du diese Zeilen im 3D-Skript nah am Anfang zwischen den Zeilen, die mit "mul" beginnen und denen die mit "add" beginnen reinsetzen.
Happy coding!
am 2025-05-02 08:32 AM
Herzlchen Dank an Jochen Suehlo und runxel für eure sehr rasche Hilfe.
Habe die Fixpunkte mit eurer Hilfe nun da wo ich sie haben will!
Merci!
am 2025-05-02 09:09 AM
Nun habe ich festgestellt, dass im 3D die Fangpunkte nicht auf dem Objekt zu liegen kommen, sondern etwas davon entfernt sind. Wie kann ich das korrigieren?
Ich habe zwei Bildschirmfotos angehängt, eines vom 3D-Script und eines vom 3D wo ersichtlich ist, dass die Fangpunkte nicht auf dem Objekt sind.
Danke im Voraus für eure Hilfe.
am 2025-05-02 10:24 AM
Howdy zws,
Schreibe in die ERSTE ZEILE Deines 3D-Scriptes:
SPHERE 0.1
Die Mitte der Kugel ist Dein ABSOLUTER Bojekt-NULLPUNKT
Nun schreib ene Zeile VOR Deinem 1. eigenen HoSpo
SPHERE 0.1
Das ist der AKTUELLE Nullpunkt an dieser Stelle des 3D-Scriptes
Liegen beide Kugeln aufeinander, siehst Du KEINE Kugel.
(Linie löscht linie aus)
Mach Dir Schnitte und miss die Abstände.
Nun GDL-Handbuch lesen unter den Schlagworten:
ADD, ADDx, ADDy, ADDz, ROT, MUL
(MUL ist etwas tricky, aber flippig wenn man es mal braucht)
Achja, DEL ist SUPERWICHTTIG und
DEL TOP streiche bitte gleich aus Deinem Kopf!
Du kannst die erforderlichen DELs mitzählen, indem Du z.B.
cnt = 0
ADD 0.5,0.5.0,5 : cnt = cnt+1
ADDx 1.11 : cnt = cnt+1
SPHERE 0.222
DEL cnt
Ich mache das meist NICHT so, da es Rechenleistung frißt.
Ich mache meist:
ADD 0.5,0.5.0,5
ADDx 1.11
SPHERE 0.222
DEL 2
Es geht nat. auch:
ADD 0.5,0.5.0,5
ADDx 1.11
SPHERE 0.222
DEL 1
SPHERE 0.333
DEL 1
Es werden die DELs immer von "innen" nach "außen" zurückgesetzt.
Gruß Mario
am 2025-05-02 12:10 PM
Danke für die Rückmeldung.
Das Übersteigt nun meine Fähigkeiten definitiv. Es scheitert schon daran, dass die Kugel nicht weg ist (siehe Bildschirmfoto). Die Andere Frage ist, wo muss ich die Zeilen einfügen damit sich die Fangpunkte auf die richtige Ebene bewegen?
am 2025-05-12 01:40 PM
Hallo zws,
schau Dir Deinen SCREEN-SHOT an!
In Zeile 23 bis 26 macht das automatisch erstellte Script die entsprechenden Bewegungen im 3D-Raum.
Füge mal Dein Script danach ein!
Ein bisschen probieren und experimentieren musst Du schon.
Ich werde es Dir nicht scripten.
Nimm mal SPHERE 0.0001, sodass Du es einfacher erkennst wo der Mittelpunkt gerade im Raum ist!
Verschiebe / kopiere die SPHERE-Zeile an verschiedene Stellen in Deinem Script.
Ändere den Durchmesser und spiele ein bisschen rum.
Achja, GDL arbeitet IMMER in METER.