Siemens
Digital Industries, Motion Control, Machine Tool Systems
Kreisinterpolation G2/G3 mit Bewegung in der dritten Achse
18.08.2023, 08:23 Uhr
Ich würde gerne eine Kontur abfahren um eine kleine Fase anzubringen. Mein Problem sind die beiden G2-Sätze mit dem Kreis in XZ und dem zusätzlichen Y-Fahrweg. Nehme ich den Y-Fahrweg in einen eigenen G1-Satz vor den jeweiligen G2-Satz läuft die Kontur an der Maschine durch. Ich fräse alles im G17. Maschine: Heller H2000 / FP4000. Fräserradiuskorrektur, Spiegelungen oder sonstiges habe ich in diesem Programmteil nicht benutzt.
In meinem uralten CIMCO-Editor läuft es durch und sieht dann wie im angehängten Bild aus.
N1140 G0 X50 Y46.5 B0 Z0 F1000
N1150 Z-32.5
N1160 X45
N1170 G1 X42.3
N1180 X42.807 Z-47.7
N1190 G2 X48.803 Y46.771 Z-53.5 I5.997 K0.2
N1200 G3 X56.641 Y49.171 Z-53.5 I-4.203 J27.729
N1210 G2 X62.639 Y52.91 Z-47.643 I0 K6
N1220 G1 X63 Z-32.5
N1230 X60.3
N1240 G0 X55.3
N1250 Z0
Ein Ebenenwechsel im Konturzug habe ich noch nicht versucht, stelle ich mir aber schwierig vor.
In meinem uralten CIMCO-Editor läuft es durch und sieht dann wie im angehängten Bild aus.
N1140 G0 X50 Y46.5 B0 Z0 F1000
N1150 Z-32.5
N1160 X45
N1170 G1 X42.3
N1180 X42.807 Z-47.7
N1190 G2 X48.803 Y46.771 Z-53.5 I5.997 K0.2
N1200 G3 X56.641 Y49.171 Z-53.5 I-4.203 J27.729
N1210 G2 X62.639 Y52.91 Z-47.643 I0 K6
N1220 G1 X63 Z-32.5
N1230 X60.3
N1240 G0 X55.3
N1250 Z0
Ein Ebenenwechsel im Konturzug habe ich noch nicht versucht, stelle ich mir aber schwierig vor.
Angehängte Datei(en)
18.08.2023, 11:34 Uhr
Ein Ebenenwechsel ist im Prinzip kein Problem, führt aber dazu, dass die Komponenten der Werkzeuglänge anderen Achsen zugeordnet werden. Wenn dein Werkzeug (z.B. ein Bohrer) also im einfachsten Fall bei G17 nur eine Länge von L1= 100 hat, wirkt diese Länge in der Z-Achse, bei G18 (X-Z-Ebene) aber in Y und wird entsprechend herausgefahren.
Eine Alternative ist, das Koordinatensystem vor deinem XZ-Kreis um 90 Grad um X-zu drehen und den Kreis dann wie in G17 zu programmieren, und anschließend die Drehung wieder rückgängig zu machen.
Eine Alternative ist, das Koordinatensystem vor deinem XZ-Kreis um 90 Grad um X-zu drehen und den Kreis dann wie in G17 zu programmieren, und anschließend die Drehung wieder rückgängig zu machen.
18.08.2023, 12:36 Uhr
Ein Ebenenwechsel ist im Prinzip kein Problem, führt aber dazu, dass die Komponenten der Werkzeuglänge anderen Achsen zugeordnet werden. Wenn dein Werkzeug (z.B. ein Bohrer) also im einfachsten Fall bei G17 nur eine Länge von L1= 100 hat, wirkt diese Länge in der Z-Achse, bei G18 (X-Z-Ebene) aber in Y und wird entsprechend herausgefahren.
Eine Alternative ist, das Koordinatensystem vor deinem XZ-Kreis um 90 Grad um X-zu drehen und den Kreis dann wie in G17 zu programmieren, und anschließend die Drehung wieder rückgängig zu machen.
Eine Alternative ist, das Koordinatensystem vor deinem XZ-Kreis um 90 Grad um X-zu drehen und den Kreis dann wie in G17 zu programmieren, und anschließend die Drehung wieder rückgängig zu machen.
Tolle Idee mit dem drehen des Koordinatensystems um 90 Grad. Habe das jetzt so gemacht und es funktioniert. Eine Zusatzfrage: Vor der Rotation habe ich mit TRANS das Koordinatensystem auf die aktuelle Position gelegt und dann rotiert. Kann ich die aktuelle Position als Variable in den TRANS-Befehl übergeben?
18.08.2023, 14:11 Uhr
Ja das geht. Man kann die Frames alle auch explizit beschreiben.
Trans ist aber keine Funktion, sondern letztlich ein G-Code. Man kann ihm deshalb keine Parameter übergeben. Die einzelnen Komponenten sind aber als Systemvariable schreib- und lesabar.
Ich kann es dir aktuell aber nicht aus dem Stegreif sagen, wie genau, und zum Nachlesen habe ich gerade keine Zeit (vielleicht später).
In Handbuch "Grundlagen" oder "Arbeitsvorbereitung" ist das in dem Kapitel über Frames beschrieben.
Trans ist aber keine Funktion, sondern letztlich ein G-Code. Man kann ihm deshalb keine Parameter übergeben. Die einzelnen Komponenten sind aber als Systemvariable schreib- und lesabar.
Ich kann es dir aktuell aber nicht aus dem Stegreif sagen, wie genau, und zum Nachlesen habe ich gerade keine Zeit (vielleicht später).
In Handbuch "Grundlagen" oder "Arbeitsvorbereitung" ist das in dem Kapitel über Frames beschrieben.
18.08.2023, 14:48 Uhr
Du kannst natürlich die Zuweisung auch so machen:
CODE
DEF REAL X_OFFSET = 123.45
.
.
.
X= X_OFFSET ; Position anfahren
TRANS X= X_OFFSET; Nullpunktverschiebung setzen
.
.
.
.
.
.
X= X_OFFSET ; Position anfahren
TRANS X= X_OFFSET; Nullpunktverschiebung setzen
.
.
.
18.08.2023, 16:18 Uhr
Habe das jetzt nochmals nachgelesen:
Du kannst Drehung und Nullpunktverschiebung inklusive Aktivierung in eine Zeile packen:
Die Zahlenwerte wie 10, 20, 30, 90 kannst du auch durch Variable ersetzen. Wenn man Drehungen und Nullpunktverschiebungen verwendet, ist die Reihenfolge wichtig. CTRANS()...) : CROT(...) ist also i.a. eine andere Transformation als CROT(...) : CTRANS()...).
Achsen ohne Verschiebung / Drehung müssen nicht aufgelistet werden.
Du kannst Drehung und Nullpunktverschiebung inklusive Aktivierung in eine Zeile packen:
CODE
$P_FRAME = CTRANS(X, 10, Y, 20, Z,30) : CROT(X, 90)
Die Zahlenwerte wie 10, 20, 30, 90 kannst du auch durch Variable ersetzen. Wenn man Drehungen und Nullpunktverschiebungen verwendet, ist die Reihenfolge wichtig. CTRANS()...) : CROT(...) ist also i.a. eine andere Transformation als CROT(...) : CTRANS()...).
Achsen ohne Verschiebung / Drehung müssen nicht aufgelistet werden.
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: