Ciao,
non utilizzo i sottoprogrammi per vari motivi:
- la mia macchina è configurata per avere in memoria solo un partprogram, o meglio ne puo avere piu di uno, ma quello attivo viene automaticmente caricato da DNC ad ogni cambio pallet, ed i sottoprogrammi non li gestisco ( per scelta ).
- quando devo fare una modifica dovrei cercare ogni volta il sottoprogramma per fare le modifiche, ed il rischio di avere il numero del sottoprogramma non univoco, cioè lo stesso numero di sottoprogramma con il tempo rischierei di richiamarlo anche in altri programmi.
- i particolari che lavoro hanno circa 120 e in alcuni particolari 200 cambio utensili quindi dovrei avere un infinità di sottoprogrammi.
Programmo con il NUM ed ho provato a contare quante volte ho utilizzato la G77, in un file da 156 cambio utensili ho trovato la funzione G77 per ben 540 volte, quindi quanti sottoprogrammi dovrei gestire?????
In alternativa con il fanuc si potrebbe arrangiarsi con le macro, anche se devo dire che il file si allunga di parecchio, e quando in un file da 200 CU devi cercare un blocco per fare delle correzzioni NON è semplice interpretare un file pieno zeppo di######
Purtroppo con Fanuc servono almeno 4 righe di codice macro per sostituire quello che si scrive con NUM in una riga (G77 N1 N2) , ma spero tanto che qualcuno possa illunarmi.
Non sono molto esperto di Fanuc, ma vorrei condividere alcuni esempi per Fanuc che sostituiscono la G77 del NUM, e attendo i vostri pareri.
Grazie e buonlavoro.
NON SONO TESTATI
ESEMPIO 1
O0001 ( RIPETIZIONE X N PASSATE )
#101=0 ( Z INIZIO )
#102=-10 ( Z FINE )
#103=5 ( NUMERO DI PASSATE )
#104=[#101-#102]/#103 ( PROFONDITA X PASSATA )
#105=0 ( CONTATORE PASSATE )
N100 G0 X0 Y100 Z100
#101=#101-#104
N110 Z#101
G1 Y100
G3 J-100
G1 Y0
N120 G0 Z100
#105=#105+1
IF[#105EQ#103]GOTO130
GOTO100
N130
ESEMPIO 2
O0001
#600=0 ( X )
#700=500 ( Y )
#800=200 ( Z )
N100 G52 X#600 Y#700 Z#800
#810=0
#811=-50
#812=5 (SOLO 1-2-2.5-5-10)
WHILE[#810GT#811]DO1
#810=#810-#812
N110 G0 X0 Y0 Z100
Z#810
N120 G1 Y100
G3 J-100
N130 G1 Y0
N140 G0 Z100
END1
ESEMPIO 3
O0001 ( ASPIRALE )
#600=0 ( X )
#700=500 ( Y )
#800=200 ( Z )
N100 G52 X#600 Y#700 Z#800
#810=0
#811=-50
#812=5 (SOLO 1-2-2.5-5-10)
N110 G0 X0 Y0 Z100
Z#810
N120 G1 Y100
WHILE[#810GT#811]DO1
#810=#810-#812
G3 J-100 Z#810
END1
G3 J-100
N130 G1 Y0
N140 G0 Z100
ESEMPIO 4
O0002 ( SGROSSA E FINISCE )
#101=0.3
N10 G0 X100 Z100
Z#101
G1 X-100
N20 G0 Z100
N25 IF[#101EQ0]GOTO30
#101=0
GOTO10
N30 G0 Z200
ESEMPIO 5
O0003 ( RIPETIZIONE PER ORIGINI )
#601=100 ( X )
#701=100 ( Y )
#801=100 ( Z )
#602=200 ( X )
#702=200 ( Y )
#802=200 ( Z )
#603=300 ( X )
#703=300 ( Y )
#803=300 ( Z )
N100 G52 X#601 Y#701 Z#801
#100=1
N101 G0 X0 Y0 Z100
Z0
G1 Y100
G3 J-100
G1 Y0
G0 Z100
#100=#100+1
IF[#100EQ2]GOTO102
IF[#100EQ3]GOTO103
GOTO104
N102 G52 X#602 Y#702 Z#802
GOTO101
N103 G52 X#603 Y#703 Z#803
GOTO101
N104
ESEMPIO 6
O0004 ( RIPETIZIONE PER ORIGINI )
#601=100 ( X )
#701=100 ( Y )
#801=100 ( Z )
#602=200 ( X )
#702=200 ( Y )
#802=200 ( Z )
#603=300 ( X )
#703=300 ( Y )
#803=300 ( Z )
N100 G52 X#601 Y#701 Z#801
#100=101
N101 G0 X0 Y0 Z100
Z0
G1 Y100
G3 J-100
G1 Y0
G0 Z100
#100=#100+1
GOTO#100
N102 G52 X#602 Y#702 Z#802
GOTO101
N103 G52 X#603 Y#703 Z#803
GOTO101
N104