abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Das 2025 Technology Preview Programm ist jetzt verfügbar. Jetzt teilnehmen!

Programmierung
Alles über Programmierung in GDL und Python

Standard-Ankerpunkt für Objekt definieren

user1_1
Participant

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

1 ANTWORT 1
runxel
Hero

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".

 

runxel_0-1758625970988.png

 

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.

Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»