Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] Smartpart Problem mit 2D und 3D Skript


Hallo

Bei meinen ersten Gehversuchen mit Smartparts stehe ich gerade vor dem Problem, dass wenn ich auch einen 2D Script ausführe, der 3D script im Grundriss nicht mehr dargestellt wird, aber richtig in 3D erzeugt wird. Ich vermute das der 2D Script der 3D ausgeblendet wird, muss man dann noch etwas machen, damit wieder beide im Grundriss dargestellt werden?

Grüße Paul

Anhänge (2)

Typ: image/png
102-mal heruntergeladen
Größe: 30,80 KiB
Typ: image/png
72-mal heruntergeladen
Größe: 20,73 KiB

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

Die Lösung ist eigentlich sehr einfach, und auch logisch:
Im 2D-Script werden all die 2D-Elemente erzeugt, die ausschliesslich im Grundriss zu sehen sein sollen.
Im 3D-Script erzeugt man hingegen die 3D-Elemente, die ausschließlich in den 3D-Projektionen (alles andere als Grundrissprojektion)
dargestellt werden sollen.

Wenn das 2D-Script leer ist, bzw. keine 2D-Elemente erzeugt, werden automatisch die 3D-Elemente auch im Grundriss angezeigt.
Umgekehrt gilt das natürlich auch, allerings zeigt Allplan ohne weiteres Zutun keine 2D-Elemente in 3D-Projektionen an.

Eine Möglichkeit, einzelne Elemente aus dem 3D-Script auch im Grundriss anzuzeigen, besteht nur, wenn man
mit DEFINE FOIL einzelne Folien und deren Sichtbarkeit in 2D/3D definiert, und auf diesen Folien gezielt die Elemente platziert.

In Deinem Fall würde ich einfach das Script für die "Stehbolzen" in's 2D-Script kopieren, und dann entspr. anpassen:
TRANS2 statt TRANS, ROT2 statt ROT , CIRCLE2 statt CYLIND usw.

Alternativ die 2D-Linie als 3D-Linie im 3D-Script erzeugen: LINE statt LINE2 verwenden.
2D-Script sollte dann leer bleiben...

Die Lösung ist eigentlich sehr einfach, und auch logisch:
Im 2D-Script werden all die 2D-Elemente erzeugt, die ausschliesslich im Grundriss zu sehen sein sollen.
Im 3D-Script erzeugt man hingegen die 3D-Elemente, die ausschließlich in den 3D-Projektionen (alles andere als Grundrissprojektion)
dargestellt werden sollen.

Wenn das 2D-Script leer ist, bzw. keine 2D-Elemente erzeugt, werden automatisch die 3D-Elemente auch im Grundriss angezeigt.
Umgekehrt gilt das natürlich auch, allerings zeigt Allplan ohne weiteres Zutun keine 2D-Elemente in 3D-Projektionen an.

Eine Möglichkeit, einzelne Elemente aus dem 3D-Script auch im Grundriss anzuzeigen, besteht nur, wenn man
mit DEFINE FOIL einzelne Folien und deren Sichtbarkeit in 2D/3D definiert, und auf diesen Folien gezielt die Elemente platziert.

In Deinem Fall würde ich einfach das Script für die "Stehbolzen" in's 2D-Script kopieren, und dann entspr. anpassen:
TRANS2 statt TRANS, ROT2 statt ROT , CIRCLE2 statt CYLIND usw.

Alternativ die 2D-Linie als 3D-Linie im 3D-Script erzeugen: LINE statt LINE2 verwenden.
2D-Script sollte dann leer bleiben...

Hallo Nemo

Ähnliches hatte ich schon vermutet, danke für deine Antwort.
Diese 2D Linie ist als ergänzung gedacht, damit sie in Schnitten nicht auftaucht, dann frage ich mal so, gibt es eine Dokumentation, wie man die Bauteile auf definierte Folien setzt?

Grüße Paul

Im 2D-Script folgendes am Anfang einfügen:

DEFINE FOIL "2d" 1 , 0 , !view2D view3D
0 , 1000 , !fromScale toScale
0 , 0 , 0 , !refPnt1
0 , 0 , 0 , !refPnt2
1 , 1 , 1 , !layerA layerB layerC
0 , 1 , 2 !scalX scaleY scaleZ
SET FOIL "2d"

Im 3D-Script folgendes am Anfang einfügen:
DEFINE FOIL "2d3d" 1 , 1 , !view2D view3D
0 , 1000 , !fromScale toScale
0 , 0 , 0 , !refPnt1
0 , 0 , 0 , !refPnt2
1 , 1 , 1 , !layerA layerB layerC
0 , 1 , 2 !scalX scaleY scaleZ
SET FOIL "2d3d"

Hallo Nemo

Vielen Dank, probiere ich die Tage mal aus ;D

Grüße Paul