abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
BIM Coordinator Program (INT) April 22, 2024

Gehen Sie den nächsten Schritt Ihrer Karriere als zertifizierter Graphisoft BIM Koordinator!

Programmierung
Alles über Programmierung in GDL und Python

For Next schlaufe fehler?

Anonymous
Nicht anwendbar
Hallo miteinander.
Ich bin neu hier und noch nicht so lange mit ArchiCAD vertraut. Ich versuche verschiedene Element zu automatisieren mit GDL.
Vorab... meine Muttersprache ist Englisch, also bitte um etwas geduld mit meiner Deutsche Gramatik 🙂

Meine Problem:
Ich habe erfolgreich einen Bodenelement erstellt mit Schlitzlöcher und möchte es mit einen For Next Schlaufe kopieren. Das Erste Element der Schlaufe erscheint tadellos. Jeder andere Element hat irgend einen fehler (die anscheinend von den Schlitzlocher verursacht ist) darin, das ich nach viele stunden forschung nicht heraus finden kann warum.

Wenn ich die im Schlaufe berechnete Schlitzlöcher Koordinaten mit Print herausgeben, und die zahlen koordinaten direkt im cprism funktion reingeben funktionieren alle Elemente richtig.

Anbei sende ich die zwei objekte, einmal mit reinen zahlen das funktioniert, einmal mit der schlaufe funktion die der Fehler irgendwo darin steckt.

Ich war sehr sehr glücklich wenn jemand dabei helfen könnte.

Vielen Dank für jeder hinweis

Schlaufe Code: (Funktioniert nicht richtig)

FOR z=1 TO 5
ADDy z*0.5
!rotz 90
Print "SF ",z,"--------------------\n"
GOSUB "Slatted Floor"
DEL 1
NEXT z

END


"Slatted Floor":

!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Initialise !!!!!!!!!!!!!!!!!!!!!!!!!!!!

TopThickness=SF_Height*0.45
SolidX=0.125
StepY=0
XPOS=0
Y1=0
Y2=0
X1=0
X2=0
X3=0
X4=0
ab=0
i=0
YMID=0

SF_Width=0.465 !!Width of Element
NumLength=2.5 !!Length of Element
SW=0.035 !!SlitWidth
FirstY=0.11 !!Middle point (Y) of first Slit
StepY=0.125 !!Distance Between Slits

Nr_SlitColumns=INT(NumLength/0.75) !!Get Nr. of Columns
SlitColumnLength= (NumLength-((Nr_SlitColumns+1)*SolidX))/Nr_SlitColumns !! Calculate Slit Length
SlitColumnLength= ROUND_INT(SlitColumnLength*100)/100 !! Round Value
Nr_SlitRows=SF_Width/(ROUND_INT((FirstY+StepY*100))/100) !!Get Nr. of Rows

YMID = FirstY !! Middle point of first Slit

!!!Calculate Parameters for Slits

For ab = 1 to 2
XPOS=SolidX !!X Startpoint
Y1 = YMID-SW/2
Y2 = YMID+SW/2
For i = 1 to Nr_SlitColumns
X1 = XPOS
X2 = XPOS+SlitColumnLength
X3 = XPOS+SlitColumnLength
X4 = XPOS

PUT X1, Y1, 0, 15, SF_SurfaceMaterial
PUT X2, Y1, 0, 15, SF_SurfaceMaterial
PUT X3, Y2, 0, 15, SF_SurfaceMaterial
PUT X4, Y2, 0, 15, SF_SurfaceMaterial
PUT X1, Y1, 0, -1, SF_SurfaceMaterial

HOTSPOT X1, Y1, 0
HOTSPOT X2, Y1, 0
HOTSPOT X3, Y2, 0
HOTSPOT X4, Y2, 0

! HOTSPOT 0,Y1,0
! HOTSPOT 0,YMID,0
! HOTSPOT 0,Y2,0
XPOS = X2+SolidX
Print "Row ",ab," , Column ",i," :\n",X1, Y1," : ",X2, Y1," : ",X3, Y2," : ",X4, Y2," : ",X1, Y1, "\n ----------\n"
next i
YMID=YMID+StepY
HOTSPOT 0,YMID,0
next ab


addz -TopThickness
pen SF_OutlinePen

!!!!MainSlab

set building_material SF_BuildingMaterial, DEFAULT, DEFAULT
sect_attrs{2} SF_SectionPen, SF_LineType
cprism_{4} SF_SurfaceMaterial, SF_SurfaceMaterial, SF_SurfaceMaterial,7,
5+(NSP/5), TopThickness,
0, 0, 0, 15, SF_SurfaceMaterial,
NumLength, 0, 0,15, SF_SurfaceMaterial,
NumLength, SF_Width, 0, 15, SF_SurfaceMaterial,
0, SF_Width, 0, 15, SF_SurfaceMaterial,
0, 0, 0, -1, SF_SurfaceMaterial,
USE(NSP)


DEL 1
RETURN




Code mit Zahlen: (Funktioniert)

FOR z=1 TO 5
ADDy z*0.5
!rotz 90
Print "SF ",z,"--------------------\n"
GOSUB "Slatted Floor"
DEL 1
NEXT z

END


"Slatted Floor":

!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Initialise !!!!!!!!!!!!!!!!!!!!!!!!!!!!

TopThickness=SF_Height*0.45
SolidX=0.125
StepY=0
XPOS=0
Y1=0
Y2=0
X1=0
X2=0
X3=0
X4=0
ab=0
i=0
YMID=0

SF_Width=0.465 !!Width of Element
NumLength=2.5 !!Length of Element
SW=0.035 !!SlitWidth
FirstY=0.11 !!Middle point (Y) of first Slit
StepY=0.125 !!Distance Between Slits

Nr_SlitColumns=INT(NumLength/0.75) !!Get Nr. of Columns
SlitColumnLength= (NumLength-((Nr_SlitColumns+1)*SolidX))/Nr_SlitColumns !! Calculate Slit Length
SlitColumnLength= ROUND_INT(SlitColumnLength*100)/100 !! Round Value
Nr_SlitRows=SF_Width/(ROUND_INT((FirstY+StepY*100))/100) !!Get Nr. of Rows

YMID = FirstY !! Middle point of first Slit




addz -TopThickness
pen SF_OutlinePen

!!!!MainSlab

set building_material SF_BuildingMaterial, DEFAULT, DEFAULT
sect_attrs{2} SF_SectionPen, SF_LineType
cprism_{4} SF_SurfaceMaterial, SF_SurfaceMaterial, SF_SurfaceMaterial,7,
50, TopThickness,
0, 0, 0, 15, SF_SurfaceMaterial,
NumLength, 0, 0,15, SF_SurfaceMaterial,
NumLength, SF_Width, 0, 15, SF_SurfaceMaterial,
0, SF_Width, 0, 15, SF_SurfaceMaterial,
0, 0, 0, -1, SF_SurfaceMaterial,

!!Row 1 Column 1:
0.125 , 0.0925 , 0, 15, SF_SurfaceMaterial,
0.791667 , 0.0925 , 0, 15, SF_SurfaceMaterial,
0.791667 , 0.1275 , 0, 15, SF_SurfaceMaterial,
0.125 , 0.1275 , 0, 15, SF_SurfaceMaterial,
0.125 , 0.0925 , 0, -1, SF_SurfaceMaterial,


!!Row 1 , Column 2 :
0.916667 , 0.0925 , 0, 15, SF_SurfaceMaterial,
1.58333 ,0.0925 , 0, 15, SF_SurfaceMaterial,
1.58333 , 0.1275 , 0, 15, SF_SurfaceMaterial,
0.916667 , 0.1275 , 0, 15, SF_SurfaceMaterial,
0.916667, 0.0925 , 0, -1, SF_SurfaceMaterial,

!!Row 1 , Column 3 :
1.70833, 0.0925 , 0, 15, SF_SurfaceMaterial,
2.375 , 0.0925, 0, 15, SF_SurfaceMaterial,
2.375 , 0.1275, 0, 15, SF_SurfaceMaterial,
1.70833 , 0.1275, 0, 15, SF_SurfaceMaterial,
1.70833, 0.0925 , 0, -1, SF_SurfaceMaterial,

!!Row 2 , Column 1 :
0.125 , 0.2175, 0, 15, SF_SurfaceMaterial,
0.791667 , 0.2175, 0, 15, SF_SurfaceMaterial,
0.791667, 0.2525, 0, 15, SF_SurfaceMaterial,
0.125 ,0.2525, 0, 15, SF_SurfaceMaterial,
0.125 ,0.2175 , 0, -1, SF_SurfaceMaterial,

!!Row 2 , Column 2 :
0.916667 , 0.2175, 0, 15, SF_SurfaceMaterial,
1.58333 ,0.2175, 0, 15, SF_SurfaceMaterial,
1.58333 ,0.2525, 0, 15, SF_SurfaceMaterial,
0.916667 ,0.2525, 0, 15, SF_SurfaceMaterial,
0.916667 , 0.2175 , 0, -1, SF_SurfaceMaterial,

!!Row 2 , Column 3 :
1.70833 , 0.2175, 0, 15, SF_SurfaceMaterial,
2.375 ,0.2175, 0, 15, SF_SurfaceMaterial,
2.375 ,0.2525, 0, 15, SF_SurfaceMaterial,
1.70833 ,0.2525, 0, 15, SF_SurfaceMaterial,
1.70833 , 0.2175 , 0, -1, SF_SurfaceMaterial,

!!Row 3 , Column 1 :
0.125 ,0.3425, 0, 15, SF_SurfaceMaterial,
0.791667 , 0.3425, 0, 15, SF_SurfaceMaterial,
0.791667, 0.3775, 0, 15, SF_SurfaceMaterial,
0.125 , 0.3775, 0, 15, SF_SurfaceMaterial,
0.125, 0.3425 , 0, -1, SF_SurfaceMaterial,

!!Row 3 , Column 2 :
0.916667 ,0.3425, 0, 15, SF_SurfaceMaterial,
1.58333 ,0.3425, 0, 15, SF_SurfaceMaterial,
1.58333 , 0.3775, 0, 15, SF_SurfaceMaterial,
0.916667 , 0.3775, 0, 15, SF_SurfaceMaterial,
0.916667, 0.3425 , 0, -1, SF_SurfaceMaterial,

!!Row 3 , Column 3 :
1.70833, 0.3425, 0, 15, SF_SurfaceMaterial,
2.375 , 0.3425, 0, 15, SF_SurfaceMaterial,
2.375 ,0.3775, 0, 15, SF_SurfaceMaterial,
1.70833 , 0.3775, 0, 15, SF_SurfaceMaterial,
1.70833 , 0.3425 , 0, -1, SF_SurfaceMaterial


DEL 1
RETURN
3 ANTWORTEN 3
Frank Beister
Advisor
Wieso verwendest du USE(NSP) und nicht GET(nsp)?

Ich habs mir nicht genau angesehen, aber ich glaube, da könnte das Problem liegen.
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
Anonymous
Nicht anwendbar
aaaaahhhhhh
Danke viel mal!
Soviel Zeit für so ein kleine Fehler!

Ich habe USE benutzt weil ich die unterscheid nicht richtig verstanden habe (Irgendwo ein ähnliches beispiel im netz gefunden)

....Anfanger fehler halt.

Vielen Dank für die Schnelle Antwort!
LG
Brent
Frank Beister
Advisor
selfGDL
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
Einschreiben und zertifiziert werden!