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 erstelltj2 = 0|2:
Deckfläche wird erzeugtj3 = 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 erstelltj2 = 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:
- 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. - statische Methode: es werden für die m-Richtung
m_subdiv
und für die n-Richtungn_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 dargestelltj3 = 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 Startpunktxi, yi, zi
wird nicht dargestelltsi = 1:
das Liniensegment mit dem Startpunktxi, yi, zi
wird dargestelltsi = -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 erzeugtj3 = 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 erzeugtj2 = 0|2:
Deckfläche wird erzeugtj3 = 0|4:
Seitenfläche am Startwinkel (0°
) wird erzeugt.j4 = 0|8:
Seitenfläche am Endwinkelalpha
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 erstelltj2 = 0|2:
eine Deckfläche wird erstelltj3 = 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 dargestelltj2 = 0|2:
Deckflächen werden dargestelltj3 = 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 erzeugtj2 = 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