Name
PROJECT2{4}

Syntax
PROJECT2{4} projektionsart, winkel,
transparenz, statusTeile,
anzSchnitt,
schnitthoehe1, ..., schnitthoehen,

methodei, teilei,
schnittSchraffurIdxi,
schnittSchraffurStifti, schnittSchraffurStiftHgi,
schnittSchraffUrsprungXi, schnittSchraffUrsprungYi, schnittSchraffurausrichtungi,
schnittLinienStifti, schnittLinientypi,
projizierteSchraffurIdxi,
projizierteSchraffurStifti, projizierteSchraffurStiftHgi,
projizierteSchraffurUrsprungXi, projizierteSchraffurUrsprungYi,
projizierteSchraffurausrichtungi,
projizierteLinienStifti, projizierteLinientypi,
...
methode(anzSchnitt+1), teile(anzSchnitt+1),
schnittSchraffurIdx(anzSchnitt+1),
schnittSchraffurStift(anzSchnitt+1), schnittSchraffurStiftHg(anzSchnitt+1),
schnittSchraffUrsprungX(anzSchnitt+1), schnittSchraffUrsprungY(anzSchnitt+1),
schnittSchraffurausrichtung(anzSchnitt+1),
schnittLinienStift(anzSchnitt+1), schnittLinientyp(anzSchnitt+1),
projizierteSchraffurIdx(anzSchnitt+1),
projizierteSchraffurStift(anzSchnitt+1), projizierteSchraffurStiftHg(anzSchnitt+1),
projizierteSchraffurUrsprungX(anzSchnitt+1), projizierteSchraffurUrsprungY(anzSchnitt+1),
projizierteSchraffurausrichtung(anzSchnitt+1),
projizierteLinienStift(anzSchnitt+1), projizierteLinientyp(anzSchnitt+1)

  [, PARAMETERS name1=wert1 [, name2=wert2, ... namen=wertn]]

Aufklappen Wertebereiche
projektionsart, Typ integer (*)
winkel, Typ real
transparenz, 0 = keine Transparenz / 1 = mit Transparenz
statusTeile, Typ integer (**)
anzSchnitt, Anzahl Schnittebenen, Typ integer
schnitthoehei, Typ real

methodei, Typ integer (***)
teilei, Typ integer (****)

schnittSchraffurIdxi, Typ integer
0≤ schnittSchraffurStifti, ≤255, Typ integer
-1≤ schnittSchraffurStiftHgi, ≤255, Typ integer
schnittSchraffurUrsprungXi, Typ real
schnittSchraffurUrsprungYi, Typ real
0≤ schnittSchraffurausrichtungi, ≤360, Richtungswinkel, Typ real
0≤ schnittLinienStifti, ≤255, Typ integer
schnittLinientypi, Typ integer

projizierteSchraffurIdxi, Typ integer
0≤ projizierteSchraffurStifti, ≤255, Typ integer
-1≤ projizierteSchraffurStiftHgi, ≤255, Typ integer
projizierteSchraffurUrsprungXi, Typ real
projizierteSchraffurUrsprungYi, Typ real
0≤ projizierteSchraffurausrichtungi, ≤360, Richtungswinkel, Typ real
0≤ projizierteLinienStifti, ≤255, Typ integer
projizierteLinientypi, Typ integer

(*) Typ der Projektion
 3: Draufsicht
 4: Ansicht
 6: Frontalaxonometrie
 7: Isometrische Axonometrie
 8: Monometrische Axonometrie
 9: Dimetrische Axonometrie
 -3: Untersicht
 -6: Frontalaxonometrie Unten
 -7: Isometrische Axonometrie Unten
 -8: Monometrische Axonometrie Unten
 -9: Dimetrische Axonometrie Unten

(**) Zu generierende Teile (Hotlines, Hotspots, und Hotarcs), ergibt sich aus j1+j2 mit
 j1=1: Projiziere 3D Hotspots als statische 2D Hotspots
 j2=2: Projiziere 3D Hotlines und Hotarcs

(***) Darstellungsmethode
 0: Aktueller Schnitt nimmt nicht an der Projektion teil
 1: Wireframe
 2: Versteckte Linien (analytisches Modell)
 3: Schattiert
 4: Versteckte Linien mit Polygon: mit den Methoden 1–3 erzeugte Polygone werden überdeckt, aber nicht eliminiert
 16: Zusätzlicher Modifikator, erstellt Vektorschraffuren bei Methode 2 und 3
 32: Zusätzlicher Modifikator, verwerfe 3D-Attribute (nur wirksam bei 2 und 4)
 64: Zusätzlicher Modifikator, erstellte Schraffuren sind Bauteilbezogen (nur wirksam bei 3 und 4)
 128: Zusätzlicher Modifikator, alle Linien sind innere Linien (nur wenn 32)
 256: Zusätzlicher Modifikator, alle Linien sind Konturlinien (nur wenn 32 und nicht 128)
 512: Zusätzlicher Modifikator, alle Schraffuren sind Schnittschraffuren (nur wenn 32, Standard ist Zeichnungsschraffuren)
 1024: Zusätzlicher Modifikator, alle Schraffuren sind Deckschraffuren (nur wenn 32)
 2048: Zusätzlicher Modifikator, die Modifikatoren 16, 32, 64, 128, 256, 512, 1024 gelten nur für projizierte Teile
 4096: Zusätzlicher Modifikator, die Modifikatoren 16, 32, 64, 128, 256, 512, 1024 gelten nur für geschnittene Teile
 8192: Zusätzlicher Modifikator, Schnittschraffuren sind verzogen
 (Sollte die eingesetzte Zahl invalide sein, wird Methode=2 angenommen.)

(****) Zu generierende Teile, ergibt sich aus j1+j2+j3+j4+j7 mit
 j1=1: Schneide Polygone (Schraffurattribute definiert durch SECT_FILL, nur wirksam wenn Methode=3 (Schattiert))
 j2=2: Schneide Polygonkanten
 j3=4: Zeige Polygone
 j4=8: Zeige Polygonkanten
 j7=64: Projiziere Punktwolken

Aufklappen Erläuterung
Erzeugt eine Projektion des 3D-Modells, jedoch mit deutlichen verändertem und erweitertem Funktionsumfang. So benötigt diese Version des Befehls im Gegensatz zum PROJECT2{3} keine seperaten Schnittbefehle, stattdessen werden diese durch den Befehl ad-hoc miterzeugt. Es können auch mehrere Schnittebenen auf einmal abgearbeitet werden. Die implizierten Schnittebenen befinden sich stets in der X-Y Ebene. Es ist möglich, sowohl die Attribute der projizierten, als auch der geschnittenen Teile zu kontrollieren, inklusive Vorder- und Hintergrundstift, Linientyp, und Schraffur.

Weiterhin existiert wie schon bei PROJECT2{3} die Möglichkeit, optional ein PARAMETERS mit Werten anzuhängen, die beim Durchlauf des 3D-Skriptes zur Erzeugung der 2D-Darstellung verwendet werden sollen.

Aufklappen Beispiel
Am einfachsten ist dieser Befehl zu handhaben, wenn man extensiven Gebrauch des Pufferspeichers macht:

anzSchnittebenen = 1 ! eine Schnittebene
cutElevation = GLOB_CUTPLANES_INFO[1] ! auf der aktuellen Grundrissschnitthöhe

methode = 1+32+256+512+4096 ! Wireframe, nutze definierte Attribute, alle Linien sind Kontur, alle Schraffuren sind Schnittschraffuren, Mod. gelten nur für geschnittene Bereiche

put cutElevation

for i = 1 to anzSchnittebenen+1
put methode, ! methode
2,    ! teile
64,   ! schnittSchraffurIdx
1,    ! schnittSchraffurStift
1,    ! schnittSchraffurStiftHg
0.0,  ! schnittSchraffUrsprungX
0.0,  ! schnittSchraffUrsprungY
0.0,  ! schnittSchraffurausrichtung
1,    ! schnittLinienStift
1,    ! schnittLinientyp
1,    ! projizierteSchraffurIdx
1,    ! projizierteSchraffurStift
1,    ! projizierteSchraffurStiftHg
0.0,  ! projizierteSchraffurUrsprungX
0.0,  ! projizierteSchraffurUrsprungY
0.0,  ! projizierteSchraffurausrichtung
1,    ! projizierteLinienStift
1     ! projizierteLinientyp
next i

project2{4} 3, 270,
     0,     ! Transparenz aus
     1,     ! statusTeile
     anzSchnittebenen,     ! Anzahl Schnittebenen
     get (nsp)

Aufklappen Besonderheiten
Die Parameter müssen einmal mehr als die eigentlich geforderte Anzahl der Schnittebenen übergeben werden (anzSchnittebenen + 1).
Die Anzahl der Schnittebenen kann dabei auch Null betragen (in diesem Fall ist die cutElevation wegzulassen). Dieser Fall ahmt die einfacheren PROJECT2 Befehle nach, die keine Schnittebene haben, indem eine Aufsicht generiert wird.

Es existiert ein Bug, der dazu führt, dass wenn der Modifier 32 der Darstellungsmethode nicht gesetzt ist, fälschlicherweise die Schnittflächen als äußere Flächen interpretiert werden, und dadurch projiziert mit Deckschraffuren erscheinen.
Der Workaround ist etwas kompliziert: Es wird empfohlen mit PARAMETERS über alle Teile des Objektes nach Baustoff getrennt zu loopen, und dann jeweils die Attribute zu überschreiben (mit einem "Building_Material_info" Request). Anschließend müssen für eine Projektion der ungeschnittenen Teile (sichtbar + Untersicht) in einem seperaten PROJECT2{4} Befehl noch einmal alle Bestandteile gemeinsam abgearbeitet werden.
Ein Beispiel davon findet sich im "CWFrameRegDouble"-Makro.


Aufklappen Kontext
2D-Skript

Aufklappen ArchiCAD
ab 20