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

verschiebliche Hotspots mit Dynamischem Array

JonasSP
Contributor

Hallo zusammen 
ich würde gerne verschiebliche Hotspot generieren. Dies gelingt auch so weit. allerdings ist die Anzahl der Hotspots Dynamisch. 
im Parameterscript initalisiere ich die Parameter

    DIM x[]
    DIM y[]
    FOR i = 1 to points
        x[i]=i
        y[i]=i
    NEXT i
   PARAMETERS  x=x
  PARAMETERS y=y

Und im 2D Script erstelle ich die Hotspots

    unid=0
    FOR i=1 to points
        !x control
        HOTSPOT2 0,y[i],        unID,x[i],1+128     :unID=unID+1        !BASE
        HOTSPOT2 x[i],y[i],     unID,x[i],2         :unID=unID+1        !MOVE
        HOTSPOT2 -1,y[i],       unID,x[i],3         :unID=unID+1        !REF
    NEXT i

Jetzt habe ich Einfach das Problem, das im Parameter Script x[i]=i steht und ich entsprechend die Hotspots nicht verschieben kann da i ein Fixer wert ist und nicht auf einen Parameter verweist. 
ich hoffe es kann mir jemand helfen

Operating system used: Windows 10

5 ANTWORTEN 5
JonasSP
Contributor

ich gehe davon aus, dass das Problem im Parameterscript liegt 

    FOR i = 1 to points
        x[i]=i
        y[i]=0
    NEXT i

Wenn ich die Definition 
x[i]=i ausklammere dann sind die Hotspots verschieblich, allerdings ist die Anzahl nicht mehr dynamisch
Frank Beister
Moderator

Kann sein, dass die Syntax nicht genau stimmt, aber vom Prinzip:

if vardim1(x)< points then

for i= vardim1(x) to points
parameters x[i]=i, y[i]=0
next i

endif
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

herzlichen Dank für die schnelle Antwort 
Allerdings funktiniert es nach wie vor nicht 
da es mir die das Array x und y nicht mehr Dynamisch macht 
Wenn ich points z.b im auf 2 oder grösser setze geht nicht mehr und die Array Grösse von x und y bleibt bei 1


habe nun folgenden Code im Parameterscript

    DIM x[]
    dim y[]
    FOR i = 1 to points
          x[i]=i
          y[i]=0
       
    NEXT i

if vardim1(x)< points then
    for i= vardim1(x) to points
        parameters x[i]=i
        parameters y[i]=0
    next i

endif
   
    PARAMETERS      x=x
    PARAMETERS      y=y
Wenn ich die Rot markierten Stellen auskommentiere sind die Hotspots verschieblich aber die Hotspots dafür nicht mehr verschieblich
wo ist mein Fehler?
herzlichen Dank im Voraus für jede Hilfe

 

Der Fehler ist, dass die verschobenen Werte immer wieder überschrieben werden. Das Parameters Skript wird immer abgearbeitet, wenn ein Parameter geändert wird. Kontinuierlich immer wieder sogar, wenn ein beweglicher Fangpunkt im Grundriss verändert wird. Er wird geändert und sofort wieder auf die Anfangswerte überschrieben. das kann nicht gehen.

 

Ein Auslagern dieses Skriptteiles hat übrigens auch keinen Sinn, weil PARAMETERS nur im Parameter Skript funktioniert.

 

Wie oben eingebaut war meine Idee nicht gedacht. DIM für x und y ist überflüssig. Ist ja ohnehin ein Parameter, sonst funktionieren die Hotspots ja nicht. Vorher noch alles initialisieren ist auch kontraproduktiv. S.o. Alle existierenden Felder des Arrays brauchen keine neuen Werte.

 

! ##################
! PARAMETER SKRIPT

n = vardim1(x)
if n < points then
  for i = n+1 to points
    parameters x[i] = x[n] + (i-n) , y[i] = y[n]
  next i
endif

! ##################
! 2D SKRIPT

    unid=0
    FOR i=1 to vardim1(x)
        !x control
        HOTSPOT2 0,y[i],        unID,x[i],1+128     :unID=unID+1        !BASE
        HOTSPOT2 x[i],y[i],     unID,x[i],2         :unID=unID+1        !MOVE
        HOTSPOT2 -1,y[i],       unID,x[i],3         :unID=unID+1        !REF
    NEXT i

 

Wo kommt denn "points" her? ist das ein Parameter in der Liste und wird nicht graphisch bestimmt?

 

Points muss wahrscheinlich ein PARAMETER sein. das hängt aber von dem Gesamtkonzept des Objektes ab.

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

Setup info provided by author