Forum de la communauté Allplan

[Question] PROJECT2 - Verdeckdarstellung von einzelnen 3D-Objekten

Balises:
  • Smartparts
  • PROJECT2
  • FOIL
  • Hidden
  • AUX_MODE
  • Plugin-Download

Hallo

Ich möchte gerne eine Verdecktberechnung von einzelnen Objekten aus dem 3D-Script auf die 2D-Folie des Smartparts legen. Mit der Funktion PROJECT2 wird von allen Objekten des 3D-Script eine Verdeckberechnung erstellt. Was eben nicht gewünscht ist.

Meine Zwischenlösung ist nun, dass ich alle 3D-Objekte von welchen ich keine Verdeckberechnung wünsche auf einer separaten Smartpart-Folie erstelle. Die anderen auf der Standard-Folie (FOIL 0).

Bei dieser Lösung ergeben sich jedoch folgende Probleme:
- Es ist nicht schlecht* möglich für die 3D sowie 2D-Darstellung unterschiedliche Farben/Stifte/Striche zu verwenden.
* 3D-Objekte für 3D-Darstellung und Verdeckberechnung zweimal erstellen, Sichtbarkeit der Makrofolien A, B, C für die Standard-3D-Folie nachträglich deaktivieren -> Bei einer Modifikation des Smartparts wird die Sichtbarkeit aber wieder zurückgesetzt.
- Der Befehl AUX_MODE für die Erstellung von Hilfskonstruktionen wird beim Befehl PROJECT2 ignoriert
- Es ist nur eine Verdeckberechnung für alle 3D-Objekte möglich. Ich hätte jedoch gerne eine für Objekt A und eine für Objekt B, wobei sich A und B nicht gegenseitig verdecken.
- Gibt es eine Möglichkeit eine Smartpart-Folie verdeckt darzustellen?
- Kann die Sichtbarkeit der Makrofolien A, B, C für die Standard-Folien im Smartpart definiert werden?

Gruss
Hansruedi

...für die Makrofolien A,B,C kann man werte für deren Sichtbarkeit angeben:

DEFINE FOIL name visible2D, visible3D, from_scale, to_scale, refPnt1X, refPnt1y, refPnt1z, refPnt2X, refPnt2y, refPnt2z, layerA, layerB, layerC, scaleX, scaleY, scaleZ

Für eine Folie, die nur Makrofolie A enthalten soll (z.B. für Aufschlagsysmbol 3D Fenster):
DEFINE FOIL "3D_A" 0 , 1 ,
0 , max_rep_scl ,
0 , 0 , 0 ,
REF_X , REF_Y , REF_Z ,
1 , 0 , 0 ,
0 , 1 , 2

Für die separate Verdecktberechnung einzelner 3D-Objekte innerhalb eines SmartParts gibt es leider keine Möglichkeit.
Dazu wäre ja eine Interaktion mit dem 3D-Script nötig, denn nur dort werden ja die 3D-Elemente erzeugt!
Das 2D-Script wird vor dem 3D-Script ausgeführt, und im Anschluss an das 3D-Script von den dort erzeugten 3D-Objekten die Verdecktberechnung an die 2D-Objekte des 2D-Scriptes drangehängt...

Hallo Jörg

vielen Dank für die Antwort. Leider hast Du mich falsch verstanden.
Ich möchte ich die Sichtbarkeit der "Standard-3D-Folie", welche das Smartpart automatisch erstellt, steuern.

Gruss
Hansruedi

DEFINE FOIL "xxx" ...
SET FOIL "xxx"

...alles was nach diesen Befehlen im 2D- bzw. 3D-Script kommt, wird auf dieser Folie abgelegt.
Wenn das der erste Befehl im Script ist, wird keine Standard-Folie erzeugt bzw. diese bleibt leer.
Zur Syntax siehe meine Antwort oben bzw. SmartPart-Dokumentation

Ein Verdeckt-Berechnung von Objekten einer einzelnen 3D-Folie ist nicht möglich (aus den o.a. Gründen)

Schade, dass die Funktion PROJECT2 nicht kontrollierter einzusetzen ist und es auch keine sinnvolle Workarounds gibt.