Aktuelle Zeit: 28. Mai 2022, 16:31
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: hotspot2 - halber wert
BeitragVerfasst: 4. Mai 2022, 23:21 
Offline
Mitglied

Registriert: 27. Apr 2003, 01:01
Beiträge: 122
Wohnort: Graz
Land: AT
Betriebsystem: Windows 10
habe eine strasse mit der Breite B

hotspot2 0, 0, unID, B, 1+128 :unID=unID+1
hotspot2 0, B, unID, B, 2 :unID=unID+1
hotspot2 0, -1, unID, B, 3 :unID=unID+1

weil die strasse bezüglich Achse symmetrisch ist,
möchte ich den halben Wert B also B/2 als hotspot von der Achse ziehen können

hab schon viel versucht

hotspot2 0, B/2, unID, B, 2 :unID=unID+1 !funktioniert nicht
mul2 !funktioniert nicht

danke für Hinweise

_________________
---
Ac.at up to date
. . e n t e r . : . p r i z e . : . t e c n o . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 5. Mai 2022, 08:02 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2731
Wohnort: Hamburg
Geht so nicht. Neuen Parameter anlegen und im Parameterskript

B = neu*2
PARAMETERS B=B
LOCK "B"

Und dann den "neu" mit dem Hotspot verbinden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 5. Mai 2022, 08:38 
Offline
Mitglied

Registriert: 27. Apr 2003, 01:01
Beiträge: 122
Wohnort: Graz
Land: AT
Betriebsystem: Windows 10
vielen Dank

hat geklappt
:D

_________________
---
Ac.at up to date
. . e n t e r . : . p r i z e . : . t e c n o . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 9. Mai 2022, 17:58 
Offline
Forum Veteran

Registriert: 10. Apr 2004, 01:01
Beiträge: 1959
Wohnort: südlich
Land: DE
Darf ich mich hier mit dranhängen?
... hab etwas ähnliches:

Würde den Parameterwert gerne so definieren.

Bild

Dürfte wohl auch mit 'rot2' gehen... doch ohne, wohl eleganter.

Habe die "Methode" wie oben versucht... 1. Zeile im Parameterskript wäre eigentlich klar...
Code:
p_pl_a = A-p_pl
(geht aber nur so herum)

Sieht aber fast so aus, als ob es die 2. und 3. Zeile auch braucht, damit so etwas funktioniert.
Geht das auf diesem Weg überhaupt?

_________________
...wer nicht fragt bleibt dumm

ARCHICAD for Future
--------------------------------------------------
ac 8- 25 | macintosh OS 12 | win11


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 9. Mai 2022, 19:58 
Offline
Forum Veteran
Benutzeravatar

Registriert: 28. Aug 2014, 21:34
Beiträge: 1254
Land: DE
@Achmed

Du musst dir eigentlich nur die gewünschte Logik aussuchen.
Franks Lösung funktioniert natürlich, ist dann aber beschränkt, weil man "B" durch das LOCK dann nicht mehr direkt ändern kann.
Wenn man alle Parameter frei halten will, geht das nur mit etwas mehr Code im Objekt.
GLOB_MODPAR_NAME wird dein Freund sein.

z.B:
Code:
if GLOB_MODPAR_NAME = "p_pl_a" then
    p_pl = A - p_pl_a
endif
parameters  p_pl = p_pl


Aufpassen muss man jetzt, wenn du "A" änderst. Was soll dann passieren? Welche Abhängigkeiten hast du?
Für etwas schwierigere Fälle muss man dann eventuell noch einen Schattenparameter mitführen. (Der z.B. Verhältnisse mitschleift, die man nutzen kann, um Abhängigkeiten aufzulösen, welche man erst nach dem erneuten Durchlauf des Parameterskripts zum Schluss mit dem PARAMETERS Befehl updated.)

_________________
AC 24 DE auf Win 10
»slower than ever«|Entwickler von GDL für Sublime Text
|Handgeklöppelte GDLs|Bettlektüre unter Runxels Archicad Wiki


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 10. Mai 2022, 10:19 
Offline
Forum Veteran

Registriert: 10. Apr 2004, 01:01
Beiträge: 1959
Wohnort: südlich
Land: DE
Hey vielen Dank, shadow, dass du dich meiner Sache angenommen hast.

Aber, abgesehen davon, dass ich nicht wirklich kapiere, was 'GLOB_MODPAR_NAME' wirklich, wie bewirkt... und wozu es in aller Welt auch noch das 'parameters ... = ... am Schluss braucht, frage ich mich, ob das so herum, wie ich das haben will, auf diesem Weg funktionieren kann.

Mein Parameter 'p_pl' ist ja der, mit dem ich arbeiten will – ist der Abstand von rechts.
Den will ich immer eingeben können... und hier will ich auch zum verschieben anfassen.
(Ändert sich A – die Länge, wandert der Punkt (Add2...) mit den Herdplatten mit.

Dies aufgefasst, wäre
Code:
 p_pl_a = A - p_pl
wohl schon richtig herum gewesen – oder?

Wenn mein Hotspot nun aber nur mit 'p_pl_a' also dem "Hilfsparamter" funktionieren kann (weil das rechnen im hotspot2-Befehl selbst ja zu nichts führt...), dann "gibt der aber den Wert vor"... und das ganze kann dann nicht mehr funktionieren – oder?

_________________
...wer nicht fragt bleibt dumm

ARCHICAD for Future
--------------------------------------------------
ac 8- 25 | macintosh OS 12 | win11


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 10. Mai 2022, 14:53 
Offline
Forum Veteran

Registriert: 10. Apr 2004, 01:01
Beiträge: 1959
Wohnort: südlich
Land: DE
Edit Edit Edit

Skript mit
Code:
p_pl = A - p_pl_a
wäre wohl doch das richtigere.
Das "blöde" ist aber nach meiner Auffassung, dass man die Reihenfolge überhaupt einhalten muss... und das Gleichheitszeichen hier nicht für das gleiche wie in der Algebra steht. (Wäre es so, dann würde sich immer der 'andere' Wert ändern, egal auf welcher Seite der Gleichung man was ändert...) :|

Wäre, um das "auszubügeln", denn GLOB_MODPAR_NAME gedacht?

Beim verschieben wird der ursprüngliche Abstand von 'A' bis zu den Herdplatten dazu addiert.

Bild

Gebe ich 'p_pl' wieder manuell ein, ändert sich 'p_pl_a' nicht mit.

(jaja... jetzt steigere ich mich da voll rein.. sorry :x ... aber manchma, bringt eine so was ja irgendwie doch weiter...)

_________________
...wer nicht fragt bleibt dumm

ARCHICAD for Future
--------------------------------------------------
ac 8- 25 | macintosh OS 12 | win11


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 10. Mai 2022, 18:07 
Offline
Forum Veteran
Benutzeravatar

Registriert: 28. Aug 2014, 21:34
Beiträge: 1254
Land: DE
Ich weiß nicht, was ich dir jetzt noch mitteilen soll. Eigentlich ist in meinem Beitrag schon alles gesagt und alles Handwerkszeug enthalten, was du brauchst.

Vielleicht noch mal ein bisschen Wiederholung.
Was GLOB_MODPAR_NAME ist, kann man sich entweder schon denken (GLOBaler MODifizierter PARameter NAME) oder im Handbuch schnell nachschlagen.
Du hast ja schon selbst gemerkt, dass in der Programmierung eine Zuweisung von Werten von rechts nach links gelesen wird. Der rechte Teil der "Gleichung" wird dem linken zugewiesen als Wert.
PARAMETERS spielt nun – wichtig! – einen Wert als Parameter zurück. Im GDL ist es so, dass alle Parameter zu Beginn eines Skriptdurchlaufs "kopiert" werden und als lokale Variablen zur Verfügung stehen, die überschreibbar sind. (Zu Testen, in dem du z.B. "A" im 2D-Skript mit einem Wert überschreibst, aber im 3D wird "A" wieder wie im Parameter sein. PARAMETERS ist eine Funktion, die einen berechneten Wert wieder allen Skripten zur Verfügung stellt, vereinfacht gesagt.)

Und jetzt sollte der Groschen gefallen sein:
Mit GLOB_MODPAR_NAME fragst du ab, welcher Parameter sich als letztes geändert hat, und es ist klar, warum man das braucht, im Zusammenspiel mit PARAMETERS.

Also, wie bereits gesagt, du musst nur deine Abhängigkeiten dir mal definieren, durchgehen, und in Code gießen. »Was soll passieren, wenn ich "A" ändere; was passiert wenn ich "B" ändere, usw.«

_________________
AC 24 DE auf Win 10
»slower than ever«|Entwickler von GDL für Sublime Text
|Handgeklöppelte GDLs|Bettlektüre unter Runxels Archicad Wiki


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 11. Mai 2022, 11:59 
Offline
Forum Veteran

Registriert: 10. Apr 2004, 01:01
Beiträge: 1959
Wohnort: südlich
Land: DE
Hey Danke nochmals für die Erklärungen!

Ich bin halt wie der Neuling im Handwerk, der noch nicht so recht weiß, mit welchen Werkzeugen man was macht... wie die funktionieren usw. Sich das entsprechende Basiswissen anzueignen ist nicht ganz leicht...

Im Handbuch hatte ich schon nachgeschlagen... nach mehrmaligem lesen aber immer noch nicht kapiert, was man mir mit dem einzigen Satz, der zu dem Begriff dort steht, "Zusätzlich enthält die globale Variable GLOB_MODPAR_NAME (Typ Text) den Namen des letzten vom Anwender geänderten Parameters.", sagen will.
Mit dem entsprechenden Hintergrundwissen ist das ganz anders.

Bei euch auf self-GDL konnte ich den Begriff irgendwie nicht finden...

(Im Handbuch gibt's noch was lustiges an der Stelle:
Bild
... scheinen Italiener mitgeschrieben zu haben :wink: )

Aber nach dem ganzen gequatsche nochmals zum Thema:
Das, was ich wollte, dass sich die Parameter gegenseitig beeinflussen, mit der derselben Auswirkung, wurde durch das einfügen einer zweiten 'IF-Definition möglich, eben mit umgedrehten Werten.
So funktioniert das ganze. :D

(Allerdings wird im Tracker immer der Wert des Hilfsparameters angezeigt, weil ja der mit dem Hotspot verbunden sein muss.
So habe ich mir am Ende doch noch ein Skript mit add2... und rot2 zu dem Hotspot geschrieben, um das anders haben zu können...)

_________________
...wer nicht fragt bleibt dumm

ARCHICAD for Future
--------------------------------------------------
ac 8- 25 | macintosh OS 12 | win11


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: hotspot2 - halber wert
BeitragVerfasst: 11. Mai 2022, 15:34 
Offline
Forum Veteran
Benutzeravatar

Registriert: 2. Jun 2004, 01:01
Beiträge: 2731
Wohnort: Hamburg
GLOB_MODDPAR_NAME
Parameter und Variablen (unter Beispiel Erläuterung)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu: