Macro interpolazione esterna

Sezione dedicata al G-code, postate qui dubbi o i Vs. lavori in formato G-code.
Rispondi
bigangelman
Junior
Junior
Messaggi: 51
Iscritto il: giovedì 29 settembre 2011, 22:10
Località: Novellara

Macro interpolazione esterna

Messaggio da bigangelman » mercoledì 11 novembre 2015, 23:58

Ciclo fisso testato su centro di lavoro con controllo FANUC 16i 18i 31i...

Il ciclo in questione effettua un'interpolazione esterna in G2 con attacco tangenziale, con scelta di attacco... provo a spiegare come funziona...

Prima cosa, per utilizzarlo, la riga di comando deve essere come riportato nell'esempio:

T1M6(FRESA WALTER DIAM.63 OTTAGONALE)
M9
M11
B0
M10
G54.1P1(ORIGINE)
S800F1000M3
G43H1X150Y0Z500
G65P9012R320Z310S500A1B10D120W31.5F200
G0Z500M9
M5

Allora... veniamo a noi... la posizione in X150Y0, è al centro del diametro da interpolare... la R è l'accostamento in Z al centro diametro... La Z è la quota in cui vogliamo eseguire l'interpolazione di sgrossatura/finitura/smusso qualsiasi essa sia... La S sta per svincolo, cioè dopo aver eseguito la lavorazione, si porta fuori dal pezzo a Z in questo caso 500mm... A sta per il tipo di attacco... se il valore è 1 attacca da Y+, se 2 da X+, se 3 da Y- , se 4 da X-... La B sta per la distanza di accostamento al diametro da lavorare, se risulta nullo o minore di 5mm, l'ho impostato di renderlo a 5, se maggiore tiene conto del valore assegnato... La D, sta per il diametro esterno da interpolare... La W è il raggio della fresa... La F è l'avanzamento con cui attacca sul diametro esterno, in questo caso attacca con una F200, poi la lavorazione viene eseguita con la F impostata sulla riga dei giri e cioè F1000 in questo caso...

Spero di essere stato abbastanza chiaro e speriamo che possa servire anche a Voi... :wink:


%
O9012(INTERP. EST. IN G2)
(#18 R ACCOSTAMENTO)
(#26 Z QUOTA INTERPOLAZIONE)
(#19 S SVINCOLO)
(#7 D DIAMETRO INTERPOLAZIONE)
(#23 W RAGGIO FRESA)
(#9 F AVANZAMENTO)
(#1 A ATTACCO SU/DX/GIU/SX)
(#2 B ACCOST. SUL DIAM.)

IF[#7EQ0]GOTO8000
IF[#7EQ#0]GOTO8000
IF[#9EQ0]GOTO8001
IF[#9EQ#0]GOTO8001
IF[#18EQ0]GOTO8002
IF[#18EQ#0]GOTO8002
IF[#1LE0]GOTO8003
IF[#1GE5]GOTO8003
IF[#1EQ#0]GOTO8003
IF[#26EQ0]GOTO8004
IF[#26EQ#0]GOTO8004
IF[#19EQ0]GOTO8005
IF[#19EQ#0]GOTO8005
IF[#2LT5]THEN#2=5
IF[#2EQ#0]THEN#2=5
IF[#23EQ0]GOTO8008
IF[#23EQ#0]GOTO8008

#100=[#23*2]
IF[#100GE#7]GOTO8006
#101=#5001(---X---)
#102=#5002(---Y---)
#103=#4109(ULTIMO AVANZ.PROG.)
#104=[#7/2](DIAM./2)
#108=#2/2
(#105 ACCOST. SUL DIAM.EST.)
#105=#104+#23+#108
#106=#104+#23
#107=#106+#2
G0X#101Y#102
G52X#101Y#102(AZZERA ASSI X-Y)
G0X0Y0
G0Z#18
IF[#1EQ1]GOTO1(ATTACCO Y+)
IF[#1EQ2]GOTO2(ATTACCO X+)
IF[#1EQ3]GOTO3(ATTACCO Y-)
IF[#1EQ4]GOTO4(ATTACCO X-)
N1
G0Y#105
G0Z#26
G1G41Y#107F#9
G3X0Y#106J-#108
G2X0Y#106J-#106F#103
G3X0Y#107J#108
G0G40Y#105
GOTO5
N2
G0X#105
G0Z#26
G1G41X#107F#9
G3X#106Y0I-#108
G2X#106Y0I-#106F#103
G3X#107Y0I#108
G0G40X#105
GOTO5
N3
G0Y-#105
G0Z#26
G1G41Y-#107F#9
G3X0Y-#106J#108
G2X0Y-#106J#106F#103
G3X0Y-#107J-#108
G0G40Y-#105
GOTO5
N4
G0X-#105
G0Z#26
G1G41X-#107F#9
G3X-#106Y0I#108
G2X-#106Y0I#106F#103
G3X-#107Y0I-#108
G0G40X-#105
N5
G0Z#19
G52X0Y0(RIPRISTINO QUOTE X-Y)
F#103(RIPRISTINO AVANZAMENTO)

M99
N8000#3000=1(MANCA-D-)
N8001#3000=2(MANCA-F-)
N8002#3000=3(MANCA-R-)
N8003#3000=4(ATTACCO NON VALIDO)
N8004#3000=5(MANCA-Z-)
N8005#3000=6(MANCA-S-)
N8006#3000=7(DIAM.UT. GRANDE)
N8008#3000=9(MANCA-W-)
M30
%
Ultima modifica di Anonymous il domenica 15 novembre 2015, 19:06, modificato 1 volta in totale.
Motivazione: modifica titolo su richiesta dell'autore

torn24
God
God
Messaggi: 5041
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Interpolazione esterna in G2

Messaggio da torn24 » giovedì 12 novembre 2015, 7:11

Ciao, non so se sia utile usare una macro come questa o programmare direttamente in ISO, però TI FACCIO I COMPLIMENTI, scritta molto ordinata e con buona cura, i commenti delle variabili locali li trovo utili, visto che a memoria non le ricordo mai =D> =D> =D>
CIAO A TUTTI !

bigangelman
Junior
Junior
Messaggi: 51
Iscritto il: giovedì 29 settembre 2011, 22:10
Località: Novellara

Re: Interpolazione esterna in G2

Messaggio da bigangelman » giovedì 12 novembre 2015, 8:51

Grazie Torn...

forse hai ragione sull'utilità della macro... ma io sono in fase "PROGRAM ON"... ed in fase evolutiva... mi sento "LIBERO", quando faccio di queste cose... :wink:

Buona giornata :D

bigangelman
Junior
Junior
Messaggi: 51
Iscritto il: giovedì 29 settembre 2011, 22:10
Località: Novellara

Re: MACRO INTERPOLAZIONE ESTERNA

Messaggio da bigangelman » sabato 14 novembre 2015, 7:27

Debbo fare una rettifica... un errore c'era, (il G41 non serviva a nulla visto che i calcoli erano tutti già fatti, in più non ho usato una D per compensare il raggio utensile, quindi completamente inutile...), ma in prova non ho capito come mai non me l'ha dato, cmq niente di grave, anzi a seguito di questa cosa, ho implementata un'altra funzione... intanto ho modificato l'attacco con la lettera E e non più A (E1 in Y+, E2 in X+, E3 in Y- ed E4 in X-)... con la A si gestisce il ciclo se far interpolare in G2 o G3 (A2 o A3)... Questa ultima modifica la provo lunedi al lavoro e poi vi dico, ma dovrebbe andare tutto ok...

P.S. Se possibile, uno dei moderatori, può modificare il titolo in "MACRO INTERPOLAZIONE ESTERNA" ??? Grazie mille...


%
O9012(INTERP. ESTERNA)
(#18 R ACCOSTAMENTO)
(#26 Z QUOTA INTERPOLAZIONE)
(#19 S SVINCOLO)
(#7 D DIAMETRO INTERPOLAZIONE)
(#23 W RAGGIO FRESA)
(#9 F AVANZAMENTO)
(#8 E ATTACCO SU/DX/GIU/SX)
(#1 A INTERP. G2/G3)
(#2 B ACCOST. SUL DIAM.)
(G65P9013R300Z280S500D100W31.5E1A2B10F200)

IF[#7EQ0]GOTO8000
IF[#7EQ#0]GOTO8000
IF[#9EQ0]GOTO8001
IF[#9EQ#0]GOTO8001
IF[#18EQ0]GOTO8002
IF[#18EQ#0]GOTO8002
IF[#8LE0]GOTO8003
IF[#8GE5]GOTO8003
IF[#8EQ#0]GOTO8003
IF[#26EQ0]GOTO8004
IF[#26EQ#0]GOTO8004
IF[#19EQ0]GOTO8005
IF[#19EQ#0]GOTO8005
IF[#2LT5]THEN#2=5
IF[#2EQ#0]THEN#2=5
IF[#1GT3]GOTO8007
IF[#1LT2]GOTO8007
IF[#23EQ0]GOTO8008
IF[#23EQ#0]GOTO8008

IF[#1EQ2]THEN#115=3
IF[#1EQ3]THEN#115=2

#100=[#23*2]
IF[#100GE#7]GOTO8006
#101=#5001(---X---)
#102=#5002(---Y---)
#103=#4109(ULTIMO AVANZ.PROG.)
#104=[#7/2](DIAM./2)
#108=#2/2
(#105 ACCOST. SUL DIAM.EST.)
#105=#104+#23+#108
#106=#104+#23
#107=#106+#2
G0X#101Y#102
G52X#101Y#102(AZZERA ASSI X-Y)
G0X0Y0
G0Z#18
IF[#8EQ1]GOTO1(ATTACCO Y+)
IF[#8EQ2]GOTO2(ATTACCO X+)
IF[#8EQ3]GOTO3(ATTACCO Y-)
IF[#8EQ4]GOTO4(ATTACCO X-)
N1
G0Y#105
G0Z#26
G1Y#107F#9
G3X0Y#106J-#108
G2X0Y#106J-#106F#103
G3X0Y#107J#108
G0Y#105
GOTO5
N2
G0X#105
G0Z#26
G1X#107F#9
G#115X#106Y0I-#108
G#1X#106Y0I-#106F#103
G#115X#107Y0I#108
G0X#105
GOTO5
N3
G0Y-#105
G0Z#26
G1Y-#107F#9
G#115X0Y-#106J#108
G#1X0Y-#106J#106F#103
G#115X0Y-#107J-#108
G0Y-#105
GOTO5
N4
G0X-#105
G0Z#26
G1X-#107F#9
G#115X-#106Y0I#108
G#1X-#106Y0I#106F#103
G#115X-#107Y0I-#108
G0X-#105

N5
G0Z#19
G52X0Y0(RIPRISTINO QUOTE X-Y)
F#103(RIPRISTINO AVANZAMENTO)

M99
N8000#3000=1(MANCA-D-)
N8001#3000=2(MANCA-F-)
N8002#3000=3(MANCA-R-)
N8003#3000=4(ATTACCO NON VALIDO)
N8004#3000=5(MANCA-Z-)
N8005#3000=6(MANCA-S-)
N8006#3000=7(DIAM.UT. GRANDE)
N8007#3000=8(COMANDO G2-G3 NON OK)
N8008#3000=9(MANCA-W-)
M30
%

bigangelman
Junior
Junior
Messaggi: 51
Iscritto il: giovedì 29 settembre 2011, 22:10
Località: Novellara

Re: Macro interpolazione esterna

Messaggio da bigangelman » lunedì 16 novembre 2015, 11:08

Anche questa macro testata e funzionante... :D

Rispondi

Torna a “G-code”