abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

Parameter lassen sich nicht zurückschreiben

runxel
Legend
Ich steh gerade vor dem Rätsel (und auf dem Schlauch), dass ich meine Parameter nicht in Abhängigkeit ändern kann.
Das sieht dann so aus (Parameterscript):
VALUES "papersize" "A3", "A2", "A1", "A0"
IF "papersize" = "A3" THEN
PARAMETERS A = 0.42, B = 0.297
ENDIF
...
...

Naheliegenderweise ein Objekt, dass zum Platzieren auf dem Layout gedacht ist; über ein Dropdownfeld kann man schnell die nötige Grösse auswählen – zumindest in der Theorie.
Tatsächlich aber passiert genau nichts, A und B bleiben unverändert.
Wo sehe ich den Wald vor lauter Bäumen nicht? Danke schonmal recht herzlich!
Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
13 ANTWORTEN 13
Anonymous
Nicht anwendbar
Die GROUP Befehle sind das schlechteste Beispiel überhaupt. Noch schlimmer kann man eine Sprache nicht gestalten.
PLACEGROUP braucht entweder Anführungszeichen oder nicht, je nach dem ob die Gruppe einfach nur eine Gruppe oder das Resultat aus einer Operation ist. Bei beidem wird Geometrie ausgegeben, die Herkunft sollte unerheblich sein.


placegroup "test"
name = "test"
placegroup name

platziert 2x das gleiche Element. Nämlich die Gruppe, die "test" heißt. Das hat nichts mit der Hekunft zu tun.
IMHO nicht inkonsequent.
runxel
Legend
"Ove" wrote:
Was genau meinst du?

Dass es in GDL unterschiedliche Typen gibt und auch geben muss ist klar, aber du kannst sie nicht deklarieren.
....
Weil kurz davor der Typ von integer auf real gewechselt hat. Das ist inkonsequent und schwer zu vermitteln! 😉


Ohja, das hast du recht, das ist wirklich übel.
Vor allem weil man strong typing ja erzwingen kann, indem man einen Parameter erstellt.

"Ove" wrote:

placegroup "test"
name = "test"
placegroup name

platziert 2x das gleiche Element. Nämlich die Gruppe, die "test" heißt. Das hat nichts mit der Hekunft zu tun. IMHO nicht inkonsequent.


Die Inkosequenz liegt darin, dass einmal Anführungszeichen nötig sind und einmal nicht.
Eigentlich gehts mir im Grunde ja nur darum, dass Strings wie Strings aussehen soll, und alles andere nicht. 😆 😄
Um bei dem Beispiel zu bleiben: Mit Herkunft ist gemeint, wie das Element deklariert wurde. Und dem Programmierer sollte es egal sein, wie die Gruppe entstanden ist.
Beides verweist ja auf das selbe, so wie du richtig schreibst. Dennoch muss man jetzt peinlich genau darau achten, wie die jeweilige Referenz zustande gekommen ist.
Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Anonymous
Nicht anwendbar
Dann mache es wie GS. Benenne Deine Variablen mit s für String, i für integer und b für boolean am Anfang des Namens. Wenn ein Wert keine Anführungszeichen hat und demnach auf einen Parameter zu verweisen scheint, kannst Du es am s erkennen.

placegroup "test"
name = "test"
placegroup "name"


KANN halt nicht das gleiche wie
placegroup "test"
name = "test"
placegroup name

sein. Wie willst du sonst unterscheiden, wo geht es um einen String und wo um einen Stringwert einer Variablen.

Beides verweist ja auf das selbe, so wie du richtig schreibst. Dennoch muss man jetzt peinlich genau darau achten, wie die jeweilige Referenz zustande gekommen ist.

Ja, das Leben ist hart. 😉
runxel
Legend
"Ove" wrote:
Dann mache es wie GS. Benenne Deine Variablen mit s für String, i für integer und b für boolean am Anfang des Namens.

Ja, das habe ich mir längst angewöhnt.
Aber das hilft auch nur bedingt; zwar ist dann klar, was wirklich ein String ist und was nicht, aber ich muss mir dennoch Gedanken machen, wo ich Anführungszeichen hinzupacken habe, und wo nicht.
Zudem habe ich ja nicht umsonst das Sublime Text Plugin entwickelt. Ich mach lieber Copy&Paste, als dass ich mir den integrierten GDL-Editor antue.
Leider sieht momentan alles in Anführungszeichen aus wie ein String. 😕
(Da bin ich allerdings dran das zu ändern... Denn zum Lesen braucht es dann doch den zweiten Blick.)

"Ove" wrote:
Beides verweist ja auf das selbe, so wie du richtig schreibst. Dennoch muss man jetzt peinlich genau darau achten, wie die jeweilige Referenz zustande gekommen ist.

Ja, das Leben ist hart. 😉

Ohja – du siehst, ich leide schwer! 😢 😄
Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»