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

Rasterabstände und beliebiger Höhe ansetzen

ruth1
Newcomer
Hallo Zusammen, :winken:

ich habe hier ein Problem und komme einfach nicht auf die Lösung:

Ich habe eine Schiene mit Bohrungen im Raster von 300 mm, die unterste Bohrung beginnt bei 50 mm. Die Gesamtlänge der Schiene ist 6100 mm.

Jetzt soll ein Wandhalter dran, der immer in der Mitte der Schiene sitzt aber immer bei der nächstliegenden Bohrung. Die Schienen kann ich ganz beliebig kürzen.

Ich kann Rasterabstände programmieren oder auch auf die Hälfte verschieben. Aber ich komme nicht drauf, wie ich beides kombinieren kann.

Vielleicht kann mir jemand helfen.

Danke
ArchiCAD21, Voll, D, Windows 7
7 ANTWORTEN 7
Anonymous
Nicht anwendbar
Poste bitte mal Deinen Code.
ruth1
Newcomer
Oh Sorry,

ich bin nicht so fit in der "Forumssprache".

Soll das heißen, ich soll meine Programmierung einstellen?
ArchiCAD21, Voll, D, Windows 7
Anonymous
Nicht anwendbar
Ja genau.
Aber es reicht der Teil mit der Schleife.
ruth1
Newcomer
Es handelt sich hier um zwei Objekte.
Das eine ist die Schiene mit den Bohrungen. Obwohl ich hier die Bohrungen nicht programmiert habe, da mir das Objekt sonst zu groß wird. Also bringt da die Programmierung nichts.

Das andere Objekt ist die Halterung, die angeschraubt werden soll. Hier die Programmierung der Position der Halter:

!! HALTER UNTEN
ADDZ schienen_A+schienen_L/2
GOSUB "halter"
DEL 1

!! HALTER OBEN
ADDZ schienen_A+schienen_L-0.05
GOSUB "halter"
DEL 1

!! HALTER MITTE
IF schienen_L>=2.75 THEN
ADDZ schienen_A+schienen_L/4*3
GOSUB "halter"
DEL 1
ENDIF

Ich habe nach wie vor die Hoffnung, daß das mit zwei Objekten funktioniert.
ArchiCAD21, Voll, D, Windows 7
Anonymous
Nicht anwendbar
Hier mein Vorschlag:
laenge ist die variable Höhe der Schiene
SPHERE ist der Dummy für den Halter

laenge = 2.1

anzahl_loecher = INT(laenge/0.3)


ADDz 0.05
FOR i = 1 TO anzahl_loecher
ADDz (i-1) * 0.3
ADDx 0.05
ROTx 90
CUTPOLYa 2,1,0,
0,0,901,
0.01,360,4001
DEL 3
NEXT i
DEL 1

BLOCK 0.1,0.01,laenge

FOR i = 1 TO anzahl_loecher
CUTEND
NEXT i

mitte = laenge/2
IF anzahl_loecher/2 = INT(anzahl_loecher/2) THEN diff = 0.30
IF anzahl_loecher/2 # INT(anzahl_loecher/2) THEN diff = 0.15
loch_unter_mitte = 0.05 + (anzahl_loecher)*0.3/2 + diff
loch_ueber_mitte = 0.05 + (anzahl_loecher)*0.3/2 - diff

diff_o = loch_ueber_mitte - mitte
diff_u = loch_unter_mitte - mitte

abstand = MIN(loch_ueber_mitte, loch_unter_mitte)

ADDz abstand
SPHERE 0.01
DEL 1
ruth1
Newcomer
Super, danke! Das hat mir schon viel weitergeholfen.

Was bedeutet #?
ArchiCAD21, Voll, D, Windows 7
Anonymous
Nicht anwendbar
# ist ungleich