Freitag
Hallo ins Forum,
ich habe eine Frage zum Skripten mit GDL.
Ich habe angefangen, bei der Planung für den Deckenspiegel mit selbst erstellten 2D-Objekten als Symbole für die Leuchten etc. zu arbeiten und möchte diese auch den anderen in meinem Büro zur Verfügung stellen.
Weil nicht alle Lust haben werden, sich mit GDL auseinanderzusetzen (/herumzuschlagen), habe ich jeweils nur einen Hotspot in die Mitte gesetzt. So wollte ich sicherstellen, dass das Objekt (nur) über die Einstellungen geändert und vor allem die Größe angepasst werden kann, ohne dass man erst ins Skript wechseln muss, um die Parameter zu entsperren. Trotzdem wäre sichergestellt, dass nicht beim Verschieben o.ä. versehentlich die Größe geändert wird.
Soviel als Hintergrund zu meiner Frage.
Das Problem ist, dass manche Objekte nach Veränderungen auf den Projektursprung vesetzt werden. Konkret: platziere ich z.B. eine Leuchte L1, öffne das Einstellungsmenü und wandle sie über die Objektbibliothek in eine Leuchte L15 um, so springt diese Leuchte nach Übernehmen der Änderung von ihrer eigentlichen Position an den Projektursprung. Ich bin schon so weit, dass ich das Problem behebe, wenn ich doch wieder mehrere Hotspots platziere.
Gleichzeitig habe ich aber eine weitere Leucht L29, die im Gegensatz zu L15 (quadratisch) kreisförmig ist, bei der das Problem nicht auftritt. Das verwundert mich sehr.
Die Parameter sind in beiden Fällen (bis auf die unterschiedliche Größe) gleich, und auch im Skript finde weder ich noch ChatGPT eine entscheidende Abweichung jenseits der geometrischen Unterschiede.
Skript L15:
Skript L29:
Danke für eure Hilfe. Vielleicht noch ein Hinweis: ich habe mir das GDL-Programmieren erst vor ein paar Wochen angefangen beizubringen und keine Vorerfahrungen in Coding. Solange ich keine ganz groben Fehler gemacht habe oder die Nachvollziehbarkeit für euch zu stark eingeschränkt ist, seid bitte gnädig mit mir.
Liebe Grüße
Mr Valdez
Gelöst! Gehe zu Lösung.
Freitag
Ich kann es gerade nicht austesten, daher nur Blindflug 😉
In welchem Skript bist du denn ? Das ist relevant, weil nicht jeder Befehl überall funktioniert.
Probier mal, ob es so klappt
gestern
Das ist nicht falsch was du da gemacht hast, aber deswegen nicht weniger trickreich.
Ich würde zur Sicherheit und wegen der Sauberkeit es auch so codieren:
MASTERSKRIPT:
A = 0.202
B = A
PARAMETERSKRIPT:
PARAMETERS A=A, B=B
LOCK "A", "B"
HIDEPARAMETER "B"
gestern
Ich habe das Problem jetzt 'gelöst', auch wenn ich die genaue Ursache nicht kenne: das Problem betrifft nur bereits platzierte Objekte, in deren Skript ich dann nochmal etwas verändert habe. Lösche ich das bestehende Objekt aus dem Modell und platziere es aus der Bibliothek neu, habe ich das Problem nicht mehr. Teilweise hat es auch gereicht, in den Objekteinstellungen (nicht dem Editor) die Größe einmal zu verändern.
Es scheint also tatsächlich nicht am Skript gelegen zu haben, sondern nur durch die Überschreibung nach Änderungen herborgerufen worden zu sein.
Eure Hinweise habe ich/werde ich trotzdem weitestgehend übernehmen. Falls die Erklärung nicht ausführlich genug war und eurerseits noch Fragen offen sind, kann ich das auch nochmal genauer ausführen. Ich weiß nicht, wie interessant mein Problem für euch war.
Ansonsten nochmals danke euch allen!
Gruß Mr Valdez
Freitag
Ich kann es gerade nicht austesten, daher nur Blindflug 😉
In welchem Skript bist du denn ? Das ist relevant, weil nicht jeder Befehl überall funktioniert.
Probier mal, ob es so klappt
gestern
Ich hatte das 2D-Skript geteilt, sorry. Alles andere war entsprechend leer.
Auch nach den Korrekturen bleibt das Problem aber leider (außer dass bei Nichtausblenden der anderen Hotspots das Objekt im Grundriss nicht verzerrt werden kann, sondern nur verschoben).
Trotzdem schon mal danke, auch für den Hinweis mit dem Parameters-Befehl.
gestern
Was genau meinst Du mit : "Konkret: platziere ich z.B. eine Leuchte L1, öffne das Einstellungsmenü und wandle sie über die Objektbibliothek in eine Leuchte L15 um" ?
Speicherst Du ein bereits platziertes GDL-Objekt nochmal neu als neues GDL-Objekt?
gestern - zuletzt bearbeitet gestern
@Jochen Suehlo Nein, so meinte ich das nicht.
Wenn ich im Grundriss ein Objekt platziere und die Objekteinstellungen (Strg-T) öffne, wird mir ja am linken Rand die Objektbibliothek angezeigt, wo ich das oder die ausgewählten Objekte auch durch ein anderes Bibliotheksobjekt ersetzen kann (ist vielleicht ein besserer Begriff als 'Umwandeln').
Das ist, was ich meinte; ich hoffe, so ist die Formulierung verständlicher.
gestern
Ich habe das ausgetestet. Der Parameters-Befehl gehört in jedem Fall ins PARAMETER-Script.
Das mit dem Springen auf den Ursprung kann ich nicht nachvollziehen. Ich kann mir auch nicht vorstellen, dass das das Script macht.
Ich kann mich auch nicht erinnern, dass ich so einen Fall schon mal gehabt hätte.
Welches Archicad und welches Betriebssystem verwendest Du denn?
Hast Du die Tipps von archig befolgt?
gestern
@Jochen Suehlo Die Tipps habe ich befolgt und entsprechend den Parameters-Befehl ins entsprechende Skript verschoben.
Die Archicad-Version ist 27.0.0; Betriebssystem Win11 Pro, Version 23H2.
Um das nicht zu unterschlagen, hier meine Änderungen bei beim Parameter-Menü. Ich hatte das vorher nicht erwähnt, weil bei anderen Objekten die gleichen Bezeichnungen nicht zu Problemen geführt haben.
Die Benennungen hier waren für den Fall, dass andere aus meinem Büro das Objekt modifizieren wollen und sollte Orientierung geben, womit ich gearbeitet habe und was sie (vermeintlich) vernachlässigen können.
gestern
Das ist nicht falsch was du da gemacht hast, aber deswegen nicht weniger trickreich.
Ich würde zur Sicherheit und wegen der Sauberkeit es auch so codieren:
MASTERSKRIPT:
A = 0.202
B = A
PARAMETERSKRIPT:
PARAMETERS A=A, B=B
LOCK "A", "B"
HIDEPARAMETER "B"
gestern
Falls Zeichnungsteile aus dem 2D Symbol Fenster verwendet werden (mit fragment2), dann können dort auch Fixpunkte enthalten sein, die die Reihenfolge der Hotspots durcheinanderbringen.
Ich hatte Positionsänderungen bei eigenen Objekten auch schon beobachtet, wenn ein bereits platziertes Objekt durch ein anderes Objekt ersetzt wird.
Wenn du dein Objekt mit der Mitte am 0/0 Punkt geskriptet hast, dann sollte der Mittelpunkt im Objektdialog auch markiert sein, bevor du das Objekt durch ein anderes Objekt ersetzt.
gestern
Ich habe das Problem jetzt 'gelöst', auch wenn ich die genaue Ursache nicht kenne: das Problem betrifft nur bereits platzierte Objekte, in deren Skript ich dann nochmal etwas verändert habe. Lösche ich das bestehende Objekt aus dem Modell und platziere es aus der Bibliothek neu, habe ich das Problem nicht mehr. Teilweise hat es auch gereicht, in den Objekteinstellungen (nicht dem Editor) die Größe einmal zu verändern.
Es scheint also tatsächlich nicht am Skript gelegen zu haben, sondern nur durch die Überschreibung nach Änderungen herborgerufen worden zu sein.
Eure Hinweise habe ich/werde ich trotzdem weitestgehend übernehmen. Falls die Erklärung nicht ausführlich genug war und eurerseits noch Fragen offen sind, kann ich das auch nochmal genauer ausführen. Ich weiß nicht, wie interessant mein Problem für euch war.
Ansonsten nochmals danke euch allen!
Gruß Mr Valdez