Samstag
Habe den alten Code vom Esteban Ramos - "DYNAMIC POLYLINE ER" wieder mal ausgegraben und den Versuch gestartet, damit eine Lageberechnung aller Punkte zu starten, die nötig sind, eine im Verlauf polygonale Treppe herzustellen - mal nur als reines 2D-Element, um später mal die errechneten Punkte in weiterer Folge auch im 3D als echtes Volumenmodell nutzen zu können... Im Gegensatz zur Archicad-Treppe wären hier durchaus Überlappungen möglich.
https://www.youtube.com/watch?v=vbmbkY3om7Y
Samstag
Zum herumspielen damit - 3D Linien gehen nun auch.. AC28EduAut
Sonntag
Hab mal ChatGPT drauf angesetzt, mir eine Code mit den Grundelementen (GDL-Handbuch Seite 141) für die Grundlage des Gesamtkörpers zu liefern, weil ich eigentlich Befehle wie "Group" vermeiden will, wenn es irgendwie geht. Nach einigem Nachfragen hat er mir dabei auch wirklich einen einigermaß0e stimmenden Code geliefert, der mir für jede stufe einen geometrisch stimmenden Körper liefert, den ich nur noch anpassen müßte. Leider durchsichtig.
! Punkte der oberen Deckfläche (Stufenoberseite)
x1 = px1[i]
y1 = py1[i]
x2 = px2[i]
y2 = py2[i]
x3 = px1[i+1]
y3 = py1[i+1]
x4 = px2[i+1]
y4 = py2[i+1]
z_top = Hoehe * i ! Höhe der oberen Fläche
z_bottom = Hoehe * (i-1) ! Höhe der unteren Fläche
! Punkte definieren
vert x1, y1, z_top ! Punkt 1 oben
vert x2, y2, z_top ! Punkt 2 oben
vert x3, y3, z_top ! Punkt 3 oben
vert x4, y4, z_top ! Punkt 4 oben
vert x1, y1, z_bottom ! Punkt 5 unten
vert x2, y2, z_bottom ! Punkt 6 unten
vert x3, y3, z_bottom ! Punkt 7 unten
vert x4, y4, z_bottom ! Punkt 8 unten
! Punkt-Indices definieren
i1 = n_vert + 1
i2 = n_vert + 2
i3 = n_vert + 3
i4 = n_vert + 4
i5 = n_vert + 5
i6 = n_vert + 6
i7 = n_vert + 7
i8 = n_vert + 8
! Flächen der Stufe erzeugen
pgon 4, i1, i2, i4, i3, 1, 0 ! Deckfläche oben
pgon 4, i5, i6, i8, i7, 1, 0 ! Bodenfläche unten
pgon 4, i1, i2, i6, i5, 1, 0 ! Vorderfläche
pgon 4, i3, i4, i8, i7, 1, 0 ! Rückfläche
pgon 4, i1, i3, i7, i5, 1, 0 ! Seitenfläche links
pgon 4, i2, i4, i8, i6, 1, 0 ! Seitenfläche rechts
! Material für Flächen zuweisen
material Beton ! Zuweisung des Materials für alle Flächen
! Kanten erzeugen (sichtbare und versteckte Kanten)
! Diese Kanten sind für die Volumendarstellung nicht notwendig, da der Körper als Polygone dargestellt wird
! Falls du trotzdem Kanten zeigen möchtest, hier der Code:
edge i1, i2, 1, 1, 262144 ! Sichtbar, normale Kante
edge i2, i4, 1, 1, 262144 ! Sichtbar, normale Kante
edge i4, i3, 1, 1, 262144 ! Sichtbar, normale Kante
edge i3, i1, 1, 1, 262144 ! Sichtbar, normale Kante --> Obere Kanten
edge i5, i6, 1, 1, 262144 ! Sichtbar, normale Kante
edge i6, i8, 1, 1, 262144 ! Sichtbar, normale Kante
edge i8, i7, 1, 1, 262144 ! Sichtbar, normale Kante
edge i7, i5, 1, 1, 262144 ! Sichtbar, normale Kante --> Untere Kanten
edge i1, i5, 0, 1, 262144 ! Versteckt (Senkrecht)
edge i2, i6, 0, 1, 262144 ! Versteckt (Senkrecht)
edge i3, i7, 0, 1, 262144 ! Versteckt (Senkrecht)
edge i4, i8, 0, 1, 262144 ! Versteckt (Senkrecht)
! Nächster Schritt für die Punkte-Indices
n_vert = n_vert + 8
ich bekomme dann eben ein Liniengerüst. Was muss ich tun, um es als Volumenkörper zu bekommen?
Hier mal die Erste Stufe eingefärbt:
ChatGPT hilft mir heute nicht mehr. Wenn mir jemand die 20€ pro Monats-Variante bezahlt, kann ich bei sowas schneller weiterfragen.. 😉
Montag
Wenn du die Koordinaten hast, kannst du mit PGON, EDGE etc. den Körper aufspannen. Nach jeder Stufe ein BODY -1 und du kommst auch mit den Indizes nicht durcheinander. Ich habe das auf selfGDL eigentlich ganz gut mit Beispielen beschrieben.
gestern
Würde ich nicht mit immer neu gestarteten Indizes für jede Stufe einen eigenen Körper bekommen? Mir wäre es viel lieber, mit Raufzähl - Insizes einen durchgehenden Körper zu bekommen.. Die KI hat mir mal auf die Sprünge geholfen - aber "so richtig dort" bin ich noch nicht. Egal - läuft ja nichts davon.
gestern
Die Frage ist eher, was du willst und was geometrisch geht. Im Sinne von 1 Körper wird das nichts, wenn du Blockstufen modellierst, die sich nur an einer Kante berühren. Prinzipiell kannst du es auch ohne reset auf Index 0 durchzählen. Ging mir nur um die Übersichtlichkeit. Im IFC landet sowieso nur 1 Geometrie.
gestern - zuletzt bearbeitet vor 12 Stunden
Die Blockstufen sind nur ein Zwischenschritt. Mir ginge es um einen Volumenkörper analog zu einer Stahlbetontreppe mit Laufplatte und Keilstufen.
Als Liniengrafik - sowas:
ohne die Verbindungslinien seitlich..
Änderung zum vorigen Code:
vert x1, y1, z_bottom -Hoehe ! Punkt 5 unten. Hinterkante nach unten ziehen..
vert x2, y2, z_bottom -Hoehe ! Punkt 6 unten
Wahrscheinlich muss man die untere schräge verdrehte Fläche, die dann entsteht - in 2 Dreiecke aufteilen.