coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
planarprimitivebasic shapesprismscomplex shapesfrom polylines3d cuttingsolid commandsvarious
CUTPLANE CUTPLANE{2} CUTPOLY CUTPOLYA CUTFORM CUTSHAPE WALLHOLE WALLNICHE
Name
CUTFORM
Syntax
CUTFORMn, method, status,
  directionX, directionY, directionZ, distance,
  x1, y1, mask1, ... xn, yn, maskn
[...]
CUTEND
Aufklappen Range
n > 3, Anzahl der Punkte, Typ real
0 < method < 4, Typ integer
status, Typ integer
distance, Begrenzung der Schnittform, Typ real
xi, yi, Koordinaten der Form in der xy-Ebene, Typ real
maski, Maskierung der seitlichen Schnittfläche, Typ integer
directionX,directionY,directionZ, Koordinaten des Richtungsvektors, Typ real
Aufklappen Mask Values
Die Maskierungswerte geben an, wie sich die Kanten der Schnittröhre auf die geschnittenen Elemente auswirken. Die Definition ist ähnlich dem PRISM_-Befehl, jedoch ist die Sichtbarkeit der Fläche selbst nicht einstellbar.

maski= j1+ j2/7+ j3+ j5 mit
 j1=0/ =1: Untere, horizontale Kante ist unsichtbar/sichtbar.
 j2/7=0/ =2/ =66: Vertikale Kante ist unsichtbar/sichtbar/tangentiale Begrenzungskante.
 j3=0/ =4: Obere, horizontale Kante ist unsichtbar/sichtbar.
 j4=0/ =8: Die untere Kante des Schnittkörpers ist sichtbar
 j5=0/ =16: Die obere Kante des Schnittkörpers ist sichtbar

Dabei ist die untere oder obere Kante nicht räumlich auf die Z-Achse betrachtet, sondern die erste (untere) oder letzte (obere) Schnittfläche, die die gedachte Röhre mit dem geschnittenen Körper erzeugt. Maßgeblich ist der Richtungsvektor. In Richtung von (directionX/ directionY/ directionZ) an der Eintrittschnittfläche ist die untere und an der Austrittsschnittfläche die obere Kante.

Die Bits j1-j3 beziehen sich natürlich nur auf die Kanten auf den Begrenzungsflächen des geschnittenen Körpers und nicht auf die evt. erzeugten Begrenzungspolygone des Schnittkörpers.
Aufklappen Status Codes
status=j1+j2+j4/5+j6+j7+j8
 j1=0 /=1: Attribute nach Projekt oder Objekteinstellung/ nach Einstellungen im Skript
 j2=0/ =2: Polygone werden wie Schnittflächen / wie normale Oberflächen behandelt
j4/5=0: Endlicher Schnitt
j4/5=16: Einseitig unendlicher Schnitt
j4/5=24: Unendlicher Schnitt
j6=0/32: Schnittform bildet Boole’sche Differenz/ Schnittmenge mit dem Schnittkörper.
j7=0/64: Begrenzungspolygon unten mit unsichtbaren/sichtbaren Kanten
j8=0/128: Begrenzungspolygon oben mit unsichtbaren/sichtbaren Kanten.


Mit  j1 wird festgelegt, ob die Schnittflächen die Attribute von den Einstellungen des Objektes erhalten oder die gerade im Schnitt festgelegten erhalten.

Der Typ der Polygone ( j2) wirkt sich weder in 3D aus, noch hat er etwas mit den durch Schnittlinien erzeugten Schnittflächen zu tun, sondern steuert ausschließlich die Darstellung des 3D-Modells bei einer Projektion im 2D-Teil des Objektes. Die richtigen Werte im Parameter method dort vorausgesetzt.
Ab ArchiCAD® 10 kann man mit dem PROJECT2{3}-Befehl sogar einen oder beide Flächentypen und/oder -kanten ausblenden.

Die Kanten des/der Begrenzungspolygone werden natürlich nur dargestellt, wenn sie sich auch innerhalb eines Körpers befinden und auch tatsächlich eine Schnittfläche erzeugen.
Aufklappen Description
CUTFORM ist eine Weiterentwicklung des CUTPOLYA-Befehls. Durch Angabe des Parameters method sind nun noch andere als prismenförmige Schnittkörper möglich. Der Richtungsvektor ist hier obligatorisch. Die Endlichkeit der Schnittform wird nicht über den Parameter distance, sondern über das Bit 6 im Parameter status festgelegt.
Es werden drei Schnittformen unterschieden:

method=1: prismenförmig
method=2: pyramidenförmig
method=3: keilförmig

Schnittform Prisma:
Bis auf die zusätzlichen Statuswerte (siehe unten Endlichkeit der Schnittform) entspricht die Verwendung der Parameter der Beschreibung unter CUTPOLYA.

Schnittform Pyramide:
Im Gegensatz zum Prisma gibt der Richtungsvektor nicht nur die Neigung sondern die Koordinate der Pyramidenspitze an. Die Neigung der Pyramidenseitenflächen ergibt sich dadurch aus der Lage der Pyramidenspitze zu dem angegebenen Schnittpolygon der Pyramide in der X/Y-Ebene.

Schnittform Keil:
Analog zur Pyramidenform jedoch mit nicht punktuellem, sondern linearen oberen Ende. Diese Keilkante (First) ist stets parallel zur Y-Achse. Der Richtungsvektor gibt einen beliebigen Punkt auf dieser Geraden an. Der Parameter directionY wird demnach ignoriert und kann beliebig sein. Andere Orientierungen der Keilkante sind nur durch zuvorige Transformationen des Koordinatensystems zu erreichen. Da nichtparallele, also windschiefe Geraden keine planare Ebene aufspannen können, sind die Keilseitenflächen für nicht zur Y-Achse parallele oder senkrechte Polygonkanten gekrümmt. Siehe auch unter Besonderheiten.

Bei allen Formen können zusätzlich zu der evt. formbedingten Begrenzung (Pyramide/Keil) zwei zusätzliche zur X/Y-Ebene parallele Begrenzungsebenen definiert werden.
Voraussetzung ist in jedem Fall, dass in status mindestens eine endliche Begrenzung zugelassen wird (j4/5).

Einseitig endliche Begrenzung (j4/5=16):
Das zusätzliche Begrenzungspolygon befindet sich in der Entfernung distance vom Nullpunkt in der Richtung (directionX/directionY/directionZ). Zeigt der Richtungsvektor in den negativen Z-Koordinatenbereich, erzeugt ein Wert mit distance<0 eine Begrenzungsebene in positiver Z-Richtung. Siehe Abbildungen. Die Schnittform öffnet sich unendlich in die negative Richtung des Richtungsvektors. Eine pyramidenförmige Schnittform erzeugt einen Pyramidenstumpf , eine keilförmige einen Keilstumpf als Schnittform.

Zweiseitig endliche Begrenzung (j4/5=0):
Eine Begrenzung stellt die unter der einseitigen Begrenzung beschriebene Ebene im Abstand distance von der XY-Ebene dar, die 2. Begrenzungsebene ist die XY-Ebene selbst. Damit wird ein geschlossener Körper als Schnittform definiert. distance=0 erzeugt natürlich keinen Schnittkörper, da beide Begrenzungsebenen in der XY-Ebene liegen.

In unendlichen (unbegrenzten) Schnittformen (auch Pyramiden und Keile sind in dem Sinne unendlich) hat der Parameter distance keine Auswirkung und wird ignoriert.

Funktionieren alle anderen Schnittbefehle ausschließlich als Bool'sche Differenz, kann mit CUTFORM durch status (Bit j6) auch eine Schnittmenge mit dem geschnittenen Körper erzeugt werden. Für einfache Körper kann so die etwas komplexe Verwendung von SEO vermieden werden.
Aufklappen Specialities
Die Keilform hat einige Besonderheiten:
1. Wie oben erwähnt sind ggf. die Keilseitenflächen nicht eben, sondern gekrümmt. Offensichtlich ist deren Berechnung leider nicht sehr exakt, wodurch die Austritts- und Eintrittspolygone mitunter eigenartige Versprünge aufweisen.
2. Nach unserer Ansicht vertauscht ein Bug bis ArchiCAD 10 die Wirkung der Bits 1 und 3 ( j1 und  j3) der mask-Werte im Gegensatz zu den anderen Schnittformen.  j3 macht demnach in Richtung des Richtungsvektors betrachtet die unteren,  j1 oberen Kanten sichtbar oder eben nicht.
Aufklappen Attributes
PEN, MATERIAL, FILL ... (?)
Aufklappen Context
3D-Skript
Aufklappen ArchiCAD®
since 8.0
Aufklappen References
GDL-Handbuch 8.0 (DE) p. 80
GDL-Handbuch 8.1 (DE) p. 81
GDL-Handbuch 9.0 (DE) p. 110
GDL-Handbuch 10.0 (DE) p. 106
GDL-Handbuch 11.0 (DE) p. 110
GDL Reference Guide 9.0 (INT) p. 107
GDL Reference Guide 10.0 (INT) p. 106
GDL Reference Guide 11.0 (INT) p. 106
 




separates Web Control Fenster Download Objekt

Aufklappen GDL WebControl