coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
placeholdersexpressionsoperatorsstatus codesbuffer storageglobal param.environ. values
object light window door wallend skylight label marker grid
title zone list addon

   
Syntax:
GLOB_WORLD_ORIGO_OFFSET_X
Aufklappen Range
Typ real
Aufklappen ArchiCAD
since 9.0
Aufklappen Description
Abstand in X-Richtung des derzeitigen Projektursprungs zum globalen Ursprung. Siehe Hintergrund.
Aufklappen Example:
s=1.1*0.5*GLOB_SCALE/100 !Zeilenabstand
t=s/5 !Markerbreite

!Absolute Positionen
GX=GLOB_WORLD_ORIGO_OFFSET_X+SYMB_POS_X
GY=GLOB_WORLD_ORIGO_OFFSET_Y+SYMB_POS_Y

!Prüfungen für IF-THEN-Bedingungen:
IT_PX = (ABS(SYMB_POS_X)>0.01)
IT_PY = (ABS(SYMB_POS_Y)>0.01)
IT_GX = (ABS(GLOB_WORLD_ORIGO_OFFSET_X)>0.01)
IT_GY = (ABS(GLOB_WORLD_ORIGO_OFFSET_Y)>0.01)

IF (ABS(GX)>0.01 OR ABS(GY)>0.01) AND (IT_PX OR IT_PY) THEN
 LINE2 -t,-t, t,t
 LINE2 -t,t, t,-t
 HOTSPOT2 0,0,3
 IF IT_GX OR IT_GY THEN
  T_posX = STR(SYMB_POS_X,4,1)
  T_posY = STR(SYMB_POS_Y,4,1)
  TEXT2 0,-s,"(" + T_posX + "/" + T_posY + ") virtuell"
  ENDIF
 TEXT2 0,0,"(" + STR(GX,4,1) + "/" + STR(GY,4,1) + ") absolut"
 TEXT2 0,s, "Objektnullpunkt"
 virtualname="Virtueller Projektursprung"
 ELSE
 virtualname="Objektnullpunkt = Virtueller Projektursprung"
 ENDIF

IF IT_GX OR IT_GY THEN
 ADD2 -SYMB_POS_X, -SYMB_POS_Y
 LINE2 -t,-t, t,t
 LINE2 -t,t, t,-t
 HOTSPOT2 0,0,2
 T_posX = STR(GLOB_WORLD_ORIGO_OFFSET_X,4,1)
 T_posY = STR(GLOB_WORLD_ORIGO_OFFSET_Y,4,1)
 TEXT2 0, 0, "(" + T_posX = + "/" + T_posY = + ")"
 TEXT2 0, s, virtualname
 DEL TOP
 origoname="WORLD ORIGO"
 ELSE
 origoname="WORLD ORIGO = Projektursprung"
 ENDIF

ADD2 -GX, -GY
LINE2 -t,-t, t,t
LINE2 -t,t, t,-t
HOTSPOT2 0,0,1
TEXT2 0,0, "(0,0/0,0)"
TEXT2 0,s, origoname
DEL TOP


2D-Skript für ein Beispielobjekt, das die Positionen des Objekteinsetzpunktes, des ursprünglichen und des virtuellen Projektursprunges markiert. Um einen Effekt zu erzielen, muß dass Objekt in einen leeren Plan sehr weit vom Ursprung platziert werden und dann das Projekt gespeichert, geschlossen und wieder neu geladen werden.
Aufklappen Parameter type:
Globaler Parameter/ READ
Aufklappen Background:
ArchiCAD® bezieht alle Zeichnungselemente in Position und Transformation auf den globalen Projektursprung. Bis ArchiCAD® 8.x konnte es vorkommen, dass extrem (>1000m) weit vom Ursprung verschobene Projekte bei der Berechnung der Darstellung Präzisionsprobleme verursachten und z.T. damit Programmabstürze provozierten. Ab ArchiCAD® 9 ist ein Sicherungsmechanismus eingeführt der beim neu Laden eines Projektes dessen Lage im "ArchiCAD-Raum" ermittelt und, wenn das Gebäude insgesamt sehr weit vom Ursprung entfernt ist, alle Elemente intern wieder Richtung (0/0) verschiebt. In der Grundrissbearbeitung bleibt dies unbemerkt, denn der (grau) sichtbare Projektursprung wird ebenfalls um diese Translation mitverschoben. Ebenso werden alle Koordinatenangaben in den Infofenstern entsprechend verändert. Es handelt sich um eine rein interne Korrektur.

Allerdings liefern die GDL-Variablen SYMB_POS_X und SYMB_POS_Y den Abstand des Objektursprunges zum Projektursprung. Und diese Werte beziehen sich nach einer solchen automatischen Korrektur nicht auf den ursprünglichen, sondern auf den neuen, internen Ursprung. Dessen Lage zum ursprünglichen kann nun mit den globalen Parametern GLOB_WORLD_ORIGO_OFFSET_X und GLOB_WORLD_ORIGO_OFFSET_Y ermittelt werden.

Es ist zu beachten, dass die automatische Verschiebung erst nach einem Schließen und neu Laden den Projektes ausgeführt wird. Die Verschiebung wird nur so ausgeführt, dass das vollständige Projekt wieder am Nullpunkt beginnt. Erstreckt sich das Projekt vom Nullpunkt aus über eine so ausgedehnte Größe, wird selbstverständlich keine Korrektur vorgenommen. Siehe Beispiel und Abbildungen.
Aufklappen References:
GDL-Handbuch 9.0 (DE) p. 225
GDL-Handbuch 10.0 (DE) p. 225
GDL-Handbuch 11.0 (DE) p. 231
GDL Reference Guide 9.0 (INT) p. 215
GDL Reference Guide 10.0 (INT) p. 223
GDL Reference Guide 11.0 (INT) p. 223

 





Abb.1: Das Objekt wird sehr weit vom Ursprung platziert.


Abb.2: Nach dem erneuten Laden ist der Nullpunkt verschoben. Nach einer erneuten Verschiebung des Objektes ergibt sich obiges Bild.