Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Kreisinterpolation G2/G3 mit Bewegung in der dritten Achse

Beitrag 18.08.2023, 08:23 Uhr
JoergVS
JoergVS
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.08.2023
Beiträge: 2
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.
Angehängte Datei(en)
Angehängte Datei  Kontur.jpg ( 21.66KB ) Anzahl der Downloads: 29
 
   
Beitrag 18.08.2023, 11:34 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.931
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.
   
Beitrag 18.08.2023, 12:36 Uhr
JoergVS
JoergVS
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.08.2023
Beiträge: 2
QUOTE (CNCFr @ 18.08.2023, 10: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.


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?
   
Beitrag 18.08.2023, 14:11 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.931
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.
   
Beitrag 18.08.2023, 14:48 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.931
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
.
.
.
   
Beitrag 18.08.2023, 16:18 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.931
Habe das jetzt nochmals nachgelesen:
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: