Support Forum

[Frage] Fläche in Smartparts an beliebiger Kante rotieren lassen [Gelöst]


Hallo zusammen,

ich schon wieder...
Hartes Brot sich in das Thema Smartparts einzuarbeiten...

Ich habe mir ein polygonale Fläche inkl. Handles erstellt, welche frei bewegt werden können und jeder Seite eine Höhe zugewiesen.
Wie schaffe ich es jetzt bei Bedarf die Seitenflächen um 90° zu drehen.
Im Grunde vergleichbar mit einer Wandabwicklung...

Die Funktionen ROT helfen mir hier irgendwie nicht so wirklich weiter, weil sie auf x, y, und/oder z abstellen, ich aber ja eine Linie brauche.

Oder kann man das irgendwie schachteln?

Ich würde mich mal wieder über Anregungen freuen.

Grüsse
Stephan

Lösung anzeigen Lösung verbergen

...aber sobald ich alle Flächen aktiviere

Wie "aktiviert man Flächen im SmartPart?

Die ROT und TRANS-Befehle funktionieren deklarativ. Sie "gelten" für alle nachfolgenden Funktionen bis etwas anderes vereinbart wird.
D.h. es wird das Einfüge-Koordinatensystem entspr. gedreht und verschoben für eine
nachfolgend zu ERZEUGENDEN Körper (z.B. BOX). Es funktioniert wie der "Kursor" in einer Textverabeitung.
Da wo der steht, wird das nächste Zeichen eingefügt.

Der einmal erzeugte Körper (z.B. BOX) kann nach der Erzeugung nicht mehr verändert oder selektiert werden! (Deshalb die Frage nach der Aktivierung!)

Eine solche Transformation kann mit RESTORE n wieder rückgängig gemach werden,
wobei n die Anzahl der zu löschen den Transformationen angibt.
RESTORE ALL setzt das Einfüge-Koordinatensystem wieder zurück auf den Nullpunkt und entfernt alle Rotationen.

Ich vermute mal, Du musst RESTORE benutzen, bevor die eine neue Fläche ERZEUGST.

Hallo Stephan,

du müsstest dir anhand von Grundkenntnissen in Mathematik den Winkel des jeweiligen Schenkels ausrechnen lassen; in verallgemeinerter Form nondestructive anhand deiner Script-Parameter und dann vor der Erzeugung der jeweiligen Wandabwicklungsstücke über TRANS und ROT deinen Ursprung an die jeweiligen Stellen der Schenkel setzen. Wenn du von mehreren Schenkeln die Wandabwicklung brauchst, musst du dich über Schleifen durch die Liste der Schenkel loopen. (Empfehlung: generell immer gegen den Uhrzeigersinn)
Du kannst die Winkel entweder immer bei Bedarf innerhalb der Schleife ausrechnen lassen, oder dir vorab eine liste mit den Winkeln ausfüllen lassen und dann vom loop aus per index auf die Winkel-Liste zugreifen.

SmartPart-Sprache ist leider nicht objektbasiert und ohne Zugriff auf so einige ganz wichtige Funktionen, die Allplan eigentlich zur Verfügung stellen könnte (Siehe GDL in Archicad), so dass du hier bei Allplan viel "zu Fuss" selber ermitteln und erzeugen lassen musst, in einem eigenen smartpart-universum;
.....dafür ist die smartpart-Script-Sprache aber seehr leicht verständlich und in dieser wunderbar übersichtlichen Programmierumgebung im Bearbeitungsfenster des smartpart-scripts mit den gut durchdachten und interaktiven Dialogmöglichkeiten der SmartParts (siehe Fenstersmart-part), dem unmittelbaren feedback zu 2d, 3d, Dialogscript, Matrixfenster usw usw. Und die Smart-Parts sind sehr performativ.

Schade, dass man vor etlichen Jahren schon die Weiterentwicklung der SmartPart-script Sprache eingestellt hatte.
Die Python-Programmierumgebung in Allplan ist naturgemäß leider hoch komplex und dadurch unübersichtlich, dass sie Nichtinformatiker praktisch überfordert und dadurch kaum in Anwendung kommt.
Vermutlich würdest du deine Wandabwicklung aber auch sehr gut in Visual Script hinbekommen, solange die Aufgabe übersichtlich ist und sich linear (in einer Grafik) darstellen lässt.

Beste Grüße

czyborra klingbeil architekturwerkstatt - http://www.cka.berlin

Hallo Marek,

Danke für deine Hinweise, hab es tatsächlich geschafft die Flächen wie von Dir beschrieben an Ort und Stelle zu bekommen.
Habe jetzt aber noch ein Problem, mit den TRANS Befehlen für die Einzelflächen.

Jede Fläche für sich funktioniert ohne Probleme, aber sobald ich alle Flächen aktiviere wird anscheinend der TRANS auf alle weiteren Flächen angewandt.
Muss der Befehl wieder beendet werden bzw. wie funktioniert das dann?

Grüße

...aber sobald ich alle Flächen aktiviere

Wie "aktiviert man Flächen im SmartPart?

Die ROT und TRANS-Befehle funktionieren deklarativ. Sie "gelten" für alle nachfolgenden Funktionen bis etwas anderes vereinbart wird.
D.h. es wird das Einfüge-Koordinatensystem entspr. gedreht und verschoben für eine
nachfolgend zu ERZEUGENDEN Körper (z.B. BOX). Es funktioniert wie der "Kursor" in einer Textverabeitung.
Da wo der steht, wird das nächste Zeichen eingefügt.

Der einmal erzeugte Körper (z.B. BOX) kann nach der Erzeugung nicht mehr verändert oder selektiert werden! (Deshalb die Frage nach der Aktivierung!)

Eine solche Transformation kann mit RESTORE n wieder rückgängig gemach werden,
wobei n die Anzahl der zu löschen den Transformationen angibt.
RESTORE ALL setzt das Einfüge-Koordinatensystem wieder zurück auf den Nullpunkt und entfernt alle Rotationen.

Ich vermute mal, Du musst RESTORE benutzen, bevor die eine neue Fläche ERZEUGST.

Hallo nemo,

mit Aktivierung ist eine checkbox gemeint in der ich einen Haken setzen kann für Sichtbarkeit der Flächen ein oder aus.

Ich werde es mal mit RESTORE probieren…

Gruß

Hallo,

hat etwas gedauert bis ich uum ausprobieren gekommen bin.
hat mit RESTORE wunderbar geklappt.

Danke Euch!