2025-01-09 10:06 AM - bearbeitet 2025-01-09 10:07 AM
Liebe Community!
Ich verwende sehr gerne das Objekt "3D Höhenkote" von Heimo Mooslechner.
Könnte mir jemand helfen wie ich es so umstellen/ umschreiben könnte, sodass mir der Wert "über Meeresspiegel" anstelle "bezogen auf Projekursprung" angezeigt wird?
Vielen Dank im voraus!
Claudia
Gelöst! Gehe zu Lösung.
am 2025-01-10 05:07 PM
gute Idee!
hier mal das geänderte Objekt in einer AC28EduAut-Datei:
Änderungen 10.1.2025: Normal-Null (Meereshöhe) alsOption hinzugefügt - einmal die Normal-Null des Projektes oder alternativ die Eingabe einer eigenen Höhenangabe.
neu angelegte Parameter:
"NN" - Schalter ob man die Normal-Null haben will - wenn ja, dann noch:
"eingeneNN" - wenn man dort eine Zahle eingibt, wird dann diese zur ermittelten Höhe des Objektes hinzugefügt, wenn dort 0 drin ist, dann nimmt es die Projekt-eingestellte Meereshöhe.
2D-Script:
Hotspot2 0, 0
Dingz = SYMB_POS_z
DEFINE STYLE BemTextStyle "Arial", zzyzx/3/GLOB_SCALE*1000, 8, 0
style BemTextStyle
circle2 0,0,ZZYZX/3
line2 -ZZYZX/3, 0, ZZYZX/3, 0
line2 0,-ZZYZX/3,0,ZZYZX/3
add2 0,zzyzx/3*1.2
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
TEXT2 0, 0, str(Dingz+Meereshohe, 7, 2)
else
TEXT2 0,0, str(Dingz, 7, 2)
endif
del 1
3D-Script:
EPS = 0.00001 !!!Einfach ein kleiner Wert..
!CameraX = GLOB_EYEPOS_X !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
!Cameray = GLOB_EYEPOS_y
!Cameraz = GLOB_EYEPOS_z
!Dingx = SYMB_POS_X
!Dingy = SYMB_POS_y
Dingz = SYMB_POS_z
!xdist = CameraX - Dingx
!ydist = Cameray - Dingy
!
!Dist = SQR(xdist^2 + ydist^2)
!
!
!
!
! beta = xdist/dist
! IF beta > 1 THEN beta = 1
! IF beta < -1 THEN beta = -1
!
! alpha2D = ACS (beta)
!
material Pfeilmat
!!! CONE h, r1, r2, alpha1, alpha2
CONE zzyzx, 0, zzyzx/3, 90, 90
hotspot 0,0,0,1
material Textmat
DEFINE STYLE BemTextStyle "Arial", zzyzx/GLOB_SCALE*30000, 8, 0
addz zzyzx * 1.05
style BemTextStyle
!addy zzyzx/3*1.2
! TEXT EPS, 0, str(Dingz, 7, 2)
!del 1
rotz 0! Alpha2D+90 !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
rotx 90
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
TEXT EPS, 0, str(Dingz+Meereshohe, 7, 2)
else
TEXT EPS, 0, str(Dingz, 7, 2)
endif
del 2
del 1
am 2025-01-10 05:07 PM
gute Idee!
hier mal das geänderte Objekt in einer AC28EduAut-Datei:
Änderungen 10.1.2025: Normal-Null (Meereshöhe) alsOption hinzugefügt - einmal die Normal-Null des Projektes oder alternativ die Eingabe einer eigenen Höhenangabe.
neu angelegte Parameter:
"NN" - Schalter ob man die Normal-Null haben will - wenn ja, dann noch:
"eingeneNN" - wenn man dort eine Zahle eingibt, wird dann diese zur ermittelten Höhe des Objektes hinzugefügt, wenn dort 0 drin ist, dann nimmt es die Projekt-eingestellte Meereshöhe.
2D-Script:
Hotspot2 0, 0
Dingz = SYMB_POS_z
DEFINE STYLE BemTextStyle "Arial", zzyzx/3/GLOB_SCALE*1000, 8, 0
style BemTextStyle
circle2 0,0,ZZYZX/3
line2 -ZZYZX/3, 0, ZZYZX/3, 0
line2 0,-ZZYZX/3,0,ZZYZX/3
add2 0,zzyzx/3*1.2
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
TEXT2 0, 0, str(Dingz+Meereshohe, 7, 2)
else
TEXT2 0,0, str(Dingz, 7, 2)
endif
del 1
3D-Script:
EPS = 0.00001 !!!Einfach ein kleiner Wert..
!CameraX = GLOB_EYEPOS_X !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
!Cameray = GLOB_EYEPOS_y
!Cameraz = GLOB_EYEPOS_z
!Dingx = SYMB_POS_X
!Dingy = SYMB_POS_y
Dingz = SYMB_POS_z
!xdist = CameraX - Dingx
!ydist = Cameray - Dingy
!
!Dist = SQR(xdist^2 + ydist^2)
!
!
!
!
! beta = xdist/dist
! IF beta > 1 THEN beta = 1
! IF beta < -1 THEN beta = -1
!
! alpha2D = ACS (beta)
!
material Pfeilmat
!!! CONE h, r1, r2, alpha1, alpha2
CONE zzyzx, 0, zzyzx/3, 90, 90
hotspot 0,0,0,1
material Textmat
DEFINE STYLE BemTextStyle "Arial", zzyzx/GLOB_SCALE*30000, 8, 0
addz zzyzx * 1.05
style BemTextStyle
!addy zzyzx/3*1.2
! TEXT EPS, 0, str(Dingz, 7, 2)
!del 1
rotz 0! Alpha2D+90 !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
rotx 90
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
TEXT EPS, 0, str(Dingz+Meereshohe, 7, 2)
else
TEXT EPS, 0, str(Dingz, 7, 2)
endif
del 2
del 1
am 2025-02-14 01:44 PM
Hallo Heimo!
Hat ein wenig gedauert, bis ich es ausprübieren konnte.
In ArchiCAD 27 hab ich es nämlich leider nicht geschafft das Skipt zu ändern, sodass es klappt.
Aber eben habe ich ArchiCAD 28 installiert und gleich Dein neues Objekt geöffnet.
Es funktioniert super! Vielen Dank dafür!!!
Deine 3D Höhenkote macht vieles für mich einfacher.
Ganz liebe Grüße,
Claudia
vor 3 Wochen
Aufgrund Deiner Anregung habe ich noch die Möglichkeit eines Präfixes hinzugefügt. Damit dies für den Nutzer möglichst einfach zu erreichen ist, ohne gleich die Dialogbox wieder öffnen zu müssen, bietet es sich an, die Element-ID des Elementes zu nutzen, welches ja immer in der Infoleiste oben editierbar ist.
AC28EduAut:
https://www.youtube.com/watch?v=xgDa4T0LFAo
vor 2 Wochen
master-script:
if IDON = 1 then
Praefix = GLOB_ID
else
praefix = ""
endif
2D-Script:
Hotspot2 0, 0
Dingz = SYMB_POS_z
DEFINE STYLE BemTextStyle "Arial", zzyzx/3/GLOB_SCALE*1000, 8, 0
style BemTextStyle
circle2 0,0,ZZYZX/3
line2 -ZZYZX/3, 0, ZZYZX/3, 0
line2 0,-ZZYZX/3,0,ZZYZX/3
add2 0,zzyzx/3*1.2
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
if IDON = 1 then TEXT2 0, 0, praefix + " " + str(Dingz+Meereshohe, 7, 2)
if IDON = 0 then TEXT2 0, 0, str(Dingz+Meereshohe, 7, 2)
else
if IDON = 1 then TEXT2 0,0, praefix + " " + str(Dingz, 7, 2)
if IDON = 0 then TEXT2 0,0, str(Dingz, 7, 2)
endif
del 1
3D-Script:
EPS = 0.00001 !!!Einfach ein kleiner Wert..
!CameraX = GLOB_EYEPOS_X !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
!Cameray = GLOB_EYEPOS_y
!Cameraz = GLOB_EYEPOS_z
!Dingx = SYMB_POS_X
!Dingy = SYMB_POS_y
Dingz = SYMB_POS_z
!xdist = CameraX - Dingx
!ydist = Cameray - Dingy
!
!Dist = SQR(xdist^2 + ydist^2)
!
!
!
!
! beta = xdist/dist
! IF beta > 1 THEN beta = 1
! IF beta < -1 THEN beta = -1
!
! alpha2D = ACS (beta)
!
material Pfeilmat
!!! CONE h, r1, r2, alpha1, alpha2
CONE zzyzx, 0, zzyzx/3, 90, 90
hotspot 0,0,0,1
material Textmat
DEFINE STYLE BemTextStyle "Arial", zzyzx/GLOB_SCALE*30000, 8, 0
addz zzyzx * 1.05
style BemTextStyle
!addy zzyzx/3*1.2
! TEXT EPS, 0, str(Dingz, 7, 2)
!del 1
rotz 0! Alpha2D+90 !!!Versuch den Text immer lesbar hinzudrehen - aber dies erfordert einen Neuaufbau 3D
rotx 90
if eingeneNN # 0 then
Meereshohe = eingeneNN
else
Meereshohe= GLOB_PROJECT_ALTITUDE
endif
if nn = 1 then
! TEXT EPS, 0, str(Dingz+Meereshohe, 7, 2)
! else
! TEXT EPS, 0, str(Dingz, 7, 2)
if IDON = 1 then TEXT EPS, 0, praefix + " " + str(Dingz+Meereshohe, 7, 2)
if IDON = 0 then TEXT EPS, 0, str(Dingz+Meereshohe, 7, 2)
else
if IDON = 1 then TEXT EPS, 0, praefix + " " + str(Dingz, 7, 2)
if IDON = 0 then TEXT EPS, 0, str(Dingz, 7, 2)
endif
del 2
del 1
vor 2 Wochen
Lieber Heimo!
Vielen, vielen Dank!
Das ist echt Spitze!
Ich hoffe, dass sich viele den Beitrag ansehen und davon profitieren können!
Ganz liebe Grüße,
Claudia
vor einer Woche
Tolle Arbeit Heimo,
aber ich frage mich, warum man nicht einfach das Koordinaten Objekt aus der Standard Bibliothek benutzt? Das kann doch schon alles oder?
vor einer Woche
Ganz einfach - ich kannte es nicht. Auch bei mir gibt es Wissenslücken. Große. 😂
vor einer Woche
wieder was gelernt 😛