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

Variable über Menü und grafisch ändern

graber
Advocate
Möchte eine Variable sowohl über das Eingabefenster eingeben, als auch grafisch über einen beweglichen hotspot verändern können.
Wenn ich aber die Variable grafisch verändere, so ändert sich der Wert im Menü nicht mit.
Wie kann ich dies erreichen?
10 ANTWORTEN 10
Frank Beister
Advisor
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">so ändert sich der Wert im Menü nicht mit.Welches Menü? Das Eingabefenster - die "Objekteinstellungen"?

Das sollten sie aber. Beim HOTSPOT2 gibst du an, welcher Parameter sich graphisch verändern lassen soll. Der wird auch geändert und ist dann beim nächsten Aufruf der Einstellungen angepaßt. Sollte er das nicht sein, vermute ich, daß du an dem Parameter im Skript noch mit PARAMETERS "rumfummelst" oder den falschen Parameter verwendest.

Sonst poste mal das Skript oder Screenshots.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
graber
Advocate
als Beispiel:
Habe ein Objekt, welches in den Objekteinstellungen eine Variable Tiefe hat; nun gebe ich in den Objekteinstellungen dafür z.B. 1,0 ein. Nachdem ich es plaziert habe, hat er also die Teife 1,0 m. Nun ändere ich das Objekt indem ich einen bestimmten hotspot2 verändere, und dazu die neue Tiefe (die als text daneben steht) über tiefe+ verschobenes maß (z.B. 0,5m) des hotspots berechne. (also Tiefe 1,5m) Graphisch also alles ok; Wenn ich nun den Parameter Tiefe in den Objekteinstellungen anschaue, so steht dort aber weiterhin 1,0m
graber
Advocate
Beipiel:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> sdm=0.6
swd=0.1

add2 0,-st
HOTSPOT2 0, 0, 12, tvvy, 1+128 !Basis
HOTSPOT2 0, -1, 13, tvvy, 3 !Referenz
HOTSPOT2 0, tvvy, 14, tvvy, 2 !mov

del 1

st=st-tvvy


line2 -sdm/2,-0.04,-sdm/2,-st
line2 sdm/2,-0.04,sdm/2,-st

line2 -sdm/2-swd,0,-sdm/2-swd,-st-0.15
line2 sdm/2+swd,0,sdm/2+swd,-st-0.15

line2 -sdm/2,-st,sdm/2,-st
line2 -sdm/2-swd,-st-0.15,sdm/2+swd,-st-0.15

line2 -sdm/2-swd,0,sdm/2+swd,0
line2 -sdm/2,-0.04,sdm/2,-0.04
line2 -sdm/2,0,-sdm/2,-0.04
line2 sdm/2,0,sdm/2,-0.04
graber
Advocate
st ist die Tiefe.
also geb ich in den objekteinstellungen für st 1,0m ein.
Nun ändere ich grafisch den wert von st auf 1,5 (st:1,0+tvvy:0,5) In den Objekteinstellungen steht aber weiterhin 1,0.

Übrigens sind alle anderen skripte leer (also kein parameter skript)
graber
Advocate
P.S. Es geht dabei um st und nicht um tvvy! tvvy wird korrekt in den Objekteigenschaften dargetellt, aber das neu berechnete st nicht (!)
Wie kann ich analog obigem Beispiel st richtig berechnet anzeigen?
Frank Beister
Advisor
Ganz auf die Schnelle:

Wenn du st ändern willst, mußt du auch st beweglich machen. Warum hantierst du noch mit tvvy herum? Du hast ja ganz explizit tvvy als graphisch bewegich deklariert. Also wird auch nur der Parameter verändert.

Ich bin mir, seit kurzem nicht mehr ganz sicher, weil ich ein Objekt gesehen habe, bei dem das offensichtlich doch funktioniert. Ich habe das aber noch nicht bestätigt oder erklärt bekommen. Mein bisheriger Stand ist daher noch folgender.

Außerhalb des Einstellungsdialoges lassen sich Parameter

A) nur graphisch
B) max 2 am gleichen beweglichen Fangpunkt
C) nur die im HOTSPOT2/HOTSPOT benannten Parameter

verändern. Es lassen sich (wohlgemerkt außerhalb des Einstellungsdialoges) Parameter mittels des PARAMETERS-Befehls NICHT verändern.

Es gibt die Möglichkeit beim Aufruf des Einstellungsdialoges (GLOB_MODPARA_NAME="") zu prüfen, ob sich etwas geändert hat (Wert immer doppelt vorhalten: einmal beweglich, einmal mit PARAMETERS Wert_sik=Wert_flex) und dann den gewünschten Parameter mit PARAMETERS st=tvvy zu setzen, doch hilft das in deinem Fall nicht, weil du immer den Dialog zum Aktualisieren einmal öffnen müßtest.

Also nochmal die Frage: Warum ist st nicht flexibel oder andersrum, warum wird tvvy nicht ausgegeben?
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
graber
Advocate
ok, in obigem fall ist dies möglich.
aber ich habe folgendes Problem, da funktionierts nicht: bei einem Objekt kann ich die Neigung über die Objekteinstellungen eingeben (z.B. 2%).
nun möchte ich diese zusätzlich indirekt graphisch ändern können. Die neue Neigung berechne ich aber über EndX-AnfangX / EndY -AnfangY. (EndX und EndY sind bewegliche Hotspots.)
Wie kann ich die neue Neigung in die Objekteinstellungen bekommen?
Frank Beister
Advisor
Es geht immer um Eindeutigkeit:

Entweder du berechnest die Steigung ODER du berechnest EndX und EndY. Wenn du im Dialog je nach Eingabe den jeweils anderen Wert berechnen lassen willst, mußt du dies mit GLOB_MODPARA_NAME ausdifferenzieren.

Das ist nun ein bißchen so wie Davids und Martins Standardspruch zur AC-Version. Wir tapsen hier etwas allgemein in der Materie. Um konkret zu helfen ist in diesem Fall auch das konkrete Objekt/ die klare Zielsetzung nötig.

Eine Neigung auf Prozentbasis ist aber nicht direkt graphisch editierbar.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
graber
Advocate
Ok, ich wills noch mal probieren:
Konkret hab ich eine Rohrleitung im Schnitt (die Neigung N derselben gebe ich also mal voraussichtlich mit 2% an). Nun platziere ich mein Objekt und sehe, daß ich die Neigung erhöhen möchte. Zu diesem Zweck ziehe ich den Endpunkt tiefer. (also wird y geringer) Die Neigung könnte ich nun über Der endpunkt ist ein beweglicher Hotspot (der um da maß endy) verschoben wird. Die neue Neigung wird über die Vertikale Höhenunterschied (Endy) gebrochen durch die Horizontale Länge des Rohrs berechnet und als Text daneben platziert.
Nun soll aber auch der Eintrag N in den Objekteinstellungen den eneuen Wert anzeigen. (Denn vielleicht möchte ich auch über die Objekteinstellungen das Maß der Neigung auf z.B. 2,5% verändern)
(Wie funktioniert das mit Glob_...?)
Irgendwie verständlich ausgedrückt?