am 2025-09-22 05:32 PM
Hallo liebe Community.
Ich bin neu im GDL-programmieren, habe mich mittlerweile einige Stunden eingelesen und auch schon mein erstes dynamisches Objekt erstellt und versuche mich nun an einer Abwandlung eines bestehenden Objekts "Gefälle Beschriftung" der Archicad Standardbibliothek 26. Ich hänge derzeit am Problem, den Standard-Ankerpunkt für mein Objekt neu zu definieren. Dieser wird beim Hotspot2 mit der Koordinate "0,0" gesetzt, ich möchte ihn aber auf den Hotspot2 mit der Koordinate "A,0" ändern, da an diesem Punkt die bereits programmierte dynamische Pfeilspitze liegt.
Aus meiner Sicht sollte ich mit der Korrektur des nachfolgenden Teil des Codes zu mienem Ziel kommen:
unID = 1
HOTSPOT2 0,0,unID : unID=unID+1
HOTSPOT2 0,0,unID,a,1+128 :unID=unID+1
HOTSPOT2 a,0,unID,a,2 :unID=unID+1
HOTSPOT2 -1,0,unID,a,3 :unID=unID+1
HOTSPOT2 a/2,0,unID : unID=unID+1
Ich kann zu dierser Problemstellung im GDL-Skript nichts finden. Ich hörte, dass die Flag "+128" an den zweiten Hotspot verschoben gehört. Mache ich das, geht der Hotspot allerdings verloren...
Kann mir da jemand aushelfen?
Beste Grüße, 1_1
am 2025-09-23 01:23 PM
Das ist vielleicht ein bisschen verwirrend, weil der "Hotspot" zwei verschiedene Aufgaben erfüllt:
Der Hotspot alleine ist erstmal nur ein Angreifpunkt, dargestellt mit dem standardmäßig schwarz gefüllten Kreis in der Sicht (z.B. Grundriss beim hotspot2).
Die drei Hotspots zusammen ergeben dann ein System, welches dem User ermöglicht das Objekt direkt zu manipulieren. Das sind dann die pinken Rauten.
Du fragst erst nach dem "Standard-Ankerpunkt".
Der Einsetzpunkt eines Objekts ist im Regelfall der erste im Script auftauchende Hotspot, nicht der mit der kleinsten unID (die ID muss nicht einmal fortlaufend sein...).
Man kann allerdings im Vorschaufenster den Einsetzpunkt jederzeit ändern! Man klickt einfach auf ein anderes "X".
Im Anschluss zeigst du uns aber Code für einen beweglichen Hotspot.
Hotspot Typ 1 ist der Basispunkt. Dieser Punkt ist der "Nullpunkt" für die nachfolgende Transformationssteuerung. Wenn man diesen Punkt nicht sehen will, kann man ihn mit der 128 Flag unsichtbar machen. Umgekehrt kann man mit der 256 Flag diesen Punkt als steuerbar kennzeichnen; dann wird er auch pink und die Richtung der Bewegung kehrt sich um.
Der Hotspot vom Typ 2 ist der bewegliche Punkt und kann niemals ausgeblendet werden (macht ja auch keinen Sinn).
Typ 3 ist der Referenzpunkt und ist der negative Vektor der Bewegung. Dieser ist immer verborgen.
Dein Code
hotspot2 0, 0, unID, A, 1+128 : unID=unID+1
hotspot2 A, 0, unID, A, 2 : unID=unID+1
hotspot2 -1, 0, unID, A, 3 : unID=unID+1
erzeugt also einen pinken, bewglichen Hotspot an der Koordinate (A,0) und steuert die Breite.
Wenn du willst, dass Archicad das Objekt beim Klicken auf die Position (A,0) einfügt kannst du den Hotspot (ohne Typnummer) einfach als erstes nochmal definieren. Diese Dopplung ist harmlos.
am 2025-09-26 04:46 PM
Hallo runxel!
Vielen Dank für deine Erklärung. So ganz funktioniert es aber noch nicht, oder ich habe es falsch verstanden... Ich habe nun einen weiteren Hotspot an erster Stelle positioniert, beim Rücksetzen auf die Standardeinstellungen meines Objektes bleibt der Standardeinfügepunkt aber immer noch die Koordinate 0,0 und nicht A,0... Hier der Code:
HOTSPOT2 a,0
HOTSPOT2 0,0,unID,a,1+128 :unID=unID+1
HOTSPOT2 a,0,unID,a,2 :unID=unID+1
HOTSPOT2 -1,0,unID,a,3 :unID=unID+1
Auch das rausstreichen der "+128"-flag oder das Ändern derer auf "+256" (wie von dir beschrieben) erzeugt keine Nicht-Sichtbarkeit oder zusätzlichen Steuerhebel...
Was mache ich falsch?
am 2025-09-26 08:20 PM
Mh, eigentlich nüscht! Schaut alles gut aus, – und – ich kann das hier bei mir nicht nachstellen....
Erst recht nicht, wenn man dem Basispunkt den 128er Flag mit beigibt – denn dann sollte er ja gar nicht mehr zu sehen sein.
Dein Code, um ein line2 0, 0, A, 0 erweitert, gibt mir brav das hier im Vorschaufenster:
Also alles gut, genauso wie von dir gewollt.
Bedeutet: kann nur drei Möglichkeiten geben:
Eins davon muss die Ursache sein 😄
am 2025-09-29 12:11 PM
Hallo User1_1,
mach doch einfach eine Koordinaten-Tansformation mittels ADD.
Verschiebe Deinen gewünschten Nullpunkt und "alles danach" auf den vorhandenen Nullpunkt.
Klar, kostet ein bisschen Rechenleistung.
Ob man einen beweglichen HoSpo (2) als NULL-Pkt. nutzen kann, weiß ich nicht, glaube ich aber auch nicht.
Vergiss das DEL 1 am Ende des Scriptes NICHT!
ADD2 A,0
!!! Dein Script
DEL 1
Dopplung von HoSpos ist totale ... beim Bemaßen.
Die Bemaßung verknüpft sich mit der HoSpo-Nr. ( ist sinnig).
Ich pfusche ja ganz gern mal, aber da bin ich total pingelig.
Gruß Mario
am 2025-09-29 01:18 PM
@Ma_SchtAC27 schrieb:
Dopplung von HoSpos ist totale ... beim Bemaßen.
Die Bemaßung verknüpft sich mit der HoSpo-Nr. ( ist sinnig).
Ich pfusche ja ganz gern mal, aber da bin ich total pingelig.
Solange die übereinanderliegenden Hotspots nicht irgendwann divergieren, sollte es keine negativen Effekte geben.
Tatsächlich kommt der zuletzt definierte Hotspot zuoberst zu liegen und wird mit der Bemaßung verknüpft.
Außerdem: bei zweidimensionalen Hotspots (also in X wie Y Richtung) müssen die beiden Hotspots ja zwangsweise übereinander liegen.
am 2025-10-01 10:09 AM
Ich komme derzeit leider nicht dazu eure Vorschläge auszuprobieren, aber sobald wieder etwas Luft bei mir ist, werde ich mich definitiv dran setzen. Danke einstweilen für eure Ratschläge! Freue mich schon, mein Bibliothekselement weiter zu optimieren 🙂
Gruß 1_1