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

Subskript wird nicht ausgeführt [Gelöst]


Hallo Zusammen,

in der 2014er Version habe ich einige SPs erzeugt welche Subskripte verwenden.
Soweit hat alles gut geklappt.
In der aktuellen 2015er wird nun ein Subskript nicht mehr korrekt ausgeführt.

Im Projektverzeichnis--> bzw Unterverzeichnis Smartparts sind alle Skripte gespeichert.
Ebenso im STD/Smartparts lokal und auf dem Server.

In einem neuen Smartpart klappt der Aufruf auch nicht.

Werden die Variablen im Subskript direkt ergänzt (grün), klappt alles.

Was ist hier der Fehler? Muss das Subskript irgendwo sonst hinterlegt sein?
Danke für alle Rückmeldungen!

Hier die Skriptinhalte.
Hauptskript:
s = 40
h_mutter = 20
CALL sechseck PARAMETERS s = s , h_mutter = h_mutter

Subskript (sechseck):
s = 20
h_mutter = 10

swh = s / 2
!Ankathede
ck = swh / COS ( 30 )
!Gegenkathede
ak = TAN ( 30 ) * swh

PRISM 6 , h_mutter , -ck , 0 , -ak , -swh , ak , -swh , ck , 0 , ak , swh , -ak , swh

VG
Marcus

Hallo Marcus,

es wäre hilfreich, die beiden SmartParts zu posten. Sonst wir es nur "Raterei"...

Folgende Hinweise genereller Art:

1. Der Name des aufzurufenden SmartPArts im CALL-Befehl sollte immer in Anführungszeichen stehen:
CALL "sechseck" PARAMETERS s = s , h_mutter = h_mutter
2. Die Parameter "s" und "h_mutter" müssen im Subscript existieren und gleiche Typen haben,
sonst klappt die Übergabe nicht.
3. Das Subscript muss im Prj-Verzeichnis im SmartParts-Ordner vorhanden sein. Es sollte dort also
eine Datei "sechseck.smt" geben

Warum es scheinbar funktioniert, wenn s = 20 h_mutter = 10 ergänzt wurden, kann ich mir nicht erkären. Diese beiden Zuweisungen legen ja die Parameter nicht an!

Gruß Jörg

Hallo Nemo,

danke für die Antworten.

zu 1.
Werde ich künftig berücksichtigen.

zu 2.
Das Anlegen der Variablen in der Parameterliste hat den Ausschlag gegeben.
Interessant ist, die Smartparts funktionieren in der 14er Version ohne Einschränkung.
Die Variablen waren dort auch nicht in der Parameterliste geführt.
Habe die Smartparts noch angehängt.

zu 3.
Die Datei existiert dort.

Gruß
Marcus

VG
Marcus

Anhänge (3)

Typ: application/octet-stream
1144-mal heruntergeladen
Größe: 5,06 KiB
Typ: application/octet-stream
1200-mal heruntergeladen
Größe: 9,43 KiB
Typ: application/octet-stream
1147-mal heruntergeladen
Größe: 9,43 KiB

Hallo,

ja, das "Anlegen von Parametern" durch Parameter-Übergabe könnte ein Bug in der 2014 gewesen sein,
durch den Dein SmartPart dort noch lief. Generell darf es aber nicht sein, daß "irgendwie" Parameter dazukommen, ohne daß man diese explizit in der Parameterliste neu erstellt hat.
Wenn der/die Parameter im Subscript nicht exisiterte(n), sollte das Subscript allein gar nicht lauffähig gewesen sein!
Also bitte sicherstellen, daß die übergebenen Parameter im Subscript überhaupt existieren.
Ist Dein Problem damit gelöst?

Gruß jörg

Hallo Jörg,

danke, ich denke schon.
Nachdem ich noch mit Abstürzen zu kämpfen hatte, habe ich noch den Scriptcache geleert.
Werde die Info künftig berücksichtigen.
Ich setze das Thema auf gelöst.

Gruß
Marcus

VG
Marcus

..eins noch:

Dein "2015_sechseck.smt" ruft sich selbst auf.
Vorsicht bei Rekursionen ohne Abbruchbedingung.
Das ist nur bis zum 1000. Aufruf spaßig...

Gruß Jörg

Da hab ich mich beim Zusammenstellen der Dateien offensichtlich vertan.
Das war die falsche Datei.
Eigentlich gibt es keine rekursiven Aufrufe...
Das Sechseck.smt soll eigentlich nur von anderen Smartparts aufgerufen werden.

Gruß
Marcus

VG
Marcus