Einige haben schon nachgefragt.
Ich habe mal ein Makro für G84 geschrieben.
Unterstützt werden Gewindewirbler (nur 1 Gang) und mehrgängige Gewindefräser.
Mit einem Gewindewirbler kann man halt alle möglichen Gewinde Fräsen, mit einem mehrgängigen halt nur Gewinde mit der Steigung des Fräsers.
Dafür sind mehrgängige Fräser viel schneller, weil u.U. nur eine Umdrehung gefräst wird.
Unterstützt wird Innengewinde/Außengewinde, Linksgewinde und Rechtsgewinde.
Als Werkzeug muss ein Gewindewerkzeug ausgewählt werden, und es müssen zu dem Werkzeug noch ein paar Zusatzdaten eingegeben werden.
D1 = virtueller Spitzendurchmesser minus H1 (Höhendreieck), dieser Durchmesser wird vom Hersteller meist angegeben (Bei M3 z.B. 2.3 oder 2.35mm)
L1 = die vermessene Länge (Wenn mit G43 gearbeitet wird)
D2 = Steigung des Fräsers (Gewindewirbler = 0, Mehrgangfräser Steigung, z.B. M3 = 0.5)
L2 = Anzahl der Gänge (Gewindewirbler = 1, Mehrgangfräser 2- xx)
Durch diese Daten erkennt das Makro welcher Fräser benutzt wird und stellt alles automatisch ein.
G84 Parameters (i.e. for M3):
Z = untere Tiefe des Gewindes
R = Rückzugsebene
Q = Oberkante Gewinde
J = nominaler Durchmesser (3mm=M3)
K = Steigung (0,5mm)
H = 0 = Innengewinde 1= Außengewinde
F = Vorschub
I = 0 = Rechtsgewinde 1=Linksgewinde
Aufruf von G84:
G84 X0 Y0 Z-5 R2 Q0 J3 K0.5 H0 I0 F160
Würde an Position XY 0,0 ein Rechts-Innen-Gewinde fräsen beginnend bei Z=0 und einer Tiefe von 5mm mit einer Steigung von 0,5mm und den Fräser auf 2mm zurückziehen.
Das Makro:
#NAME G84.txt #LABEL "Gewindefraesen"
(c) Ingolf Tippner, 09/2021
Gewindefräsen mit Gewindewirblern oder Mehrzahnfräsern
ToDo:
Gewindebohren (Unterscheidung durch Tool)
Tool-Einstellungen:
#922 Typ des Werkzeugs muss 11 (Tapdrill) sein
#923 D=Dia1 ist der Durchmesser des Werkzeuges (virtueller Spitzendurchmesser minus H1)
#926 Length2 ist Anzahl Zähne (1 bei Wirbler, 2..x bei Mehrzahnfräsern)
#924 Dia2 ist der Pitch (0 bei Wirbler)
Parameters (i.e. for M3):
Z = lower end depth/start depth
R = Rückzugsebene
Q = Oberkante Gewinde
J = Diameter nominal (3mm=M3)
K = Pitch (0,5mm)
H = 0 = inner threading 1= outer threading
F = Vorschub
I = 0 = Rechtsgewinde 1=Linksgewinde
%
#1=Z (Merke die Tiefe)
#2=0 (Seitlicher Versatz)
#3=0 (Anzahl Durchgänge)
#5=0 (Akku)
#6=J
#7=K
#8=Q
#9=X
#10=Y
#11=0 (Sicherheitsabstand seitlich bei AG)
#12=0 (H-Dreieck)
#13=0 (Kernbohrung Spitzenwert)
#14=0 (Äußerer Spitzenwert)
#15=0 (Kerndurchmesser Außengewinde)
(Ueberpruefe das Werkzeug)
IF (#922<>11) THEN (falsches Werkzeug)
PRINT "G84: Falsches Werkzeug gewählt."
M2
ENDIF
IF (#926=0) THEN (no parameters set)
PRINT "G84: Werkzeug Anzahl Zähne = 0"
M2
ENDIF
IF (#926>1) & (K<>#924) THEN
PRINT "G84: Steigung passt nicht zum Werkzeug."
M2
ENDIF
IF (H<>0) THEN (outer threading)
#11=(#6/2)+(#923+1.0)/2 (Versatz seitlich +0,5mm Luft)
#12=#7*0.5*1.7320 (H=Steigung/2*sqrt(3)
#14=#6+(#12/4)
#13=#14-(2*#12)
#15=#13+(#12/3)
#2=(#15+#923)/2 (Fräsbahndurchmesser)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
#3=ROUND(#3)
G0 X=#9+#11 Y=#10
G0 Z=R (Außenkontour+Abstand, Sicherheitshöhe)
IF I=1 THEN (Linksgewinde)
G0 Z=#1 (Absenken)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Rechtsgewinde)
(Starthöhe berechnen)
G0 Z=#1+(#3*#7)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=#9+#11
G0 Z=R
M99
ELSE (inner Threading)
#2=(#6-#923)/2 (Versatz seitlich innerhalb Bohrung)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
G0 X=#9 Y=#10 Z=R (Zentrum der Bohrung, Sicherheitshöhe)
IF I=0 THEN (Rechtsgewinde)
G0 Z=#1 (Absenken in Bohrung)
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Linksgewinde)
G0 Z=Q
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=X-#2
G0 Z=R
M99
ENDIF
M99
Simulation:
#1=Z (Merke die Tiefe)
#2=0 (Seitlicher Versatz zum Gewinde-DM)
#3=0 (Anzahl Durchgänge)
#5=0 (Akku)
#6=J
#7=K
#8=Q
#9=X
#10=Y
#11=0 (Sicherheitsabstand seitlich bei AG)
#12=0 (H-Dreieck)
#13=0 (Kernbohrung Spitzenwert)
#14=0 (Äußerer Spitzenwert)
#15=0 (Kerndurchmesser Außengewinde)
(Ueberpruefe das Werkzeug)
IF (#922<>11) THEN (falsches Werkzeug)
PRINT "G84: Falsches Werkzeug gewählt."
M2
ENDIF
IF (#926=0) THEN (no parameters set)
PRINT "G84: Werkzeug Anzahl Zähne = 0"
M2
ENDIF
IF (#926>1) & (K<>#924) THEN
PRINT "G84: Steigung passt nicht zum Werkzeug."
M2
ENDIF
IF (H<>0) THEN (outer Threading)
#11=(#6/2)+(#923+1.0)/2 (Versatz seitlich +0,5mm Luft)
#12=#7*0.5*1.7320 (H=Steigung/2*sqrt(3)
#14=#6+(#12/4)
#13=#14-(2*#12)
#15=#13+(#12/3)
#2=(#15+#923)/2 (Fräsbahndurchmesser)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
#3=ROUND(#3)
G0 X=#9+#11 Y=#10 Z=R (Außenkontour+Abstand, Sicherheitshöhe)
IF I=1 THEN (Linksgewinde)
G0 Z=#1 (Absenken)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Rechtsgewinde)
(Starthöhe berechnen)
G0 Z=#1+(#3*#7)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=#9+#11
G0 Z=R
M99
ELSE
#2=(#6-#923)/2 (Versatz seitlich innerhalb Bohrung)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
G0 X=#9 Y=#10 Z=R (Zentrum der Bohrung, Sicherheitshöhe)
IF I=0 THEN (Rechtsgewinde)
G0 Z=#1 (Absenken in Bohrung)
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Linksgewinde)
G0 Z=Q
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=X-#2
G0 Z=R
M99
ENDIF
M99
Ich habe mal ein Makro für G84 geschrieben.
Unterstützt werden Gewindewirbler (nur 1 Gang) und mehrgängige Gewindefräser.
Mit einem Gewindewirbler kann man halt alle möglichen Gewinde Fräsen, mit einem mehrgängigen halt nur Gewinde mit der Steigung des Fräsers.
Dafür sind mehrgängige Fräser viel schneller, weil u.U. nur eine Umdrehung gefräst wird.
Unterstützt wird Innengewinde/Außengewinde, Linksgewinde und Rechtsgewinde.
Als Werkzeug muss ein Gewindewerkzeug ausgewählt werden, und es müssen zu dem Werkzeug noch ein paar Zusatzdaten eingegeben werden.
D1 = virtueller Spitzendurchmesser minus H1 (Höhendreieck), dieser Durchmesser wird vom Hersteller meist angegeben (Bei M3 z.B. 2.3 oder 2.35mm)
L1 = die vermessene Länge (Wenn mit G43 gearbeitet wird)
D2 = Steigung des Fräsers (Gewindewirbler = 0, Mehrgangfräser Steigung, z.B. M3 = 0.5)
L2 = Anzahl der Gänge (Gewindewirbler = 1, Mehrgangfräser 2- xx)
Durch diese Daten erkennt das Makro welcher Fräser benutzt wird und stellt alles automatisch ein.
G84 Parameters (i.e. for M3):
Z = untere Tiefe des Gewindes
R = Rückzugsebene
Q = Oberkante Gewinde
J = nominaler Durchmesser (3mm=M3)
K = Steigung (0,5mm)
H = 0 = Innengewinde 1= Außengewinde
F = Vorschub
I = 0 = Rechtsgewinde 1=Linksgewinde
Aufruf von G84:
G84 X0 Y0 Z-5 R2 Q0 J3 K0.5 H0 I0 F160
Würde an Position XY 0,0 ein Rechts-Innen-Gewinde fräsen beginnend bei Z=0 und einer Tiefe von 5mm mit einer Steigung von 0,5mm und den Fräser auf 2mm zurückziehen.
Das Makro:
#NAME G84.txt #LABEL "Gewindefraesen"
(c) Ingolf Tippner, 09/2021
Gewindefräsen mit Gewindewirblern oder Mehrzahnfräsern
ToDo:
Gewindebohren (Unterscheidung durch Tool)
Tool-Einstellungen:
#922 Typ des Werkzeugs muss 11 (Tapdrill) sein
#923 D=Dia1 ist der Durchmesser des Werkzeuges (virtueller Spitzendurchmesser minus H1)
#926 Length2 ist Anzahl Zähne (1 bei Wirbler, 2..x bei Mehrzahnfräsern)
#924 Dia2 ist der Pitch (0 bei Wirbler)
Parameters (i.e. for M3):
Z = lower end depth/start depth
R = Rückzugsebene
Q = Oberkante Gewinde
J = Diameter nominal (3mm=M3)
K = Pitch (0,5mm)
H = 0 = inner threading 1= outer threading
F = Vorschub
I = 0 = Rechtsgewinde 1=Linksgewinde
%
#1=Z (Merke die Tiefe)
#2=0 (Seitlicher Versatz)
#3=0 (Anzahl Durchgänge)
#5=0 (Akku)
#6=J
#7=K
#8=Q
#9=X
#10=Y
#11=0 (Sicherheitsabstand seitlich bei AG)
#12=0 (H-Dreieck)
#13=0 (Kernbohrung Spitzenwert)
#14=0 (Äußerer Spitzenwert)
#15=0 (Kerndurchmesser Außengewinde)
(Ueberpruefe das Werkzeug)
IF (#922<>11) THEN (falsches Werkzeug)
PRINT "G84: Falsches Werkzeug gewählt."
M2
ENDIF
IF (#926=0) THEN (no parameters set)
PRINT "G84: Werkzeug Anzahl Zähne = 0"
M2
ENDIF
IF (#926>1) & (K<>#924) THEN
PRINT "G84: Steigung passt nicht zum Werkzeug."
M2
ENDIF
IF (H<>0) THEN (outer threading)
#11=(#6/2)+(#923+1.0)/2 (Versatz seitlich +0,5mm Luft)
#12=#7*0.5*1.7320 (H=Steigung/2*sqrt(3)
#14=#6+(#12/4)
#13=#14-(2*#12)
#15=#13+(#12/3)
#2=(#15+#923)/2 (Fräsbahndurchmesser)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
#3=ROUND(#3)
G0 X=#9+#11 Y=#10
G0 Z=R (Außenkontour+Abstand, Sicherheitshöhe)
IF I=1 THEN (Linksgewinde)
G0 Z=#1 (Absenken)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Rechtsgewinde)
(Starthöhe berechnen)
G0 Z=#1+(#3*#7)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=#9+#11
G0 Z=R
M99
ELSE (inner Threading)
#2=(#6-#923)/2 (Versatz seitlich innerhalb Bohrung)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
G0 X=#9 Y=#10 Z=R (Zentrum der Bohrung, Sicherheitshöhe)
IF I=0 THEN (Rechtsgewinde)
G0 Z=#1 (Absenken in Bohrung)
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Linksgewinde)
G0 Z=Q
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=X-#2
G0 Z=R
M99
ENDIF
M99
Simulation:
#1=Z (Merke die Tiefe)
#2=0 (Seitlicher Versatz zum Gewinde-DM)
#3=0 (Anzahl Durchgänge)
#5=0 (Akku)
#6=J
#7=K
#8=Q
#9=X
#10=Y
#11=0 (Sicherheitsabstand seitlich bei AG)
#12=0 (H-Dreieck)
#13=0 (Kernbohrung Spitzenwert)
#14=0 (Äußerer Spitzenwert)
#15=0 (Kerndurchmesser Außengewinde)
(Ueberpruefe das Werkzeug)
IF (#922<>11) THEN (falsches Werkzeug)
PRINT "G84: Falsches Werkzeug gewählt."
M2
ENDIF
IF (#926=0) THEN (no parameters set)
PRINT "G84: Werkzeug Anzahl Zähne = 0"
M2
ENDIF
IF (#926>1) & (K<>#924) THEN
PRINT "G84: Steigung passt nicht zum Werkzeug."
M2
ENDIF
IF (H<>0) THEN (outer Threading)
#11=(#6/2)+(#923+1.0)/2 (Versatz seitlich +0,5mm Luft)
#12=#7*0.5*1.7320 (H=Steigung/2*sqrt(3)
#14=#6+(#12/4)
#13=#14-(2*#12)
#15=#13+(#12/3)
#2=(#15+#923)/2 (Fräsbahndurchmesser)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
#3=ROUND(#3)
G0 X=#9+#11 Y=#10 Z=R (Außenkontour+Abstand, Sicherheitshöhe)
IF I=1 THEN (Linksgewinde)
G0 Z=#1 (Absenken)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Rechtsgewinde)
(Starthöhe berechnen)
G0 Z=#1+(#3*#7)
G1 X=#9+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G2 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=#9+#11
G0 Z=R
M99
ELSE
#2=(#6-#923)/2 (Versatz seitlich innerhalb Bohrung)
(Berechnen der Anzahl Durchgänge)
#3=(#8-#1)/#7 (Anzahl Gewindegänge, fraktional)
IF #926=1 THEN (Wirbler, der muss alle Runden machen)
#5=ROUND(#3)
IF #5<#3 THEN
#3=#3+1 (+1, weil wir keine halben Kreise machen)
ENDIF
ELSE (Mehrgang-Schneider)
IF #926>=#3 THEN (Fräser ist länger als benötigt)
#3=2 (Ein Durchgang, 1x Schlichten)
ELSE (Fräser ist kürzer als das benötigte Gewinde)
#3=(#3-#926)+1 (Rest noch per Helix rausfahren)
ENDIF
ENDIF
G0 X=#9 Y=#10 Z=R (Zentrum der Bohrung, Sicherheitshöhe)
IF I=0 THEN (Rechtsgewinde)
G0 Z=#1 (Absenken in Bohrung)
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach oben, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z+K
NEXT
ELSE (Linksgewinde)
G0 Z=Q
G1 X=X+#2 F=F (seitliche Anfahrt)
REPEAT=#3 (Helix nach unten, Steigung)
G3 X=X Y=Y I=-#2 J0 Z=Z-K
NEXT
ENDIF
G1 X=X-#2
G0 Z=R
M99
ENDIF
M99