Mit G-Code, GRBL, CNCJS und Macro Magic die Grenzen der Heimbearbeitung erweitern

von | Mrz 10, 2024 | DIY 5-Achsen-CNC-Maschine, 工作機械の基礎, CNC-gesteuert | 0 Kommentare

Programme zur Verwendung mit der CNCjs-Makrofunktion

Kontinuierliches lineares Bearbeitungsprogramm

Dieses CNC-Programm ist für einen Bearbeitungsvorgang konzipiert, bei dem nacheinander entlang dreier Linien, die durch die Punkte A, B und C definiert werden, in drei separaten Durchgängen geschnitten wird, jeder tiefer als der letzte. Hier ist eine Aufschlüsselung der Variablen und ihrer Verwendung:

Variablen

  • PTH: Die Gesamttiefe des Schnitts, eingestellt auf -9 Einheiten. Dieser Wert ist negativ, da CNC-Maschinen negative Werte verwenden, um die Bewegung nach unten in das Material hinein darzustellen.
  • %POINT_A_X, %POINT_A_Y: Die X- und Y-Koordinaten von Punkt A, die den Beginn der ersten Linie markieren.
  • %POINT_B_X, %POINT_B_Y: Die X- und Y-Koordinaten von Punkt B, dem Ende der ersten Linie und dem Anfang der zweiten.
  • %POINT_C_X, %POINT_C_Y: Die X- und Y-Koordinaten von Punkt C, dem Ende der zweiten Linie und theoretisch zurück zum Ursprung, wenn es sich um eine geschlossene Form handelt.

Verwendung

  1. Aufstellen: Stellen Sie sicher, dass die CNC-Maschine für metrische Einheiten konfiguriert ist (G21) und die Spindeldrehzahl (S5000) und Vorschubgeschwindigkeit (F30) eingestellt sind.
  2. Erstpositionierung: Das Programm beginnt damit, das Werkzeug auf eine sichere Höhe zu bewegen (Z5) über dem Material und positioniert das Werkzeug dann am Ursprung (X0 Y0).
  3. Schneidprozess:
    • Das Werkzeug bewegt sich nach unten zur Oberfläche (Z0) und beginnt dann mit dem Schneidvorgang.
    • In jedem der drei Durchgänge bewegt sich das Werkzeug ein Drittel der Gesamttiefe nach unten (PTH/3) und bewegt sich dann nacheinander entlang der Linien von Punkt A über B nach C, wodurch ein kontinuierlicher Pfad entsteht.
    • Nach jedem Durchgang fährt das Werkzeug auf eine sichere Höhe zurück (Z13), stoppt die Spindel (M5), bewegt sich zurück zum Ursprung (X0 Y0) und pausiert (M0). Vor Beginn des nächsten Durchgangs startet die Spindel neu (M3), und das Werkzeug bewegt sich wieder nach unten (Z-13 abzüglich der zusätzlichen Tiefe).
  4. Fertigstellung: Nach dem letzten Durchgang endet das Programm mit M30, was das Ende des Programms signalisiert und die Maschine für den nächsten Arbeitsgang zurücksetzt.

Wichtige Punkte

  • Die Werkzeugtiefe erhöht sich schrittweise mit jedem Durchgang, wodurch dieses Programm ideal für den allmählichen Materialabtrag ist, Präzision gewährleistet und eine übermäßige Belastung des Werkzeugs vermeidet.
  • Die Verwendung relativer Koordinaten (G91) für Bewegung stellt sicher, dass jede Aktion auf der letzten aufbaut, was einfache Anpassungen des Pfads ohne Neuberechnung von einem festen Ursprung aus ermöglicht.
  • Dieses Programm eignet sich für Vorgänge, die mehrere Durchgänge mit kontrollierter Tiefe erfordern, wie etwa Gravieren, Kanalschneiden oder das Erstellen komplexer Formen mit präziser Tiefenkontrolle.
Kontinuierliches lineares Bearbeitungsprogramm (Awesome LINES Freak)

;Toller LINES-Freak

G90 G94
G17
G21;MM
PTH = -9

;Eingabe als G91
%POINT_A_X = 60
%POINT_A_Y = 0

%POINT_B_X = 11
%POINT_B_Y = -11

%POINT_C_X = 0
%POINT_C_Y = 0

S5000 M3
F30

G90
G0 Z5
X0 Y0

G0 Z0

;1
G91 G1 Z[TIEFE/3]G91 G1 X[POINT_A_X] Y[POINT_A_Y]
G91 G1 X[POINT_B_X] Y[POINT_B_Y]
G91 G1 X[POINT_C_X] Y[POINT_C_Y]

G91 G0 Z13
M5
G90 X0 Y0
M0
M3
G91 G0 Z-13

;2
G91 G1 Z[TIEFE/3]G91 G1 X[POINT_A_X] Y[POINT_A_Y]
G91 G1 X[POINT_B_X] Y[POINT_B_Y]
G91 G1 X[POINT_C_X] Y[POINT_C_Y]

G91 G0 Z13
M5
G90 X0 Y0
M0
M3
G91 G0 Z-13

;3
G91 G1 Z[TIEFE/3]G91 G1 X[POINT_A_X] Y[POINT_A_Y]
G91 G1 X[POINT_B_X] Y[POINT_B_Y]
G91 G1 X[POINT_C_X] Y[POINT_C_Y]

G91 G0 Z13
M5
G90 X0 Y0
M30

Programm zum Bohren von Löchern

In diesem CNC-Programm werden variable Einstellungen und bedingte Verzweigungen genutzt, um Lochbohr- oder Kreisnutoperationen wiederholt zu automatisieren und präzise auszuführen. Hier eine ausführliche Erklärung:

Variable Einstellungen

  • %TOOL_D = 3: Setzt den Werkzeugdurchmesser auf 3 mm.
  • %DURCHMESSER = 20: Setzt den Durchmesser des zu bearbeitenden Kreises auf 20 mm.
  • %Z_ST = 0: Setzt die Start-Z-Koordinate für die Bearbeitung auf 0.
  • %Z_DEPTH = -8: Legt die endgültige Z-Koordinate für die Bearbeitung auf -8 mm fest und gibt die Gesamttiefe des zu entfernenden Materials an.
  • %NO_CUT = 20: Setzt die Anzahl der Durchgänge (Bearbeitungsrunden) auf 20.
  • %A_DEPTH = [Z_DEPTH - Z_ST] / NO_CUT: Berechnet die Schnitttiefe für jeden Durchgang. Dadurch wird die Gesamttiefe gleichmäßig durch die Anzahl der Schnitte geteilt, sodass ein gleichmäßiger Materialabtrag gewährleistet ist.

Bedingte Verzweigung

Bedingte Verzweigung wird verwendet als %UN = [(COUNT <= NO_CUT) ? ANZAHL: -1]. Das bedeutet „wenn ZÄHLEN (die aktuelle Anzahl der Durchgänge) ist kleiner oder gleich KEIN SCHNITT (die Gesamtzahl der Durchgänge), dann einstellen %UN Zu ZÄHLEN; andernfalls setzen Sie es auf -1.“ Diese Logik prüft, ob der Bearbeitungsprozess die angegebene Anzahl an Durchgängen erreicht hat und stellt fest, ob alle Bearbeitungsvorgänge abgeschlossen sind.

Verwendung im Bearbeitungsprozess

Mit dieser Logik funktioniert das Programm wie folgt:

  1. Zuwachs %COUNT um 1 für jeden Bearbeitungszyklus.
  2. Verwenden %UN für bedingte Verzweigung: Ausführen des Bearbeitungsbefehls (N[UN] G91 G3...) nur wenn %COUNT kleiner oder gleich ist %NO_CUT. Dadurch wird sichergestellt, dass der kreisförmige Pfad für die angegebene Anzahl von Malen befolgt wird.
  3. Sobald die angegebene Anzahl von Durchgängen abgeschlossen ist, stoppt das Programm die Ausführung von Bearbeitungsbefehlen.

Mit dieser Methode kann das Programm automatisch und genau die vorgegebenen Lochbohr- oder Kreisnutoperationen mit vorgegebener Tiefe und vorgegebenem Durchmesser ausführen. Die Verwendung bedingter Verzweigungen bietet Flexibilität bei der Steuerung des Bearbeitungsprozesses und macht das Programm leicht anpassbar und wiederverwendbar.

Kontinuierliches lineares Bearbeitungsprogramm (Awesome HOLES Freak)

;Toller LÖCHER-Freak

G90 G94
G17
G21;MM
;——————————————————————–
%TOOL_D = 3 ;Werkzeugdurchmesser
%DURCHMESSER = 20
%Z_ST = 0 ;Bearbeitungsstart Z-Koordinate
%Z_DEPTH = -8 ;Bearbeitung der endgültigen Z-Koordinate
%NO_CUT = 20 ;Anzahl der Runden (einer Maschine)

S5000 M3
F1000
G90 G0 Z5 ;Bewegungshöhe
G90 X0 Y0 ;Bearbeitungszentrumssitz Standard

;——————————————————————–

;Zum Startpunkt bewegen
G91 G0 Y[DURCHMESSER/2 – WERKZEUG_D/2]G90 G0 Z[Z_ST]

%COUNT = 0
%A_DEPTH = [Z_DEPTH- Z_ST] / NO_CUT

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

%COUNT = COUNT+1;———————————————————–
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G3 J-[DURCHMESSER/2 – WERKZEUG_D/2] Y-[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]N[UN] G91 G3 J[DURCHMESSER/2 – WERKZEUG_D/2 ] Y[DURCHMESSER – WERKZEUG_D] Z[A_TIEFE/2 ]

 

G90 G0 Z[Z_ST+5]M5
M30

Slotting-Programm

Dieses CNC-Programm ist für die Bearbeitung eines rechteckigen Teils mit abgerundeten Ecken konzipiert, das auch als „abgerundetes Rechteck“ bezeichnet wird. Mithilfe einer Kombination aus linearen und kreisförmigen Bewegungen (G1 und G3) wird das Material schrittweise in Schichten geschnitten, um die endgültige Tiefe zu erreichen. Hier ist eine Aufschlüsselung der wichtigsten Variablen, Funktionen und Verwendung:

Variablen-Setup

  • %TOOL_D: Durchmesser des Schneidwerkzeugs.
  • %CORNER_R: Radius der Ecken des Rechtecks. Dieser muss größer als der Werkzeugradius sein, um der Größe des Werkzeugs während des Rundungsvorgangs Rechnung zu tragen.
  • %X_WIDE Und %Y_WIDE: Die Abmessungen des Rechtecks in X- bzw. Y-Richtung.
  • %Z_ST: Start-Z-Koordinate für die Bearbeitung.
  • %Z_DEPTH: Endgültige Z-Koordinate, die die Gesamttiefe des Schnitts angibt.
  • %NO_CUT: Anzahl der Durchgänge, die das Werkzeug durchführt, um die endgültige Tiefe zu erreichen, was das schrittweise Schneiden erleichtert.

Schlüsselberechnungen

  • %QUARTER, %LÄNGE, %A_DEPTH, %Z_DEPTH_X, %Z_DEPTH_Y, %Z_DEPTH_R: Dies sind berechnete Werte, die zur Steuerung der Tiefe und Länge jedes Durchgangs verwendet werden, um einen gleichmäßigen Materialabtrag über das Rechteck und seine abgerundeten Ecken sicherzustellen.

Bearbeitungsprozess

  • Das Programm beginnt mit dem Einrichten der Maschine G90, G94, G17, G21 für absolute Positionierung, Vorschubgeschwindigkeit pro Minute, Auswahl der XY-Ebene bzw. Messung in Millimetern.
  • Anschließend wird das Werkzeug unter Berücksichtigung des Werkzeugdurchmessers und des Eckenradius in die Startposition bewegt.
  • Für jeden Durchgang (%COUNT Inkrement) bewegt sich das Werkzeug linear (G1) und Bögen (G3) um die Ecken mit berechneten Z-Tiefenanpassungen (%Z_DEPTH_X, %Z_DEPTH_Y, %Z_DEPTH_R), um das abgerundete Rechteck zu erstellen. Der Vorgang wiederholt sich für die angegebene Anzahl von Schnitten (%NO_CUT).
  • Bedingte Prüfungen (%UN) werden verwendet, um die Schleife fortzusetzen, bis die erforderliche Anzahl von Durchgängen abgeschlossen ist, wobei die Schnitttiefe bei jedem Durchgang schrittweise angepasst wird.
  • Abschließend erfolgt ein Schlichtdurchgang in voller Tiefe, um die endgültige Oberflächenqualität sicherzustellen.

Verwendung

  1. Bereiten Sie die Maschine vor: Laden Sie das Programm, richten Sie das Werkzeug mit dem angegebenen Durchmesser ein und befestigen Sie das Material.
  2. Programmvariablen: Verstelle die %X_WIDE, %Y_WIDE, %Z_DEPTH, Und %NO_CUT Variablen nach Bedarf für Ihre spezifischen Projektanforderungen.
  3. Führen Sie das Programm aus: Bearbeitungsprozess starten. Das Werkzeug führt automatisch die notwendigen linearen und kreisförmigen Bewegungen aus, um das verrundete Rechteck zu bearbeiten.

Dieses Programm ist besonders nützlich für Teile, die präzise abgerundete Ecken erfordern, wie sie bei Gesenken, Formen und mechanischen Komponenten üblich sind. Sein inkrementeller Tiefenansatz minimiert den Werkzeugverschleiß und ermöglicht einen effizienten Materialabtrag.

Slotting-Programm (Awesome SLOTS Freak)

;Toller SLOTS-Freak

G90 G94
G17
G21;MM
;——————————————————————–
%TOOL_D = 3 ;Werkzeugdurchmesser
%CORNER_R = 11.5 ;Radius von 4 Ecken. Stellen Sie mehr als den Werkzeugradius ein.
%X_WIDE = 23 ;Über Werkzeugdurchmesser einstellen
%Y_WIDE = 23 ;Über Werkzeugdurchmesser einstellen
%Z_ST = 0 ;Bearbeitungsstart Z-Koordinate
%Z_DEPTH = -2.8 ;Bearbeitung der endgültigen Z-Koordinate
%NO_CUT = 30 ;Anzahl der Runden (einer Maschine)

S5000 M3
F1000
G90 G0 Z5 ;Bewegungshöhe
G90 X0 Y0 ;Bearbeitungszentrumssitz Standard

;——————————————————————–

%QUARTER =[0.785*[CORNER_R*2 – TOOL_D]]%LENGTH = [QUARTER*4+[X_WIDE – TOOL_D]*2+[Y_WIDE – TOOL_D]*2] ;Distanz pro Runde
%A_DEPTH = [ Z_ST – Z_DEPTH] / NO_CUT ;Ein Schnitt

%Z_DEPTH_X = [[[X_BREIT – WERKZEUG_D] / LÄNGE]*A_TIEFE]%Z_DEPTH_Y = [[[Y_BREIT – WERKZEUG_D] / LÄNGE]*A_DEPTH]%Z_DEPTH_R = [-[VIERTEL / LÄNGE]*A_TIEFE]

;Zum Startpunkt bewegen
G91 G0

%C_DEPTH =Z_ST
%COUNT = 0

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

%COUNT = COUNT+1;———————————————————–
%C_DEPTH = C_DEPTH – A_DEPTH
%UN = [(COUNT <= NO_CUT) ? COUNT: -1]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] /2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2] Z[-Z_DEPTH_X]N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] [ECKE_R*2/2 – WERKZEUG_D/2] Z[Z_DEPTH_R]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2] Z[-Z_DEPTH_Y]N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2 ] Y[CORNER_R*2/2 – TOOL_D/2] Z[Z_DEPTH_R]

;仕上げ加工
%UN = 9999
G90 G1 Z[Z_DEPTH]N[UN] G91 G1 X[ -X_WIDE +CORNER_R*2]
N[UN] G91 G3 J-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2]

N[UN] G91 G1 Y[ -Y_WIDE +CORNER_R*2]
N[UN] G91 G3 I[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y-[CORNER_R*2/2 – TOOL_D/2]

N[UN] G91 G1 X[ X_WIDE – CORNER_R*2]
N[UN] G91 G3 J[CORNER_R*2/2 – TOOL_D/2] X[CORNER_R*2/2 – TOOL_D/2] Y[CORNER_R*2/2 – TOOL_D/2]

N[UN] G91 G1 Y[ Y_WIDE – CORNER_R*2]
N[UN] G91 G3 I-[CORNER_R*2/2 – TOOL_D/2] X-[CORNER_R*2/2 – TOOL_D/2] Y[CORNER_R*2/2 – TOOL_D/2]

G90 G0 Z[Z_ST+5]M5
M30