
Macro g33 FANUC filettatura trapezia
- Skyzzo
- Junior
- Messaggi: 120
- Iscritto il: martedì 1 marzo 2011, 20:35
- Località: Brescia
Macro g33 FANUC filettatura trapezia

-
- Newbie
- Messaggi: 26
- Iscritto il: venerdì 24 febbraio 2012, 7:52
- Località: Reggio Emilia
Re: Macro g33 FANUC filettatura trapezia
Ciao, guarda se queste 2 ti possono aiutare,sono per FANUC
%
O0001(FILETTATURA TRAPEZIA EST.)
(A PIU' PRINCIPI)
(CODICI G TIPO B)
(FANUC / CUSTOM MACRO B)
#500=#24(X)
#501=#4(I)
#502=#3(C)
#503=#17(Q ** SE Q1 = 100 PER 100)
#504=#8(E)
#505=#23(W)
#506=#26(Z)
#507=#9(F)
#508=#7(D)
#509=#11(H)
#510=#22(V)
#511=#1(A)
#520=#2(B)
#531=#500-#501
#530=#4119
#529=#530*#507
#525=[#500-#501]/2
#526=TAN[#511]
#527=#525*#526
#527=#527*2
#528=#509-#527
IF[#511GT80]GOTO9990
IF[#510GT#528]GOTO9991
IF[#500GE#508]GOTO9992
IF[#504GT#502]GOTO9993
IF[#501GT#500]GOTO9994
IF[#502GT#531]GOTO9995
IF[#529GT5000]GOTO9996
#521=#507/#520(MODIFICA PER ALLARME 517)
IF[#521GT#507]GOTO9997
#522=#500
#523=#509
#524=#502
N899IF[#520EQ0]GOTO920
#505=#505+#521
N900#512=SIN[#511]
#513=COS[#511]
#512=#512/#513
#518=#500-#501
#518=#518*#512
#519=#509-#518
#518=#518/2
#518=#505+#518
#517=0
#500=#500-#502
N901#513=#502*#512
#509=#509-#513
#513=#513/2
N902#505=#513+#505
#514=#509/#510
#514=FIX[#514]
#513=#505
#101=0
N903G0Z#513
X#500
G33Z#506F#507
X#508F#507
#513=#513+#510
#101=#101+1
IF[#514NE#101]GOTO903
#513=#513-#510
#513=#505+#509
#513=#513-#510
G0Z#513
X#500
G33Z#506F#507
X#508F#507
IF[#517GT0.5]GOTO919
#502=#503*#502
IF[#502GT#504]GOTO916
#502=#504
N916#500=#500-#502
IF[#500GT#501]GOTO901
#517=1
#505=#518
#509=#519
#513=0
#500=#501
GOTO902
N919G0Z#505
#520=#520-1
#500=#522
#509=#523
#502=#524
GOTO899
N920M99
N9990#3000=10(ANG. UT. > 80 GRADI)
N9991#3000=11(LARGH. UT. ECCESSIVA)
N9992#3000=12(DIA. RITORNO ERRATO)
N9993#3000=13(VAL. MIN. PASS. ERRATO)
N9994#3000=14(DIAM. INT. > DIA. EST.)
N9995#3000=15(PROF. PASSATA ERRATA)
N9996#3000=16(S*P > DI 5000 MM/MIN.)
N9997#3000=17(NUM. PRINCIPI ERRATO)
O0002 (FILETTATURA TRAPEZIA INT.)
(A PIU' PRINCIPI)
(CODICI G TIPO B)
(FANUC / CUSTOM MACRO B)
#500=#24(X)
#501=#4(I)
#502=#3(C)
#503=#17(Q ** SE Q1 = 100 PER 100)
#504=#8(E)
#505=#23(W)
#506=#26(Z)
#507=#9(F)
#508=#7(D)
#509=#11(H)
#510=#22(V)
#511=#1(A)
#520=#2(B)
#531=#501-#500
#530=#4119
#529=#530*#507
#525=[#501-#500]/2
#526=TAN[#511]
#527=#525*#526
#527=#527*2
#528=#509-#527
IF[#511GT80]GOTO9990
IF[#510GT#528]GOTO9991
IF[#508GE#500]GOTO9992
IF[#504GT#502]GOTO9993
IF[#500GT#501]GOTO9994
IF[#502GT#531]GOTO9995
IF[#529GT5000]GOTO9996
#521=#507/#520(MODIFICA PER ALLARME 517)
IF[#521GT#507]GOTO9997
#522=#500
#523=#509
#524=#502
N899IF[#520EQ0]GOTO920
#505=#505+#521
N900#512=SIN[#511]
#513=COS[#511]
#512=#512/#513
#518=#501-#500
#518=#518*#512
#519=#509-#518
#518=#518/2
#518=#505+#518
#517=0
#500=#500+#502
N901#513=#502*#512
#509=#509-#513
#513=#513/2
N902#505=#513+#505
#514=#509/#510
#514=FIX[#514]
#513=#505
#101=0
N903G0Z#513
X#500
G33Z#506F#507
X#508F#507
#513=#513+#510
#101=#101+1
IF[#514NE#101]GOTO903
#513=#513-#510
#513=#505+#509
#513=#513-#510
G0Z#513
X#500
G33Z#506F#507
X#508F#507
IF[#517GT0.5]GOTO919
#502=#503*#502
IF[#502GT#504]GOTO916
#502=#504
N916#500=#500+#502
IF[#501GT#500]GOTO901
#517=1
#505=#518
#509=#519
#513=0
#500=#501
GOTO902
N919G0Z#505
#520=#520-1
#500=#522
#509=#523
#502=#524
GOTO899
N920M99
N9990#3000=10(ANG. UT. MAGG. 80 GRADI)
N9991#3000=11(LARGH. UT. ECCESSIVA)
N9992#3000=12(DIA. RITORNO ERRATO)
N9993#3000=13(VAL. MIN. PASS. ERRATO)
N9994#3000=14(DIAM. INT. MAGG. DIA. FONDO)
N9995#3000=15(PROF. PASSATA ERRATA)
N9996#3000=16(S*P MAGG. DI 5000 MM/MIN.)
N9997#3000=17(NUM. PRINCIPI ERRATO)
%
O0001(FILETTATURA TRAPEZIA EST.)
(A PIU' PRINCIPI)
(CODICI G TIPO B)
(FANUC / CUSTOM MACRO B)
#500=#24(X)
#501=#4(I)
#502=#3(C)
#503=#17(Q ** SE Q1 = 100 PER 100)
#504=#8(E)
#505=#23(W)
#506=#26(Z)
#507=#9(F)
#508=#7(D)
#509=#11(H)
#510=#22(V)
#511=#1(A)
#520=#2(B)
#531=#500-#501
#530=#4119
#529=#530*#507
#525=[#500-#501]/2
#526=TAN[#511]
#527=#525*#526
#527=#527*2
#528=#509-#527
IF[#511GT80]GOTO9990
IF[#510GT#528]GOTO9991
IF[#500GE#508]GOTO9992
IF[#504GT#502]GOTO9993
IF[#501GT#500]GOTO9994
IF[#502GT#531]GOTO9995
IF[#529GT5000]GOTO9996
#521=#507/#520(MODIFICA PER ALLARME 517)
IF[#521GT#507]GOTO9997
#522=#500
#523=#509
#524=#502
N899IF[#520EQ0]GOTO920
#505=#505+#521
N900#512=SIN[#511]
#513=COS[#511]
#512=#512/#513
#518=#500-#501
#518=#518*#512
#519=#509-#518
#518=#518/2
#518=#505+#518
#517=0
#500=#500-#502
N901#513=#502*#512
#509=#509-#513
#513=#513/2
N902#505=#513+#505
#514=#509/#510
#514=FIX[#514]
#513=#505
#101=0
N903G0Z#513
X#500
G33Z#506F#507
X#508F#507
#513=#513+#510
#101=#101+1
IF[#514NE#101]GOTO903
#513=#513-#510
#513=#505+#509
#513=#513-#510
G0Z#513
X#500
G33Z#506F#507
X#508F#507
IF[#517GT0.5]GOTO919
#502=#503*#502
IF[#502GT#504]GOTO916
#502=#504
N916#500=#500-#502
IF[#500GT#501]GOTO901
#517=1
#505=#518
#509=#519
#513=0
#500=#501
GOTO902
N919G0Z#505
#520=#520-1
#500=#522
#509=#523
#502=#524
GOTO899
N920M99
N9990#3000=10(ANG. UT. > 80 GRADI)
N9991#3000=11(LARGH. UT. ECCESSIVA)
N9992#3000=12(DIA. RITORNO ERRATO)
N9993#3000=13(VAL. MIN. PASS. ERRATO)
N9994#3000=14(DIAM. INT. > DIA. EST.)
N9995#3000=15(PROF. PASSATA ERRATA)
N9996#3000=16(S*P > DI 5000 MM/MIN.)
N9997#3000=17(NUM. PRINCIPI ERRATO)
O0002 (FILETTATURA TRAPEZIA INT.)
(A PIU' PRINCIPI)
(CODICI G TIPO B)
(FANUC / CUSTOM MACRO B)
#500=#24(X)
#501=#4(I)
#502=#3(C)
#503=#17(Q ** SE Q1 = 100 PER 100)
#504=#8(E)
#505=#23(W)
#506=#26(Z)
#507=#9(F)
#508=#7(D)
#509=#11(H)
#510=#22(V)
#511=#1(A)
#520=#2(B)
#531=#501-#500
#530=#4119
#529=#530*#507
#525=[#501-#500]/2
#526=TAN[#511]
#527=#525*#526
#527=#527*2
#528=#509-#527
IF[#511GT80]GOTO9990
IF[#510GT#528]GOTO9991
IF[#508GE#500]GOTO9992
IF[#504GT#502]GOTO9993
IF[#500GT#501]GOTO9994
IF[#502GT#531]GOTO9995
IF[#529GT5000]GOTO9996
#521=#507/#520(MODIFICA PER ALLARME 517)
IF[#521GT#507]GOTO9997
#522=#500
#523=#509
#524=#502
N899IF[#520EQ0]GOTO920
#505=#505+#521
N900#512=SIN[#511]
#513=COS[#511]
#512=#512/#513
#518=#501-#500
#518=#518*#512
#519=#509-#518
#518=#518/2
#518=#505+#518
#517=0
#500=#500+#502
N901#513=#502*#512
#509=#509-#513
#513=#513/2
N902#505=#513+#505
#514=#509/#510
#514=FIX[#514]
#513=#505
#101=0
N903G0Z#513
X#500
G33Z#506F#507
X#508F#507
#513=#513+#510
#101=#101+1
IF[#514NE#101]GOTO903
#513=#513-#510
#513=#505+#509
#513=#513-#510
G0Z#513
X#500
G33Z#506F#507
X#508F#507
IF[#517GT0.5]GOTO919
#502=#503*#502
IF[#502GT#504]GOTO916
#502=#504
N916#500=#500+#502
IF[#501GT#500]GOTO901
#517=1
#505=#518
#509=#519
#513=0
#500=#501
GOTO902
N919G0Z#505
#520=#520-1
#500=#522
#509=#523
#502=#524
GOTO899
N920M99
N9990#3000=10(ANG. UT. MAGG. 80 GRADI)
N9991#3000=11(LARGH. UT. ECCESSIVA)
N9992#3000=12(DIA. RITORNO ERRATO)
N9993#3000=13(VAL. MIN. PASS. ERRATO)
N9994#3000=14(DIAM. INT. MAGG. DIA. FONDO)
N9995#3000=15(PROF. PASSATA ERRATA)
N9996#3000=16(S*P MAGG. DI 5000 MM/MIN.)
N9997#3000=17(NUM. PRINCIPI ERRATO)
- Skyzzo
- Junior
- Messaggi: 120
- Iscritto il: martedì 1 marzo 2011, 20:35
- Località: Brescia
Re: Macro g33 FANUC filettatura trapezia
2 domande:
_perché ti appoggi su variabili comuni e non usi direttamente le locali?
_puoi darmi la descrizione di come utilizzi le locali in questa macro , cioè a cosa fai corrispondere ogni locale usata altrimenti non riesco a tradurla.
Grazie
- Skyzzo
- Junior
- Messaggi: 120
- Iscritto il: martedì 1 marzo 2011, 20:35
- Località: Brescia
Re: Macro g33 FANUC filettatura trapezia
Ho cercato di tradurre un po' la macro , vedi un po' se corrisponde a qualcosa:
#24= esterno iniziale
#4= esterno finale
#3= profondità passata (radiale/diametrale ?)
#8= passata minima
#23= Z iniziale
#26= Z finale
#17= coefficiente di riduzione
#9= passo
#2= n.principi
#7= diametro esterno uscita filetto
#1= angolo utensile
#22= larghezza utensile
#530= legge n. Giri rotazione
#11= ????
#24= esterno iniziale
#4= esterno finale
#3= profondità passata (radiale/diametrale ?)
#8= passata minima
#23= Z iniziale
#26= Z finale
#17= coefficiente di riduzione
#9= passo
#2= n.principi
#7= diametro esterno uscita filetto
#1= angolo utensile
#22= larghezza utensile
#530= legge n. Giri rotazione
#11= ????
- Skyzzo
- Junior
- Messaggi: 120
- Iscritto il: martedì 1 marzo 2011, 20:35
- Località: Brescia
Re: Macro g33 FANUC filettatura trapezia
Unico blocco di programmazione:
G105 E/I Z W R D C (F) (T) M A
Spiegazione degli indirizzi:
E/I = nome del filetto( es. M20 esterno = E20 , es. 1"1/2 interno = I1.12 )
Z = punto iniziale del filetto in Z
W = punto finale del filetto in Z
R = numero principi
D = passo in millimetri
C = coefficiente di riduzione sulla profondità delle varie passate
F = se a 1 attiva solo ciclo di finitura
T = se a 1 attiva ciclo a zig zag
M = senso di rotazione
A = angolo del filetto 30-55-60
Sto preparando una macro che con il solo blocco iniziale esegua un filetto senza l'utilizzo di quote e privo di posizionamento , movimento di lavoro e svincolo esterno o interno.
Badade che ne pensi?!?!?!?
G105 E/I Z W R D C (F) (T) M A
Spiegazione degli indirizzi:
E/I = nome del filetto( es. M20 esterno = E20 , es. 1"1/2 interno = I1.12 )
Z = punto iniziale del filetto in Z
W = punto finale del filetto in Z
R = numero principi
D = passo in millimetri
C = coefficiente di riduzione sulla profondità delle varie passate
F = se a 1 attiva solo ciclo di finitura
T = se a 1 attiva ciclo a zig zag
M = senso di rotazione
A = angolo del filetto 30-55-60
Sto preparando una macro che con il solo blocco iniziale esegua un filetto senza l'utilizzo di quote e privo di posizionamento , movimento di lavoro e svincolo esterno o interno.
Badade che ne pensi?!?!?!?
-
- Junior
- Messaggi: 166
- Iscritto il: mercoledì 5 gennaio 2011, 11:45
- Località: Varese
Re: Macro g33 FANUC filettatura trapezia
Scrivere una macro di flettatura ex novo (senza usare le funzioni che il controllo possiede) è arduo, poiché esistono problemi di sincronizzazione. Ma appoggiandosi alle esistenti funzioni la macro si riduce alla logica di controllo della funzione stessa. La scelta dei parametri è libera cosi come il numero (meno sono meglio è): dipende da te. La scelta della funzione di filettatura che userai, anche questa è a tua scelta e dipende dalle funzionalità che vorrai dare alla macro. Secondo gli argomenti da te scelti vuoi eseguire filettature esterne ed interne, a più passate o semplicemente per finire. La filettatura puo essere destra o sinistra ed a più principi. Direi che puoi incominciare a scrivere! Naturalmente non si realizza una macro per puro divertimento ma per esigenze concrete. Se ti è di aiuto, se ti facilita la programmazione e lo sviluppo del programma, se aggiunge qualcosa di nuovo, non solo alternativo di qualcosa che già esiste, ma migliore.
Se le risposte sono positive allora prosegui altrimenti desisti! Non sonon certo io a scoraggiarti, al contrario ti incito, ma ritengo onesto una preventiva analisi per
non sprecare il proprio tempo e talento in un programma che potrebbe non essere digerito da molti. Detto ciò direi che hai gia le idee chiare sul come impostare la macro, quindi non mi resta che vedere la sua realizzazione. Qualche consiglio? Si parte sempre dal tutto, ovvero dalla funzione che comprende le altre.
Inutile scrivere due procedure di filettatura, una per più principi ed una per singolo: la prima comprende l'altra. Inutile scrivere due procedure una parallela ed una conica: hanno lo stesso principio. Gli argomenti devono essere solo gli essenziali, se possibile multi scopo (è più facile ricordarlo). Devi analizzare attentamente se i tuoi argomenti (il numero associato) descrivono tutte le configurazioni ossibili: fallo prima della scrittura al fine di ovviare ai problemi collaterali che ne scaturiranno (cosa cambia con intero ed esterno? abbiamo necessità di due parametri? il numero associato al parametro
permette di effettuare qualsiasi filetto? il passo espresso in mm o inch? ...). Infine direi: considera gli altri! A meno che la macro non la usi solo tu, considera che altre persone potrebbero avere una visione differente dalla tua. Personalmente (in modo indiretto) cerco di capire come gli altri reagirebbero alla scrittura di una macro. Chiedi sempre, cerca di capire se gli argomenti da te scelti rispecchiano la mentalità altrui. Parte del lavoro di un programmatore dovrebbe rispecchiare anche questo aspetto. Forse ti ho annoiato, forse volevi altre risposte... Scrivi e facci sapere, siamo qua per aiutarci.