3D Scripting‎ > ‎

Oberflächen und Körper aus Polygonen


Diese Oberflächen und Körper werden durch einfache ebene Elemente und einer Konstruktionsregel erstellt, zB. Rotation oder Translation. Sofern durch die Parameter einen geschlossene Oberfläche erzeugt wird, verhält sich dieser Körper wie ein richtiger Volumenkörper, d.h. bei assoziativen Schnitten wird die Schnittfläche entsprechend den Einstellungen (z.B. als Füllfläche) erzeugt und man "sieht" nicht in die hohle Form, sondern die Kanten, die "hinter" der Schnittfläche liegen, werden als verdeckte Kanten gerendert. Wenn man das Smartpart auflöst (mittels "Makro auflösen"), können die 3D Körper mit den Modellierwerkzeugen weiter bearbeitet werden (Körper vereinen oder abziehen, Schnittkörper erzeugen, ...).

EXTRUDE

Mit EXTRUDE verschiebt die Grundfläche entlang einer Geraden im Raum und erzeugt damit einen 3D Körper.

EXTRUDE n, dx, dy, dz, mask, x1, y1, s1, ... , xn, yn, sn

n: Anzahl der Polygonknoten
dx, dy, dz: Verschiebungsvektor in X, Y und Z-Richtung
mask = j1 + j2 + j3: Bitmaske, steuert die Erzeugung der Grund-, Deck- und im Fall eines offenen Polygons der Seitenflächen.

  • j1 = 0|1: Grundfläche wird erstellt
  • j2 = 0|2: Deckfläche wird erzeugt
  • j3 = 0|4: im Falle eines offenen Basispolygons wird eine schließende Seitenflächen erzeugt
xi, yi: Koordinaten der Polygonknoten in der XY-Ebene
si: Statuscodes

MESH

MESH erstellt ein Polygonnetz auf einer rechteckigen Grundfläche mit den Kantenlängen a und b. Der Ausgangspunkt des Netzes liegt im Koordinatenursprung, die Abstände der Knoten werden gleichmäßig in X- und Y-Richtung entsprechend der Parameter m, n ausgeteilt, die Höhe der einzelnen Knotenpunkte kann individuell angegeben werden.

MESH a, b, m, n, mask, z11, z12, ... , z1m, z21, z22, ... , z2m, zn1, zn2, ... , znm

a: Länge des Basisrechtecks in X-Richtung
b: Länge des Basisrechtecks in Y-Richtung
m: m Knoten für die Seite a (X-Achse), muss ≥ 2 sein.
n: n Knoten für die Seite b (Y-Achse), muss ≥ 2 sein.
mask: j1 + j2, bestimmt die Existenz der Grund- und Seitenflächen

  • j1 = 1: Grundflächen werden erstellt
  • j2 = 4: Seitenflächen werden erstellt
z(i,j): Höhe des korrespondierenden Netzknotens

MESH_B

MESH_B erzeugt eine Oberfläche aus Dreiecken, die eine Bezierfläche annähert. Ausgangspunkt sind m x n Kontrollpunkte für die Berechnung der Bezierfläche. Es stehen zwei Berechnungsmethoden zur Verfügung:

  1. adaptive Methode: Die Anzahl der Berechnungsabschnitte wird von Allplan angepasst, Randbedingung ist, dass der Abstand der Bezierfläche zum Mittelpunkt der Näherungsfläche kleiner als der Parameter rise ist.
  2. statische Methode: es werden für die m-Richtung m_subdiv und für die n-Richtung n_subdiv Berechnungsabschnitte zur Netzgenerierung verwendet.

Die adaptive Berechnungsmethode wird angewendet, wenn subdiv_m oder subdiv_n ≤ 2 ist. Die Kontrollpunkte der Definitionskurven sind an keinen fixen Raster gebunden.

MESH_B m, n, subdiv_n, subdiv_m, rise,
x11, y11, z11, x12, y12, z12, ... ,
x1m, y1m, z1m, x21, y21, z21, x22, y22, z22, ... ,
x2m, y2m, z2m, ... , xn1, yn1, zn1, xn2, yn2, zn2, ... ,
xnm, ynm, znm

m, n: Anzahl Kontrollpumkte für Bezierflächenberechung in m- bzw. n-Richtung
subdiv_n, subdiv_m: Anzahl der Berechnungsabschnitte in m- und n-Richtung
rise: max. Abstand zwischen Näherungsfläche und Bezierfläche, muss bei adaptiver Methode > 0 sein
xij, yij, zij: X-, Y- und Z-Koordinaten der Kontrollpunkte

MESH_C

Erzeugt eine gekrümmte Freiformfläche (coon's patch). Die Definition erfolgt über die Festlegung von vier umfassenden Polygonzüge.

MESH_C n, m, mask, x11, y11, z11, ... , x1n, y1n, z1n, x21, y21, z21, ... , x2n, y2n, z2n, x31, y31, z31, ... , x3m, y3m, z3m, x41, y41, z41, ... x4m, y4m, z4m

n: Anzahl Knoten in X-Richtung
m: Anzahl Knoten in Y-Richtung
mask: wird von Allplan nicht unterstützt
xij, yij, zij: Koordinaten der Begrenzungspolygone in der Reihenfolge: 1. Polygon_n, 2. Polygon_n, 1. Polygon_m, 2. Polygon_m

MESH_P

Erzeugt eine gekrümmte Freiformfläche (coon's patch). Die Definition erfolgt über n x m Kontrollpunkte, für alle Stützpunkte müssen die (x, y, z) Koordinaten angegeben werden.

MESH_P top_material, bottom_material, side_material, n, m, mask, h, x1, y1, z1, s1, ... , xn, yn, zn, sn, xn+1, yn+1, zn+1, sn+1, ... , xn+m, yn+m, zn+m, sn+m

top_material: Material für die Darstellung der Oberseite als Integer oder String
bottom_material: Material für die Darstellung der Bodenfläche als Integer oder String
side_material: Material für die Darstellung der Seitenflächen als Integer oder String
n: Anzahl Knoten in X-Richtung
m: Anzahl Knoten in Y-Richtung
mask = j1 + j3: steuert die Darstellung der Boden- und Seitenflächen

  • j1 = 0|1: Bodenfläche wird dargestellt
  • j3 = 0|4: Seitenflächen werden dargestellt
h: Basishöhe
xi, yi, zi: Koordinaten der Knotenpunkte
si: steuert die Darstellung der Liniensegmente
  • si = 0: das Liniensegment mit dem Startpunkt xi, yi, zi wird nicht dargestellt
  • si = 1: das Liniensegment mit dem Startpunkt xi, yi, zi wird dargestellt
  • si = -1: damit werden Aussparungen definiert

PYRAMID

Mit PYRAMID können gerade und schiefe Pyramiden erzeugt werden, die Grundfläche liegt in der XY-Ebene, die Spitze der Pyramide liegt bei den Koordinaten (0, 0, h). Zur Erzeugung des Basispolygon können die üblichen Statuscodes verwendet werden.

PYRAMID n, h, mask, x1, y1, s1, ..., xn, yn, sn

n: Anzahl Polygonkonten
h: Höhe der Pyramide, Z-Koordinate der Pyramidenspitze
mask = j1 + j3: Bitmaske, steuert die Erzeung der Grund-, und im Falle eines offenen Basispolygons, der Seitenflächen.

  • j1 = 0|1: Grundfläche wird erzeugt
  • j3 = 0|4: Seitenflächen werden erzeugt
xi, yi: Koordinaten der Polygonknoten
si: Statuscodes

REVOLVE

Mit REVOLVE erzeugt man Rotationskörper durch rotieren eines Randpolygons um die X-Achse. Das Randpolygon liegt in der XY-Ebene und kann die üblichen Statuscodes enthalten.

REVOLVE n, alpha, mask, x1, y1, s1, ... , xn, yn, sn

n: Anzahl der Polygonknoten
alpha: Rotationswinkel
mask = j1 + j2 + j3 + j4: steuert die Erzeugung der Grund-, Deck- und für den Falle, dass alpha < 360° ist, der Seitenflächen.

  • j1 = 0|1: Grundfläche wird erzeugt
  • j2 = 0|2: Deckfläche wird erzeugt
  • j3 = 0|4: Seitenfläche am Startwinkel () wird erzeugt.
  • j4 = 0|8: Seitenfläche am Endwinkel alpha wird erzeugt.
xi, yi: Koordinaten des Randpolygons
si: Statuscodes

RULED

RULED Verbindet zwei ebene Polygone mit der selben Anzahl an Eckpunkten zu einem 3D Körper. Das Basispolygon liegt in der XY-Ebene, das 2. Polygon kann frei im Raum liegen. Die Polygonkanten werden mit Dreiecken oder wenn beide Kanten einen ebene Fläche bilden, mit Vierecken verbunden.

RULED n, mask, u1, v1, s1, ... , un, vn, sn, x1, y1, z1, ... , xn, yn, zn

n: Anzahl der Eckpunkte eines Polygons, beide Polygone müssen gleiche Anzahl an Eckpunkten haben.
mask = j1 + j2 + j3: steuert die Oberfächenerzeugung und -darstellung.

  • j1 = 0|1: eine Bodenfläche wird erstellt
  • j2 = 0|2: eine Deckfläche wird erstellt
  • j3 = 0|4: Seitenflächen werden erstellt
ui, vi: Koordinaten des 1. ebenen Polygons in der XY-Ebene si: die üblichen Statuscodes
xi, yi, zi: Koordinaten des 2. ebenen Polygons in räumlicher Lage

RULED_2

RULED_2 ist die fehlertolerante Version des RULED Befehls.

SWEEP

SWEEP erzeugt eine röhrenförmige Oberfläche durch das Verschieben eines Konturpolygons entlang eines räumlichen Pfadpolygons. Um den Röhrenquerschnitt zu verdrehen, verjüngen oder zu erweitern, kann das Konturpolygon während der Verschiebung skaliert und rotiert werden. Die Ebene der Konturlinie folgt dem Pfadpolygon, die Ebene der Konturlinie ist immer normal zu den Kanten des Pfadpolygon.

Das Pfadpolygon muss in der XY-Ebene beginnen (z1 = 0), ist diese Voraussetzung nicht erfüllt, wird das Pfadpoylgon entlang der Z-Achse verschoben bis das Polygon in der XY-Ebenen beginnt.

SWEEP n, m, alpha, scale, mask, u1, v1, s1, ... , un, vn, sn, x1, y1, z1, ... ,xm, ym, zm

n: Anzahl Knoten des Konturpolygons, hier unbedingt notwenig, da der Unterschied zwischen Kontur- und Pfadpolygon nicht durch Allplan bestimmt werden kann. Und Anzahl Knoten = Anzahl der Zahlentripel (also auch Mittelpunkt- und Tangentendefinitionen)
m: Anzahl Knoten des Pfadpolygons
alpha: inkrementeller Rotationswinkel des Konturpolygons, wird bei jedem durchlaufen des Konturpolygons durch einen Knoten des Pfadpolygons hinzu addiert.
scale: inkremeteller Skalierungsfaktor des Kontupolygons, wird bei jedem durchlaufen des Konturpolygons durch einen Knoten des Pfadpolygons angewendet.
mask = j1 + j2 + j3: steuert die Darstellung der Deck-, Boden- und Seitenflächen

  • j1 = 0|1: Bodenflächen werden dargestellt
  • j2 = 0|2: Deckflächen werden dargestellt
  • j3 = 0|4: Seitenflächen werden dargestellt
ui, vi: X- und Y-Koordinaten des Konturpolygons
si: die üblichen Statuscodes
xi, yi, zi: X-, Y- und Z-Koordinaten des Pfadpolygons

TUBE

Mit TUBE erzeugt man röhrenförmige Objekte durch verschieben eines geschlossenen Konturpolygons entlang eines zweiten räumlichen Pfadpolygons. In jedem Pfadknoten wird das formgebende Polygon in der Schnittfläche der benachbarten Segmente platziert. In der Mitte des Pfadsegments ist die Röhrenkontur identisch mit dem original Konturpolygon. Im Konturpolygon können die üblichen Statuscodes verwendet werden um Bögen oder relative Segmente zu erzeugen.

TUBE n, m, mask, u1, w1, s1, ... , un, vn, sn, x1, y1, z1, angle1, ... , xm, ym, zm, anglem

n: Anzahl Konten des Konturpolygons
m: Anzahl Konten des Pfadpolygons
mask = j1 + j2: steuert ob Flächen am Anfang und Ende der Röhre erzeugt werden.

  • j1 = 0|1: Fläche am Anfang der Röhre wird erzeugt
  • j2 = 0|2: Fläche am Ende der Röhre wird erzeugt
ui, vi: Koordinaten des Konturpolygons in der aktuellen XY-Ebene, das Konturpolygon wird entlang des Pfadpolygons verschoben.
si: steuert die Sichtbarkeit der vom Eckpunkt ausgehenden Kanten, = 1|0 Kanten sind sichtbar | nicht sichtbar
xi, yi, zi: Koordinaten des Pfadpolygons

Wichtig: Das Pfadpolygon erfordert zwei zusätzliche Knoten. Der erste und der letzte Knoten beeinflussen die Generierung des ersten und des letzten Segments der Röhre. Die Ausrichtung dieser Flächen ist so als ob die Röhre in Richtung dieser Kontrollknoten verlängert werden würde. Dies ist wahrscheinlich nicht verständlich, das liegt daran, dass ich es wirklich nicht verstehe, zumindest nicht vollständig, Versuche und Tests zu dieser Funktion sind geplant.

anglei: Rotationswinkel des erzeugten Form-Polygon

TUBE_A

Wie TUBE, nur im Unterschied zu TUBE, kann das erzeugte Konturpolygon in der Mitte eines Pfad-Segments vom ursprünglichen Konturpolygon abweichen, des weiteren muss das Konturpolygon nicht geschlossen sein, in diesem Fall werden die Flächen bis zur XY-Ebene verlängert. Und es wird kein Rotationswinkel für das erzeugte Konturolygon angegeben.

TUBE_A n, m, mask, u1, v1, s1, ... , un, vn, sn, x1, y1, z1, ... , xm, ym, zm

EXTRUDE ohne Deckfläche

MESH mit Zufallshöhen

MESH_B mit Zufallswerten

MESH_C mit Zufallswerten

PYRAMID

REVOLVE

SWEEP