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

Master-Variablen

Anonymous
Nicht anwendbar
Hallo Forum,

wie kann ich einem Objekt sagen, dass es auf die Variable eines anderen Objekts zugreifen soll? Oder geht das gar nicht? Die Idee wäre z.B. bei Geländern ein "Masterobjekt" zu erstellen, bei dem ich angebe wie viele Füllstäbe/m das Geländer haben soll. Die anderen Geländer greifen dann auf diese Variable zu und zeichnen sich dementsprechend. Ich bräuchte (so möcht' ich's zumindest haben) nur noch den Wert in dem "Masterobjekt" ändern und wusch! ändern sich alle anderen Geländer automatisch.

Schöne Grüße, seppizett
9 ANTWORTEN 9
Holger Kreienbrink
Graphisoft
Graphisoft
Dazu müsstest du das "Master" Objekt mittesl CALL aufrufen und die Parameter daraus übernehmen.
Oder alle Objekte in 3D aktivieren und die Parameter ändern. Das kommt aufs Gleiche raus, ohne Programmierung.
Holger Kreienbrink
Director Product Intelligence
Munich, Germany
Archicad since Version 5....
If I sound too harsh, please forgive me: I am German.
Anonymous
Nicht anwendbar
Du könntest dir auch Objekt vom Typ Modelleinstellungen erstellen und in den Geländerobjekten den dort eingestellten Wert abfragen. Näheres findest du hier und hier.
Anonymous
Nicht anwendbar
Danke. Ich hab's mir jetzt im GDL-Handbuch und auf selfgdl.de angeschaut, habe aber offensichtlich Probleme mit der Syntax. Ich schaffe es nicht, dem call ein returned_parameters hinzuzufügen.
Die Zeile:

call subroutine returned_parameters zaehlen

sollte dazu führen, dass in der Variablen zaehlen der Wert drinnen ist, der von der subroutine festgelegt wird.

Und in subroutine steht nur im Masterskript

zaehlen = 3
end zaehlen

Aber das funktioniert nicht. Der Wunsch wäre, dass (in diesem Fall) 3 aus der Variablen in der subroutine übernommen werden.
Anonymous
Nicht anwendbar
verschiebe das mal im Makro vom Master ins 2D bzw 3D skript. Das Makro wird wahrscheinlich nicht abgearbeitet, weil es keine 2D/3D-daten erzeugt. Zur Sicherheit packe mal nach dem END einen Befehl BLOCK 1,2,3 rein.
Anonymous
Nicht anwendbar
Doch doch, das Makro wird schon abgearbeitet. Problem habe ich mit dem "returned_parameters". Wenn ich das in den call-Befehl reingebe, gibt mir AC immer die Fehlermeldung, dass Variablen keine Befehlsnamen haben dürfen. Ich erkläre ihm offenbar nicht richtig, dass das keine Variable sein soll, sondern dass ich von der Subroutine einen Wert bekommen möchte, der dann in der Variablen "zaehlen" stehen soll.
Anonymous
Nicht anwendbar
Weiter oben hast du schon irgendwo stehen

subroutine="Makroname"


sonst musst du nämlich schreiben

call "subroutine" ...


Probiere es mal mit

call subroutine parameters all returned_parameters zaehlen


Ich glaube du kannst nicht empfangen ohne zu senden.
Anonymous
Nicht anwendbar
Wenn ich

call subroutine parameters all returned_parameters zaehlen

eingebe, meckert er, dass ein Komma fehlt. Subroutine ist in diesem Fall der Name des Makros.
Anonymous
Nicht anwendbar
Sorry. Müsste heissen:

call subroutine parameters all, returned_parameters zaehlen


oder

call subroutine, parameters all, returned_parameters zaehlen


Subroutine ist dem Fall nicht der Makroname, sondern ein Variablenname, der den Makronamen enthält. Bei

call "subroutine" parameters all, returned_parameters zaehlen


wäre subroutine der Makroname.
Anonymous
Nicht anwendbar
Verdammt, ich hatte die ganze Zeit "paramters all" statt "parameters all" stehen, weswegen der von mir gedachte Befehl als Variable interpretiert wurde.

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen