Support Forum

Frage zu "unterscripten" im Smartpart


Hallo

meine ersten "programmierungen" habe ich im Bereich Excel VBA gemacht, dort kann man ja belibig viele Subs im Code haben, welche man dann im "HauptSub" aufruft. Gibt es im Bereich der Allplan Smartpartprogrammierung etwas ähnliches?
Im Screenshot sieht man die Grundsätzliche Idee, das es als Function nicht wirklich geht, ist mir klar, da ja was zurückgegeben wird.
Weiß jemand wie man so etwas in den Smartparts realisiert?

Grüße Paul

Anhänge (1)

Typ: image/png
93-mal heruntergeladen
Größe: 6,04 KiB

Hallo Paul!

FUNC ruft man innerhalb des Smartparts über eine Gleichung auf:

x = box2(1,5,1,0.6)
END

FUNC box2 (l,b,h,t)
....
FUNC_END

CALL ist für das Laden und Platzieren von externen SMT-Dateien gedacht:

CALL "box2" PARAMETERS l = 1, b = 1, h = 1, t = 0.6

Dazu muss box2.smt in Deinem "Library"-Verzeichnis vorhanden sein.

lg,
Stefan

GEA Arquitectos S.L.P.
Calle Gerardo Diego 6A | 41013 Sevilla | Spain

Hallo Stfan,

Vielen Dank, es funktioniert genauso wie ich es mir vorgestellt habe, so bekomme ich den Code deutlich "sauberer" hin

Beste Grüße
Paul

wobei man vermeiden sollte, externe smt in ein, in sich geschlossenes SMT, zu laden

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Guten Abend,

Ich hätte da nochmal eine Frage, und zwar bin ich auch ein wenig mit Python unterwegs, wo man functionen vordefinierte Parameter mitgegeben, diese aber auch überschreiben an, kurz zur Erläuterung:

def box1(x =5 ,y = 3 , z = 1):
Box(x,y,z)

Das dieser Befehl so nicht in py funktioniert ist klar, die Frage wäre, kann man das auch mit smartparts machen, dh vordefinierte Paramater nutzen die aber ggf. überschrieben werden können?

Mit freundlichen Grüßen
Paul

Nein, es gibt keine "vordefinierten Parameter" (Funktionsparameter mit Standard-Werten)
in der SmartPart-FUNC-Funktion. Mann muss immer alle Parameter in der richtigen Reihenfolge übergeben!

Bei der CALL-Funktion ist es anders.
Diese wird ohne weitere PArameter-Übergabe mit den Parametern des gespeicherten SmartParts ausgeführt:
CALL "box2" benutzt also die gespeicherten Parameter!

Das ist im Ergebnis so ähnlich wie Standard-Werte...

Hallo Nemo,
Danke für die Antwort, mit der CallFunktion kann ich diese dann Nur nicht überschreiben, wenn man es mal bräuchte.
Es ist ja auch kein Akt die Parameter mit zu übergeben, Nur könnte man es dann doch deutlich übersichtlicher gestalten.

Grüße Paul