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
am 2025-06-07 07:32 AM
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
am 2025-06-07 04:59 PM
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
am 2025-06-12 12:01 PM
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
am 2025-06-14 09:32 PM
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?
am 2025-06-14 09:40 PM
Ganz einfach - ich kannte es nicht. Auch bei mir gibt es Wissenslücken. Große. 😂
am 2025-06-14 09:50 PM
wieder was gelernt 😛