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

Etiketten - Was geschieht im Hintergrund - was macht Archicad selber?

Hmooslechner
Moderator

Ich habe bei meinem alten Listen-Etikett herumprobiert, um es ein wenig zu aktualisieren. Ursprünglich habe ich es so programmiert, dass man den Archicad-Etikettenpfeil gar nicht benutzt und habe lieber einen eigene Linie hinzugefügt. Wenn ich aber die Archicad-Pfeil-Option doch nutzen will, dann springt mein Etikett ziemlich erratisch herum, wenn ich die Lage verändere.  Seltsamerweise wird der Bereich des Etikettes dann in X und y irgendwie eingeschränkt und in einen Bereich X und Y positiv "zurückgeschoben". Archicad macht da was Seltsames - sicherlich extrem gut durchdacht aber eben nicht so gut dokumentiert für uns Wald und Wiesen-Scripter...

 

Gibts da irgendeine sinnvolle (und leicht verständliche) Doku drüber?

 

Hab auch versucht, mit einem simplen Etikett, welches ich Archicad selber herstellen ließ, mir mal anzuschauen, was da so drinsteht und Teile davon mal selber mit reingenommen, aber irgendwas seltsames passiert damit trotzdem "unter der Haube".

 

https://www.youtube.com/watch?v=Zv69kYrLT_Q

 

 

Operating system used: Mac Apple Silicon Sonoma 14/5

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
7 ANTWORTEN 7
Hmooslechner
Moderator

Nochmals im Vergleich: ohne Zeiger - mit Zeiger..

 

https://www.youtube.com/watch?v=YKyd0ACkw2A

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Jochen Suehlo
Moderator

probier mal:

add2 LABEL_POSITION[2][1] + LABEL_POSITION[3][1], LABEL_POSITION[2][2] + LABEL_POSITION[3][2]

(eventuell mit Fallunterscheidung, ob Zeiger an oder aus, ich weiß nicht mehr so genau aus dem Kopf)
Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

Danke für den Versuch. Inzwischen bin ich draufgekommen, daß Archicad das umschließende Rechteck meiner Darstellung nimmt und es immer an die Endposition des Zeigers schiebt. Da ich ja selber eine Linie hinzugefügt hatte, um auf den Einsetzpunkt meines Elementes zu zeigen, nimmt er diesen natürlich in das umschließende Rechteck mit hinein - was zu der aus meiner Sicht  - "erratischen" Bewegung geführt hat. Das habe ich nun "erraten". 🤣

 

Solange ich diese meine Zeigerlinie ausschalte, funktioniert es somit wirklich wie ein normales Archicad-Etikett.

 

Hab mal spaßhalber ChatCPT gefragt - mit welcher Variable  ich erkenne, ob ein Zeiger eingeschaltet ist oder nicht und bekam folgenden Dialog:

 

Frage: Wie erkenne ich im GDL eines Etikettenelementes, ob der Zeiger, also der Pfeil, eingeschaltet der ausgeschaltet ist?
 
ChatGPT:
Im GDL-Skript von ArchiCAD können Sie überprüfen, ob der Zeiger eines Etikettenelementes aktiviert oder deaktiviert ist, indem Sie die Variable LABELARROW verwenden. Diese Variable ist eine systemdefinierte GDL-Variable, die den Status des Zeigers im Etikettenobjekt anzeigt.
Hier ist ein Beispiel, wie Sie diese Variable in Ihrem GDL-Skript verwenden können:
gdl
! Überprüfen, ob der Zeiger eingeschaltet ist

if LABELARROW then ! Der Zeiger ist eingeschaltet

! Zeichnen Sie den Zeiger oder führen Sie Aktionen durch, wenn der Zeiger eingeschaltet ist

line2 0, 0, 1, 1

else ! Der Zeiger ist ausgeschaltet

! Handeln Sie entsprechend, wenn der Zeiger ausgeschaltet ist text2 0, 0, "Kein Zeiger aktiviert"

endif

 

Nun existiert halt kein LABELARROW..

Bei Nachfrage meint ChatCPT lapidar - dann müsse ich eben selber rausfinden,wie es geht..😂 😎

 

An grundsätzlichen Ziel von CahtCPT - "den Nutzer zufriedenszustellen "- (aber nicht die Wahrheit zu sagen), hat sich noch nichts geändert.

 

LABEL_HAS_POINTER wäre die richtige Abfrage...

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator

Zwischenstand:

 

https://www.youtube.com/watch?v=kvSRIqSxyNs

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator

Habe weitergetüftelt, um den selber gemachten "Zeiger" automatisch dynamisch folgen zu lassen. Nun rechnet er vom Etiketten-Mittelpunkt Richtung Einsetzpunkt den Rechtecks-Kanten - Schnittpunkt zur kürzesten Verbindung. Diese Endpunkte des "Zeigers" sind aber trotzdem noch verschiebbar, ohne, dass man in irgendein Menü rein muss oder in der Infoleiste was schalten muss. Der Archicad - Zeigerpfeil ist trotzdem nutzbar. Wenn man den einschaltet, wird meine Zeiger halt ausgeschalten.

 

https://www.youtube.com/watch?v=yK-ZKuBfi4Y

 

 

Es folgen noch einige Kleinigkeiten, bevor ich es über die Dropbox freigebe.

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator

Update: Zeigerpfeil teilbar mit orthogonalen Ausrichtungs-hotlines

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator

Diesmal "ziemlich" vollständig:

 

https://www.dropbox.com/scl/fi/s2z7ogasgk49ehac8koco/Tabelle-als-Etikett-AC27-c.pln?rlkey=tffr33bdss... 

Genauere 'Erklärung, was mit dem Teil alles möglich sein wird, wenn mal die restlichen "Bugs" ausgemerzt sind: Ein Tabellen-Etikett, welches entweder eine Textliste mit Zahlenwerten summiert darstellen kann - mit Überschrift - entweder ID des angeklickten Elementes oder die Schichtliste der Baumaterialen oder die Schichtliste der Schraffurnamen. Die Tabelle kann mit Anfassen positioniert, gedreht oder skaliert werden und reagiert nicht auf Maßstabsänderungen (absichtlich). Der Archicad-Zeiger kann genutzt werden. Wenn man den Zeiger nicht nutzt, kann ein im GDL vorhandener Zeiger genutzt werden, der generell von Einsetzpunkt zum Mittelpunkt der Tabelle zeigt aber nur den Rand der Tabelle sichtbar berührt. Dieser Zeiger kann einen Anfangspfeil oder einen Anfangs-Kreispunkt haben und kann in 2 Teile zerbrochen werden, wobei der Teilungspunkt dann an orthogonale Hotlines ausgerichtet werden kann. Beide Endpunkte des Zeigers können beliebig verschoben werden - der Randpunkt kann aber mittels Rand-Hotlines wieder am Rand eingerastet werden.

 

 

https://www.youtube.com/watch?v=heAhieJY4EE

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia

Setup info provided by author