Support Forum

Visual scripting - Fertgigteilbalken mit Konsolen und 2D-Darstellung [Gelöst]

Schlagworte:
  • Plugin-Download
  • SMT Download

Hallo,

da wir das immer öfter benötigen und wir das zurzeit immer aus mehreren Unterzugsbauteilen zusammenbasteln, war die Überlegung das mal mit Visualscripting zu erzeugen, da wir von "VS" zurzeit aber keinen blasen Schimmer haben, wie aufwändig ist das?

"Learning by doing"

Wie fängt man am besten an? Gibt es das vielleicht schon? Gibt es ein ähnliches Beispiel?

Die Darstellung erfolgt auf dem Teilbild darstellungstechnisch richtig, keine Ableitungen in UVS-Schnitte.

Wichtig ist u.a, dass die Konsole in der Grundrissdarstellung anderes formatierbar ist, und dass das Volumen und das Gewicht komplett über alle Teil-Bauteile ermittelt wird.

Es gibt sowas schon ähnlich, nur können wir uns den Code nicht über "VS" anschauen, da das direkt in Python programmiert wurde.

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Anhänge (1)

Typ: image/png
213-mal heruntergeladen
Größe: 541,96 KiB

Lösung anzeigen Lösung verbergen

Hallo Nemo,
Danke für das SMT!
Mein Gedanke war das mit den ARC-Bauteilen über Pythonpats zu lösen, um auch mit den Standard-VTB's und auch an Ebenen anbinden zu können. Das wird sicherlich mit VS zu schwierig... ich lasse das besser.

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Hallo Jürgen.

Wenn noch nie vorher mit VS gearbeitet wurde, würde ich wie folgt vorgehen:
Als erstes in einem beliebigen Projekt ein leeres Teilbild aktiv schalten. Anschließend VS über die Schaltfläche „Allplan Visual Scripting“ unter dem Reiter „Benutzerobjekte“ in der Actionbar starten.

Es öffnet sich der VS-Editor in einem eigenen Fenster.
Wird der Editor zum ersten Mal auf diesem Rechner gestartet, öffnet sich automatisch die Getting-Started-Präsentation, welche die wichtigsten Eckpunkte des VS-Editors und der Arbeitsweise erklärt. Sollte die Präsentation nicht starten, dann im Editor oben auf Hilfe und Getting started klicken. Die Präsentation in Ruhe durchlesen, anschließend ist man wieder im Editor.
Von der Fülle an neuen Informationen sollte man sich nicht abschrecken lassen, es ist nicht so schwer wie es auf den ersten Blick erscheinen mag.

Ist man wieder im Editor würde ich ohne Umwege auf Hilfe -> Visual Scripting - Hilfe klicken. Anschließend in der Allplan-Hilfe auf den Link „Allplan Visual Scripting E-Learning“ klicken. Es öffnet sich der Internet-Browser mit der PDF zum Internet-Lehrgang. Diesen sollte man, bevor man eigene Gehversuche unternimmt, unbedingt durchgearbeitet haben.

Seite 1 bis 42 erklären noch einmal im Detail, was die Präsentation nur überflogen hat. Diesen Abschnitt sollte man sich mal durchgelesen haben, aber auch hier gilt, sich nicht von der Fülle an Informationen einschüchtern zu lassen. Wichtig ist, das Beispiel ab Seite 43 komplett abzuarbeiten. Hierdurch bekommt man einen ersten Eindruck, wie das Ganze funktioniert.

Bis hier hin würde ich vermuten, dass man mindestens einen halben Arbeitstag einplanen sollte.

Hat man das geschafft, kann man versuchen ein eigenes Python Part zu erstellen.

Vor der eigentlichen Umsetzung steht immer die Idee. Ob diese mit VS umsetzbar ist, findet man meist erst beim Versuch selbst heraus. Mit etwas Erfahrung kann man dann besser abschätzen, wie umfangreich die Umsetzung wird und ob es überhaupt möglich ist. Die Idee ist in diesen Fall schon vorhanden und es gibt auch schon eine ausführliche Skizze, was sehr hilfreich ist.

Als nächstes würde ich mir überlegen, wie ich das Objekt per Hand im Allplan modellieren würde. Diese Arbeitsschritte könnte man später versuchen im Skript nachzustellen. Bei diesen ersten Überlegungen sollte man auch festlegen, welche Modifizierungsmöglichkeiten das Python Part bieten sollte und welche nicht. Um Fehler zu vermeiden ist es ratsam dem Benutzer einen sauber abgegrenztes Handlungsrahmen vorzugeben.

Am konkreten Beispiel würde das zum Beispiel folgende Fragen aufwerfen:
Die Höhe Auflagerkonsole plus Höhe Ausklinkung ist gleich der Höhe Unterzug. Welche zwei dieser drei Maße soll der Benutzer selbstständig durch Eingabe ändern können? Alle drei per Eingabe zu ändern, wird nicht möglich sein, weil sie sich gegenseitig beeinflussen. Eines der drei Maße muss vom Skript errechnet werden. Eventuell gibt es aber eine Möglichkeit, die ich nicht kenne.

Was passiert, wenn Eingaben getätigt werden, die zu unlogischen Ergebnissen führen? Wenn zum Beispiel für die Einbaulänge des Unterzuges 0 eingegeben wird? Einige Nodes liefern dann eine Meldung das ein Wert zwischen x und y eingeben werden muss. Aber je nach Skriptaufbau ist das nicht immer der Fall. Hier könnte man zum Beispiel mit Slidern arbeiten und den Wertebereich durch diese generell einschränken.

Das Hinzufügen der optionalen Konsolen würde ich mit zwei Checkboxen regeln.

Mit diesen ersten Überlegungen würde ich im VS-Editor beginnen Eingabe-Nodes abzulegen und gleich die Eingabe-Palette über den Palettendesigner zu gestallten. Diese wird im Laufe des Entstehungsprozessen immer weiter ausgebaut. Wie die Eingabewerte miteinander interagieren oder weiterverarbeitet werden, hängt davon ab mit welchen Nodes man die Objektgeometrie erstellen will. Sollte sich ein Teil des Skripts später als unpraktisch erweisen, kann dieser durch andere Nodes ersetzt werden.

Ich denke die Erstellung der Objektgeometrie ist recht einfach umsetzbar. Was ich leider nicht weiß ist, ob die 2D-Darstellungen machbar sind. Es gibt das Node PythonPartSlide, aber ich habe damit noch nicht gearbeitet. Ob es bereits ein Beispiel gibt, habe ich jetzt nicht nachgeschaut.

Gruß Felix
Allplan 2024-0-1

Zunächst ist das "nur" ein etwas aufwändiger konstruierter 3D-Körper.

Alles was man mit dem 3D-Modellierer "herstellen" kann, kann man auch mit Visual-Scripting machen.
Also auch diesen Körper.

Aber:
Die Konsole soll anders darstellbar sein (gestrichelt).
Damit muss eine andere Darstellung für 2D erzeugt werden. Das geht dann nicht mehr mit Visual-Scripting!
Da fehlt einfah der Zugriff auf 2-Elemente und eine separate Folie für die 2D-Darstellung.

Mit Python selbst ist das kein Problem, aber auch ein SmartPart ist sehr einfach. (s. Anlage)

Anhänge (1)

Typ: text/xml
734-mal heruntergeladen
Größe: 28,85 KiB

Hallo Nemo,
Danke für das SMT!
Mein Gedanke war das mit den ARC-Bauteilen über Pythonpats zu lösen, um auch mit den Standard-VTB's und auch an Ebenen anbinden zu können. Das wird sicherlich mit VS zu schwierig... ich lasse das besser.

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Wenn das Ergebnis ein Architekturbauteil sein soll, kommt dafür nur der UNTERZUG oder der TRAGWERSKTRÄGER in Frage. Ersteren kann man meines Wissens nach in VS/Python NICHT erzeugen!
TRAGWERSKTRÄGER sollte mittlerweile in VS/Python erzeugt werden können.

Beide könnte man mit einem passenden Querschnitt (Profil) ausstatten, und hätte so erst mal
die Balkenform ohne Konsol-Ausklinkungen. Für die Ausklinkungen müßte man einen Abzugskörper
bauen, z.B. einen Durchbruch. Dieser funktioniert aber nur bei dem UNTERZUG, und ist wiederum mit VS/Python NICHT machbar. Händisch könnte man so ein Konstrukt UNTERZUG + DURCHBRÜCHE schon herstellen.

Alternativ (ob händisch oder mit VS/Python) könnte man sich allerdings auch die Bauteilgeometrie als 3D-Körper herstellen, und dann in einen Mengenkörper "verpacken", wobei ich gerade nicht genau weiss, ob Mengenkörper in Python/VS unterstützt werden.

Du siehtst, es gibt viele Wenn's und Aber's.

Das SmartPart bietet eine Lösung, die funktioniert. Wenn man alle SmartPart-Parameter als Attribute "exportiert" ist auch das Beschriften mit VTB kein Problem. Einzig die Ebenen-Anbindung ist nicht möglich, die aber bei diesem Bauteil mehr Probleme verursachen, als sich lösen lassen!
Was soll passieren, wenn die Ebene schräg verläuft oder einen Knick (Satteldachbinder) hat?
Das läßt sich auch mit einem Architektur-Bauteil schwer lösen, da dann der Querschnitt ggf. nicht mehr konstant ist!

In VS/PYthon kann man auch nicht auf die freien bzw. Dach-Ebenen zugreifen, "unter denen" der Träger liegen soll. Das einzubauen ist extrem aufwändig, da dazu eine Überprüfung in der Grundrissprojektion erforderlich ist, ob der Trägerumriss komplett im Ebenen-Umriss liegt (und im Umriss welcher Ebene!) oder diesen vielleicht sogar schneidet. Dann müßte man auch die Lage des Trägers zu "geneigten Ebene" kennen, um die OK des PythonParts daran "ausrichten" zu können!

Nemo hat ja schon alles gesagt und eine Lösung geliefert.
Ich hänge trotzdem mal meinen Versuch an. Vielleicht möchte irgendjemand mal schauen.

Gruß Felix
Allplan 2024-0-1

Anhänge (2)

Typ: text/xml
659-mal heruntergeladen
Größe: 46,33 KiB
Typ: text/xml
646-mal heruntergeladen
Größe: 3,73 KiB