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

Editierbare Hotspots 2D-3D

Hmooslechner
Rockstar
Ich habe den Fall, dass ein Script im 2D funktioniert, praktisch das Selbe in 3D funktioniert hingegen nicht richtig.

Ich will bei meinem Fensterobjekt die horizintalen Balken oder vertikalen Steher drehen können.

Dazu habe ich im 2D folgenden Code gestrickt:

		

for ii = 1 to 20

!x control Position des Elementes
HOTSPOT2 0, RTY[ii][2], unID,RTY[ii][1],1+128, displayParam,"Lage Senkrechte" :unID=unID+1 !BASE
HOTSPOT2 RTY[ii][1], RTY[ii][2], unID,RTY[ii][1],2, displayParam,"Lage Senkrechte" :unID=unID+1 !MOVE
HOTSPOT2 -1, RTY[ii][2], unID,RTY[ii][1],3, displayParam,"Lage Senkrechte" :unID=unID+1 !REF
!y control
HOTSPOT2 RTY[ii][1], 0, unID,RTY[ii][2],1+128, displayParam,"Lage Senkrechte" :unID=unID+1 !BASE
HOTSPOT2 RTY[ii][1], RTY[ii][2], unID,RTY[ii][2],2, displayParam,"Lage Senkrechte" :unID=unID+1 !MOVE
HOTSPOT2 RTY[ii][1], -1, unID,RTY[ii][2],3 , displayParam,"Lage Senkrechte" :unID=unID+1 !REF



if abs(RTY[ii][1])-0.01 > 0 then !!! Winkel des Elementes

add2 RTY[ii][1], RTY[ii][2]
rot2 90

HOTSPOT2 0, 0, unID, RTY[ii][6], 6, displayParam,"Winkel Senkrechte" :unID=unID+1 !BASE
HOTSPOT2 0.15, 0, unID, RTY[ii][6], 4, displayParam,"Winkel Senkrechte" :unID=unID+1 !MOVE
HOTSPOT2 0.15*COS(RTY[ii][6]), 0.15*SIN(RTY[ii][6]),unID, RTY[ii][6], 5, displayParam,"Winkel Senkrechte" :unID=unID+1 !REF


rot2 RTY[ii][6]
add2 deltay, 0
!Länge control
HOTSPOT2 0, 0, unID,RTY[ii][3],1+128, displayParam,"Länge Senkrechte" :unID=unID+1 !BASE
HOTSPOT2 RTY[ii][3],0, unID,RTY[ii][3],2, displayParam,"Länge Senkrechte" :unID=unID+1 !MOVE
HOTSPOT2 -1, 0, unID,RTY[ii][3],3, displayParam,"Länge Senkrechte" :unID=unID+1 !REF
del 2

del 2

else
endif





next ii




Mir geht es um den Hotspot nach Rot2 90 - in der Mitte des Beispieles - welcher das Teil dann drehen soll.
In der 2D-Darstellung funktioniert dies perfekt.


Wenn ich das Gleiche im 3D versuche und schreibe sieht das so aus:




for ii = 1 to 20

!x control Position des Elementes
HOTSPOT 0, RTY[ii][2], 0, unID,RTY[ii][1],1+128, displayParam,"Lage Senkrechte" :unID=unID+1 !BASE
HOTSPOT RTY[ii][1], RTY[ii][2], 0, unID,RTY[ii][1],2, displayParam,"Lage Senkrechte" :unID=unID+1 !MOVE
HOTSPOT -1, RTY[ii][2], 0, unID,RTY[ii][1],3, displayParam,"Lage Senkrechte" :unID=unID+1 !REF
!y control
HOTSPOT RTY[ii][1], 0, 0, unID,RTY[ii][2],1+128, displayParam,"Lage Senkrechte" :unID=unID+1 !BASE
HOTSPOT RTY[ii][1], RTY[ii][2], 0, unID,RTY[ii][2],2, displayParam,"Lage Senkrechte" :unID=unID+1 !MOVE
HOTSPOT RTY[ii][1], -1, 0, unID,RTY[ii][2],3 , displayParam,"Lage Senkrechte" :unID=unID+1 !REF



if abs(RTY[ii][1])-0.01 > 0 then !!! Winkel des Elementes

addx RTY[ii][1]!-gs_frame_thk/2
addy RTY[ii][2]
rotz 90
HOTSPOT 0, 0, 0, unID, RTY[ii][6], 6+128, displayParam,"Drehwinkel" :unID=unID+1 !BASE
HOTSPOT 0.15, 0, 0, unID, RTY[ii][6], 4, displayParam,"Drehwinkel" :unID=unID+1 !MOVE
HOTSPOT 0.15*COS(RTY[ii][6]), 0.15*SIN(RTY[ii][6]), 0, unID, RTY[ii][6], 5, displayParam,"Drehwinkel" :unID=unID+1 !REF
del 1



rotz RTY[ii][6]+90 !!! Länge des Elementes
addx DeltaY
!Länge control
HOTSPOT 0, 0, 0, unID,RTY[ii][3],1+128, displayParam,"Länge Senkrechte" :unID=unID+1 !BASE
HOTSPOT RTY[ii][3], 0, 0, unID,RTY[ii][3],2, displayParam,"Länge Senkrechte" :unID=unID+1 !MOVE
HOTSPOT -1, 0, 0, unID,RTY[ii][3],3, displayParam,"Länge Senkrechte" :unID=unID+1 !REF
del 2

del 3


else
endif


Hier findet man die Zeilen nach RotZ 90 in der Mitte

Diese Drehung funktioniert ebenfalls - aber nur dann, wenn der Winkel nicht auf "0" steht.

Wenn der Winkel auf 0 steht, wird die Bearbeitungsebene normal zur Kameraposition gedreht - und es erscheint keine Eingabemöglichkeit - bzw das kleine Koordinatenfenster verschwindet.

Ich nehme an, dass dies einfach darauf beruht, dass ich in 3D irgend ein Flag nicht kenne - oder eben ein echter Bug in Archicad existiert.

Dies passiert in der Windows-Version. Am Mac habe ich es nicht getestet.

Hier das Video, worum es geht:





Danke im Voraus für Eure Hilfe. Oder wäre das eher was was für den Support?
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
2 ANTWORTEN 2
Anonymous
Nicht anwendbar
Kein bug. Bei Winkel gleich null sind Referenzachse und bewegliche Achse komplanar. Und damit die Drehebene nicht definiert. Da fehlt der defnierende Parameter (der Ebenennormalen). -> Handbuch. Ich glaube, es ist der 7er. Hatten wir schon öfter hier, glaube ich.
Hmooslechner
Rockstar
Danke - das war es!

Mir war nicht bewußt, dass ich im 3D 4 Zeilen brauche!

So muß es sein - eine eigene für den 7er!



HOTSPOT 0, 0, 0, unID, RTY[ii][6], 6+128, displayParam,"Drehwinkel" :unID=unID+1 !BASE
HOTSPOT 0.15, 0, 0, unID, RTY[ii][6], 4, displayParam,"Drehwinkel" :unID=unID+1 !MOVE
HOTSPOT 0, 0, 1, unID, RTY[ii][6], 7, displayParam,"Drehwinkel" :unID=unID+1 !NORMALVEKTOR
HOTSPOT 0.15*COS(RTY[ii][6]), 0.15*SIN(RTY[ii][6]), 0, unID, RTY[ii][6], 5, displayParam,"Drehwinkel" :unID=unID+1 !REF

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