abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

3D-Stab (Zylinder)

Hmooslechner
Moderator
Ich habe mir einen Stab gebastelt, den ich mit Anfassern im 3D einfach an irgendwelche 3D-Kanten oder Morphlinien anpassen kann, ohne auf Drehwinkel oder Ebenen achtgeben zu müssen..

https://www.dropbox.com/s/rz6lb4nvkdogetf/3D-Cylinder.gsm


gosub 1 ! Einstellungen usw.

gosub 100 ! Hotspots

gosub "Cylinder"


end ! ------------------------------------------------------

1:
uid = 1
return





100 : !!! ========== Hotspots ein Segment ==========

!!! ----- x -----
hotspot 0 , y, z, uid, x, 1+128 : uid = uid+1 ! base
hotspot -1 , y, z, uid, x, 3 : uid = uid+1 ! ref
hotspot x , y, z, uid, x, 2 : uid = uid+1 ! move

!!! ----- y -----
hotspot x , 0, z, uid, y, 1+128 : uid = uid+1
hotspot x , -1, z, uid, y, 3 : uid = uid+1
hotspot x , y, z, uid, y, 2 : uid = uid+1

!!! ----- z -----
hotspot x , y, 0, uid, z, 1+128 : uid = uid+1
hotspot x , y, -1, uid, z, 3 : uid = uid+1
hotspot x , y, z, uid, z, 2 : uid = uid+1


return




"Cylinder":
h = SQR(x^2+y^2+z^2)

roty 90
rotx -atn(y/x)
roty -atn(z/SQR(x^2+y^2))
material Mat
Cylind h, QRadius
del 3

if Endkugeln = 1 then
sphere QRadius
addx x
addy y
addz z
sphere QRadius
del 3
else
endif

return


Besser wäre es, wenn auch der Anfangspunkt anfasser hätte.
Das Script ist sehr einfach zu erweitern, wenn es ums Einbinden anderer Profile geht.

Mit Endkugeln habe ich es mir einfach gemacht, Elementverbindungen zu simulieren.

Was könnte man bei dem Ding noch verbessern?

Das Konzept mit den freien 3D-Anfassern ließe sich auch auf ganz andere Elemente übertragen - zB. auf Dachrinnen, Zäune, die dem Gelände folgen usw.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
5 ANTWORTEN 5
Hmooslechner
Moderator
Derzeit führt der Script noch zu einem inkonsistenten Verhalten. Man kann es zwar umgehen, aber es ist lästig:

Wenn man das Ding eingesetzt hat, schiebt man das Teil mit dem unteren Punkt auf ein 3D-Element. Dann klickt man den oberen Punkt an und verschiebt diesen in 3D an ein anderes im 3D anfassbares Teil. Zwischen beiden Punkten erscheint ein Stab.

Allerdings kann es passieren, dass sich der Stab um z spiegelt, wenn man über einen gewissen Winkel im Grundriss rausdreht. da bin ich noch nicht dahintergekommen. Man sieht es im "Geisterbild" während des Ziehens, wie es "umspringt". Workaround: einfach den anderen Punkt auf den gewünschten ziehen und umgekehrt ausführen. - ist lästig..

Was mach ich da falsch?
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
Hier zum downloaden:

https://bimcomponents.com/GSM/Details/14850

Im Browser ist keine Vorschau verfüpgbar, denn damit habe ich mich nicht beschäftigt 🙄
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
http://archicad-talk.graphisoft.com/viewtopic.php?p=211751#211751
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
Nun als 3D-Polygon, zT. Code geklaut von Mr. Dentan (http://archilib.od.pagesperso-orange.fr/)

Damit man das Potential erkennen kann:

http://www.youtube.com/watch?v=I8YM9icDNyo&feature=youtu.be

und zum selber ausprobieren als 16er Edu:

https://www.dropbox.com/s/t8ffq0a1pekd1 ... quenzB.pln

Hier wäre dann einiges sehr einfach möglich - zB:

Zäune oder Wände folgen im Gefälle dem 3D-Gelände
Geländerfolgen durch den Raum zeichnen lassen - nicht nur auf einer Ebene - zB. Als Geländer für einen kompletten Stiegenlauf samt oberer Absturzsicherung..
Wirrste Raumgitter zeichnen
Kanal in 3D zeichnen und dann alles damit machen - weil alle Vektoren bekannt sind. - selbst einen 2D - Längenschnitt generieren und und und..
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
Bei dem Ding verwende ich einen Trick um die 4 Quadranten der Winkeländerungen zwischen den Segmenten im Griff zu halten.

Wenn der User einen Punkt auf eine Hilfslinie (y) zieht, kann es zur Hälfte vorkommen, dass dann Tan 90° rauskommt - was nicht geht.

Y2 = das Ergebnis einer Subtraktion zweier Anordnungs-Variablen.

	y2 = (y[k1+1] - y[k1])



Deshalb habe ich einfach bestimmt - bei zB :
if y2 = 0 then y2=EPS 

und EPS ist dan eben 0.0001

Da meckert mir Archicad verständlicherweise wegen "Die Verwendung von realen Typen kann zu Präzesionsproblemen führen bei Zeile 189..."

Gibts hier andere Lösungen - ( Ja sicher! ) - oder kann man die nervige Box ausschalten?

Das Teil funktioniert aber trotz dieser Meldung klaglos!
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia