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