Hallo!
Ich habe mir die Smartparts bereits in der 2012er Version angesehen,
wegen der schlechten Dokumentation, aber schnell das Interesse verloren.
Vor Kurzem entdeckte ich die Seite http://www.selfGDL.de im Web, und seit dem
beschäftige ich mich wieder intensiver mit den Smartparts. Da sich
Smartparts aber doch von ArchiCAD GDL-Objekten unterscheiden, bleiben
einige Fragen trotzdem unbeantwortet, vielleicht kann jemand helfen:
1. Infodialog:
Wie kann man in Strings einen Zeilenumbruch verwenden, wie im
Standarddialog von Nemetschek in Zeile 3 [= str5] ("\n" wie in anderen
Sprachen geht nicht!)?
2. Array-Parameter:
Kann ich die Array-Größe eines Parameters skriptgesteuert ändern, z.B.
Redimensionierung mit DIM x[array_size] (so geht's nicht).
3. Array-Parameter in der Palette:
Wie bekomme ich den Bearbeitungsdialog für Arrays (den [ ... ] Button),
da anscheinend nur dort Arrayelemente hinzugefügt oder gelöscht werden
können (siehe Frage 2), in der Palette angezeigt?
probiert: I_INFIELD "x"... , I_INFIELD "x[]"... , I_INFIELD "x[1]"...
und das ganzen auch mit I_INFIELD_2 ... - es wird immer nur ein
Bearbeitungsfeld für einen Wert erzeugt, oder nichts bei fehlerhafter
Syntax.
4. PREV_MODE:
Was ist der Vorteil/Sinn der Funktionen PREV_LINE2 und PREV_ARC2, da ich
ja auch die normalen Funktionen LINE2 und ARC2, aber auch alle anderen
Zeichenfunktionen benutzen kann?
Ab hier gehts direkt an Nemetschek:
5. SPLINE2: (Programmfehler?)
status=1 (geschlossener Spline) funktioniert nicht, auch nicht in der
Variante 1+2.
6. Bewehrungsfunktionen:
Wird es jemals eine verwendbare Dokumentation (eine gute erwarte ich eh nicht)
zu den Bewehrungsfunktionen geben, oder muss ich das alles
aus den mitgelieferten Smartparts lernen?
7. Fehlersuche: (Wunsch)
Weder die PRINT noch BREAKPOINT Funktion sind sehr hilfreich. PRINT
funktioniert im PREV_MODE anscheinend nicht, und BREAKPOINT funktioniert
nur im Editor, womit eine Interaktion mit der Eingabepalette schwer zu
testen ist, z.B. die Auswertung von GLOB_UI_BUTTON_ID. Vieles ist
natürlich über Umwege machbar, ich würde mir aber ein Debugfenster für
das laufende Script wünschen, in das einfache Ausgaben über einen Befehl
z.B. "DEBUG_PRINT" erfolgen können, oder fragt einfach eure
Smartpart-Entwickler die haben warscheinlich ähnliche Probleme, oder
bessere Entwicklungswerkzeuge, als wir normalen Anwender.
So das wars fürs Erste.
Großer Dank geht an die Macher der Seite http://www.selfGDL.de, die Ihre Seite
kostenlos zu Verfügung stellen und dafür viel Freizeit investiert haben.
Ich möchte meine Erfahrungen mit den Smartparts auf der Seite
smartparts.tzb-moitzi.at mit allen teilen, damit die Einstiegshürde für
andere vielleicht etwas niedriger wird.
Noch besteht die Seite zum Großteil aus einfachen Übersetzungen der
englischen Dokumentation, ergänzt um Erklärungen von der Seite
http://www.selfGDL.de, aber es soll mehr werden.
Mit freundlichen Grüßen,
Manfred Moitzi