Rieccomi ... ho vinto io
ti metto il nuovo codice (questo in teoria dovrebbe andare bene per qualsiasi passata utensile e per qualsiasi numero di "denti" anche se io ho lasciato l'angolo come avevi fatto tu all'inizio .
comunque ...
ora hai 4 dati da impostare ( che nei commenti sono scritti in maiuscolo)
ANGOLO DI ROTAZIONE
Z DI PARTENZA
MAX PROFONDITA' PASSATA UTENSILE
PROFONDITà MAX DI FRESATURA
Il resto te lo dimentichi e fa tutto il sw
nell'esempio che ti ho lasciato e con i dati che ho messo ti fa la prima passata completa su tutti i denti con una profondità di 0.75 (dato impostato ) , la seconda sempre da 0.75 ( e siamo a 1.50 ) poi , siccome la max profondità di fresatura è stata impostata a 2 l'ultima passata sarà da 0,5 per raggiungere la quota impostata nei dati .
Io ho fatto varie prove con dati decimali ed ha sempre funzionato a dovere , se lo provi fammi sapere.
bye
G0 G49 G40 G17 G80 G50 G90 F600
M6 T1 (TOOL DIA. 6)
#1=18 ; ANGOLO DI ROTAZIONE
#2=[360/#1] ; numero di ripetizione routine divisioni
#3=0 ; parametro di aiuto per i calcoli
#4=20.25 ; Z DI PARTENZA
#5=.75 ; MAX PROFONDITA' PASSATA UTENSILE
#6=[#4-#5] ; parametro di aiuto per i calcoli in Z
#7=#5 ; parametro di aiuto per i calcoli
#8=2 ; PROFONDITà MAX DI FRESATURA
#9=[#4-#8] ; parametro di aiuto per il calcolo della quota di arrivo
#25=[1*[fup[#8/#5]]] ; (***calcola il numero di passate )
;*************************************************************************************************
G21(mm)
M03 S3000
G0 G64 A0
Y0 X7
G0 G43 H1 Z[#4]
#3=#1
M98 P0002 Q[#25] ;esegue per il numero di passate
Z[#4]
X7
M5 M9
M30
o0002 ; inizio elaborazione
M98 P0001 Q[#2] ;questo cambia in automatico in base all'angolo di rotazione
; ********** CICLO IF-THEN ELSE***********************
#10=[[#6-#7]-#9]
#11=[#10+ABS[#10]]
#12=[1 XOR #11]
M98 P[#12+10]
;************** FINE CICLO **************************
M99
O0001
G1 Z[#6] X-7 F200
g1 X-17 A[#3] F600
G0 Z[#4]
X-7
#3=[#3+#1] ; aumenta l'angolo
M99
O0011
#3=#1
#5=[#5+#7]
#6=[#4-#8] ; calcola la nuova z
M99
O0010
#3=#1
#5=[#5+#7] ; aumenta del valore di passata
#6=[#4-#5] ; calcola la nuova z
M99