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

kapselartiges Objekt

zzyzx
Newcomer
ich benötige ein Kapselartiges Teil (also ein Zylinder mit je einer Halbkugel an den Enden), aber ohne die Deckflächen des Cylinds und die Schnittflächen der halbierten Kugel.
das Teil soll natürlich parametrisch sein.
Parameter: Länge (des Zylinders) und dessen Radius
man könnte dies nun ganz einfach mit einem Linienzug, den man um eine Achse rotieren lässt, hinbekommen (Befehl im 3D Skript: revolve...), wenn man nur die verflixten Statuswerte im Griff hätte...
wer weiss rat (und den 3D Skript Text?)

[ 10-03-2003, 16:20: Beitrag editiert von: zzyzx ]
15 ANTWORTEN 15
Anonymous
Nicht anwendbar
r=1 : h=3

h=max(0,h-2*r) : s=1
revolve 6,360,0,
r,0,900+s,
0,0,s,
r,r,3000+s,
h+r,r,s,
h+r,0,900+s,
0,-89.999,4000+s

Du kannst auch statt des Winkels -89.999 mal -90 probieren, aber durch Rundungsungenauigkeiten (?) bekomme ich dabei einen Fehler.
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
Here we go:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">r=0.5 ! Radius der Halbkugel
la=2 ! Länge des geraden Stücks

revolve 5, 360, 1+2+4+8+16+32,
0,0,1,
0,1,800,
r,r ,1001,
r+la,r ,1,
2*r+la,0 ,1001
AC4.5-AC27 AUT, GER, INT
www.a-null.com
Anonymous
Nicht anwendbar
😉
zzyzx
Newcomer
genau das isses!!!
danke, leute.
.
... mein Problem ist bei diesen Statuswerten: was muss/kann vor einem dieser speziellen Werte kommen; ich hätte etwa beim Skript von Bernd in der zweiten Zeile eher ein 0,0,601, erwartet (tut auch, muss aber offenbar nicht sein).
oder: nach dem Vektor gehts mit einem tangentialen Bogen weiter. das ist irgendwie ja logisch, aber trotzdem nicht so ganz leicht (finde ich zumindest)
.
toll wäre eine Tabelle mit diesen Statuswerten, die erläutert, was vorher kommen sollte, was nachher kommen sollte und auch was vorher bzw. nachher keinen Sinn macht.
😉 :winken: :winken:
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
schon mal den GDL-Onlinekurs www.gdl-kurs.net angeschaut.
HIER werden die Statuswerte behandelt.
AC4.5-AC27 AUT, GER, INT
www.a-null.com
Anonymous
Nicht anwendbar
Siehe zusätzliche Mask- und Statuswerte des viel geschmähten GDL-Handbuchs. Z.B. Version 6.0 S.135ff
zzyzx
Newcomer
... ja, schon: der Kurs ist auch ganz anschaulich (das gdl Handbuch in diesem Fall leider nicht), aber es gibt einfach ein paar dinge, die mir bislang nicht so ganz klar waren (oder noch sind...), etwa was da jeweils vor und nach einem besonderen Statuswert erwartet wird.
etwa:
vor einem Tangentialen Bogen zum Endpunkt (Statuswert 1000) muss entweder eine Gerade oder ein Vektor (Statuswert 800) sein.
.
wäre nicht schlecht, wenn wir eine Regelliste für diese Statuswerte aufstellen könnten, oder bin ich der einzige, der´s einfach nicht blickt???
Anonymous
Nicht anwendbar
Die Statuswerte sind eine Abbildungsvorschrift, die ähnlich der Transformation des Koordiantensystems funktionieren. Nach jedem Punkt liegt die Tangente in einer bestimmten Richtung (Vektor aus den letzten 2 Punkten, zu Beginn in X-Richtung - ist das korrekt Bernhard?). Danach richtet sich der nächste Statuswert. Wird ein Kreismittelpunkt für den nächsten Statuswert benötigt, mußt Du diesen vorher (!) setzen. Das ist eigentlich alles. Punkte mit dem Statuswert 800/900 erzeugen natürlich keinen Polygonzug, sondern bereiten 'das System# für die nächsten Koordinaten vor.

Eine Regelliste wird schwierig, weil es von Deinem Polygon abhängt. Z.B. wäre eine Regel:
'Der Bogen mit dem Statuswert 1000 wird definiert aus Endpunkt und der Tangentenrichtung, die vor dieser Koordinatenanweisung besteht'. Und genau das steht mit anderen Worten im Handbuch. 😉

[ 11-03-2003, 12:00: Beitrag editiert von: Lars ]
Bernhard Binder
Graphisoft Partner
Graphisoft Partner
Also:
vor einem tangentialen Bogen zum Endpunkt muss eine Tangente vorhanden sein. Als Tangente nimmt ArchiCDA entweder die letzte Gerade an oder eben eine Tangente, die man mit Statuswert 800 angibt.

in meinem Beispiel muss zuerst eine Tangente angegeben werden, da er am Anfang ja nur einen Punkt (0|0) hat. beim 2. Bogen dann braucht er keine Angabe der Tangente, da die letzte Gerade (r|r) -> (r+la|r) als Tangente dient.
AC4.5-AC27 AUT, GER, INT
www.a-null.com