Fanuc serie oi-mb macroistruzioni

Sezione Fanuc
Rispondi
torn24
God
God
Messaggi: 5318
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » giovedì 29 agosto 2024, 6:25

Se hai tre while annidati, cioè uno dentro l'altro, uno contente due, e due contiene tre. Allora hai il limite di tre while annidati.
Se invece hai bisogno di while ma non annidati, puoi ripetere WHILE DO1 END1, Sempre cosi sempre DO1, uno di seguito.sotto all'altro quante volte vuoi, e non hai neanche bisogno di usare numeri diversi do2 o do3.


Se invece hai effettivamente bisogno di piu cicli annidati superiore a tre. Puoi costruirti cicli con if e goto, e non ha limiti di annidamento, quanti ne vuoi uno dentro l'altro. Ti mostro un loop con IF, tu poi ne crei quanti ne vuoi.

Codice: Seleziona tutto

(OGNI LOOP CICLO TI SERVE UNA VARIABILE DEDICATA, IL CONTATORE)
#100=0

N100 (Numero di salto, dove il goto torna indietro, sarebbe inizio ciclo loop)
Qui il codice che devo ripetere
.........
........
........
#100=#100+1 (CONTATORE DEI CICLI)
IF[#100LE10]GOTO100 (Fino a quando la variabile #100 non ha valore 10, ripete il salto, e quindi il codice, come un WHILE)



Adesso puoi pensare di creare un codice uno dentro l'altro, se ti servono 4 cicli annidati, userai 4 variabili.
CIAO A TUTTI !

Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » venerdì 30 agosto 2024, 16:16

Ah ok io pensavo da ignorante che non potevo usare più while do1 e end 1 grazie per avermelo fatto comprendere intanto ho completato il mio primo programma anche se lo modificherò più in là perché in effetti anche se non ci dovrebbe essere l esigenza ma più per una cosa personale voglio perfezionarlo devo aggiungere la possibilità di fare la stessa lavorazione con una fresa più piccola(anche se è un po insensato ma almeno completo tutte le incognite.....
Questa sera ho la possibilità di provare a scrivere questa variazione che mi hai consigliato almeno scrivendolo la comprendo meglio.
Mi chiedevo dato che oltre a voi non ho la possibilità di confrontarmi riguardante quest argomento, posso far leggere il programma scritto in modo da capire eventuali errori?

Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » venerdì 30 agosto 2024, 17:54

Ma con questa tipologia di programmazione c'è la possibilità di richiamare anche un programma?

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » sabato 31 agosto 2024, 6:31

Non puoi richiamare un programma da un sottoprogramma, ma puoi richiamare un altro sottoprogramma dal sottoprogramma, basta che nel sottoprogramma metti M98 o richiamo macro.

Siccome nel sottoprogramma, puoi mettere lo stesso codice che metteresti in un programma, nella pratica fai quello che vuoi e non ti cambia niente :D
CIAO A TUTTI !

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » sabato 31 agosto 2024, 7:13

Per quanto riguarda il programma postalo, stiamo usando il forum in modo improprio, parlando di tutto in un thread ma fin quando non ci dicono qualcosa, possiamo far finta di niente :D

Il programma va sempre bene se fa quello che volevi fare, per cui per dirti se c'è qualcosa che non va, mi devi descrive molto bene, in modo molto accurato, tutto quello che vorresti ottenere, e poi ti posso dire se il programma che hai scritto fa quello che volevi.
CIAO A TUTTI !

Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » giovedì 12 settembre 2024, 0:17

chiedo scusa questo è il primo forum non sono pratico dovrei fare un altra domanda al posto di rispondere?

perdona la lunga attesa non sono riuscito a finire tutto prima ecco il file sono aperto a critiche mi sa appassionando molto nonostante il poco tempo a disposizione
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » giovedì 12 settembre 2024, 7:04

Ciao, tu hai postato immagini dello schermo e non riesco a leggere il testo del programma.
Dovresti copiare il testo con copia, e poi incollarlo qui, sopra ci sono dei pulsanti, il pulsante che ha questo simbolo </> permettere di racchiudere il codice, come ho fatto io per te. Inserisci il codice tra le scritte code e /code, cosi verra mostrato come codice

Codice: Seleziona tutto


Incollando il testo in questo modo viene pubblicato come codice

CIAO A TUTTI !

Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » giovedì 12 settembre 2024, 17:56

Ok chiedo scusa

Codice: Seleziona tutto

VARIABILI
X Lunghezza asola in x
Y Lunghezza asola in y
Z profondità finale
I profondità per passata
F velocità AVANZAMENTO
D diametro fresa
R RITRAZIONE
Q incremento passate interne

T01 M6;
M3S1000;
G90 G54;
G0 G43 H1 Z100;
G0 X0 Y0;	CENTRO ASOLA 


G300                       X#24      Y#25      Z#26      R#18       I#4      D#7      F#9      Q#17     

O9019;
#101 = #4001	SALVA G0/G1
#102 = #4003	SALVA G90/G91
#103 = #5003	SALVA POSIZIONE Z
#104 = #4007	SALVA G41/G42
#105 =#4008	SALVA G43
#110 = [#24 / 2]	RAGGIO ASOLA IN X/ METà ASOLA IN X
#111 = [#25 - #24]	DIFFERENZA X Y
#112 = [#24 – 111]
#120 = [#25 / 2]	RAGGIO ASOLA IN Y/ METà ASOLA IN Y
#122 = [#25 - #111]
#125 =  [#7 / 2]	RAGGIO FRESA
#130 = [#110 - #125]	DIFFERENZA TRA RAGGI PER SPOSTAMENTO X
#131 = [#110 - #120]	METà ASOLA IN X SENZA IL RAGGIO
#140 = [#120 - #125]	DIFFERENZA TRA RAGGI PER SPOSTAMENTO Y
#141 = [#120 - #110]	METà ASOLA IN Y SENZA IL RAGGIO
#150 = [#110 - #170]	CONTATORE PER GLI INCREMENTI INTERNI E INTERPOLAZIONE
#160 = [120 - #170]	CONTATORE PER GLI INCREMENTI INTERNI E INTERPOLAZIONE
#170 = [#17 / 2]	incremento interno suddiviso 
#190 = #5003 - #4	PROSSIMO VALORE Z
#195 = ABS [#26] – ABS [#5003]	QUOTA MANCANTE PER ULTIMA PASSATA


G90 G0 Z#18	DISCESA FINO A R
IF [#24 GT #25] GOTO 10	SE X MAGGIORE DI Y (asola lungo asse x)
IF [#24 LT #25] GOTO 40	SE X MINORE DI X (asola lungo asse y)

N°10 WHILE [#26 (#190) NE 0] DO1	AFFICHE Z DIVERSO DA 0
IF [#26 (#190) LT #4] THEN #4 = #195
IF [#7 EQ #25] GOTO 20	SE D.FRESA UGUALE Y
IF [#7 LE #25] GOTO 30	SE D.FRESA MINORE DI Y

N°20 G91 G1 X-#131  Z-#4 F#9;	SCENDENDO IN Z CON LA I VAI AVANTI IN X
X#112 ;	TORNA INDIETRO IN X LUNGO TUTTA LA SEDE
X-#131 ;	RITORNA AL PUNTO DI PARTENZA
#26(#190?) = #5003-#4 ;	CONTATORE 
GOTO 10	RITORO N°10
END 1
G0T0 150

N°30 G90 G42 G1 X[#24 - #24] Y-#140 F#9 ;	AFFIANCAMENTO PROFILO IN Y
G91 X-#131 Z-#4 ;	ARRIVO PRE INTERPOLAZIONE 
G2 Y#140 J#140 ;	INTERPOLAZIONE SEGUENDO L PERIMETRO
G1 X#112 ;	ARRIVO PRE INTERPOLAZIONE
G3 Y-#140 J#-140 ;	INTERPOLAZIONE SEGUENDO L PERIMETRO
G1 X-#131	ARRIVO AL PUNTO DI PARTENZA CICLO
N°35 WHILE [#160 GE #7] DO 2	affinche l incremento è >=  DIAMETRO FRESA
G1 G90 Y#160 F#9 ;	INCREMENTO INERNO
G91 X-#131;	PRE INTERPOLAZIONE	
G3 Y#160 J#160 ;	INTERPOLAZIONE
G1 X#112 ;	PRE INTERPOLAZIONE
G3 Y-#160 J-#160 ;	INTERPOLAZIONE
#160 = #160 - #17 ;(se metto il contatore qui il valore sotto lo cambia o passa a goto 35?)
G1 X-#112 Y#160 ;	INTERPOLAZIONE CON INCREMENTO(se il blocco sopra funziona)

END 2
(vorrei migliorare la serie di interpolazione in modo che toglie materiale sia da un lato che dall altro e quindi quando è negativo farebbe G91 X-#122)
G1 G91 X#112 F#9;	PULIZIA CENTRALE
#26(#190?) = #5003-#4  

END 1
GOTO 100

N40 WHILE [#26 (#190) NE 0] D0 1
IF [#26 (#190) LT #4] THEN #4 = #195
IF [#7 EQ #24] GOTO 50
IF [#7 LE #24] GOTO 60

N°50 G91 G1 Y-#141  Z-#4 F#9;	SCENDENDO IN Z CON LA I VAI AVANTI IN X
Y#122 ;	TORNA INDIETRO IN Y LUNGO TUTTA LA SEDE
Y-#141 ;	RITORNA AL PUNTO DI PARTENZA
#26(#190?) = #5003-#4 ;	CONTATORE 
END 1
G0T0 150



N°60 G90 G42 G1 X-#130 Y[#25 - #25] F#9 ;	AFFIANCAMENTO PROFILO IN x
G91 Y#141 Z-#4 ;	ARRIVO PRE INTERPOLAZIONE 
G3 X#130 I#130 ;	INTERPOLAZIONE SEGUENDO L PERIMETRO
G1 Y-#122 ;	ARRIVO PRE INTERPOLAZIONE
G3 X-#130 I#-130 ;	INTERPOLAZIONE SEGUENDO L PERIMETRO
G1 Y#141	ARRIVO AL PUNTO DI PARTENZA CICLO
N°65 WHILE [#150 GE #7] DO 2	affinche l incremento è >= D 
G1 G90 X#150 F#9 ;	INCREMENTO INERNO
G91 Y#141;	PRE INTERPOLAZIONE	
G3 X#150 I#150 ;	INTERPOLAZIONE
G1 Y-#122 ;	PRE INTERPOLAZIONE
G3 X-#150 I-#150 ;	INTERPOLAZIONE
#150 = #150 - #17 ;(se metto il contatore qui il valore sotto lo cambia o passa a goto 35?)
G1 Y#112 X#150 ;	INTERPOLAZIONE CON INCREMENTO(se il blocco sopra funziona)

END 2
(STESSA COSA PER SOPRA)
G1 G91 Y-#122 F#9;	PULIZIA CENRALE
#26(#190?) = #5003-#4  

END 1
GOTO 100

N°100 G90 G40 G1 X0 F#9
Z[#18+1]
G0 Z#103;
G#101 G#102 G#104 G#105
M99

N°150 G1 Z[#18+1]
G0 Z#103;
G#101 G#102 G#104 G#105
M99;



IN ROSSO CI SONO ALCUNI MIEI DUBBI OVVERO BISOGNA UTILIZZARE UN CONTATORE APPARTE O LA #26 A BENE?

PER MIGLIORARE L INTERPOLAZIONE AVEVO SUPPOSTO DI UTILIZZARE LA #170 ALL INTERNO MA POI COME FACCIO A DIRGLI ESEMPIO IN X POSITIVO COMPORTATI IN UN MODO O SE SEI NEGATIVO IN UN ALTRO?SI UTILIZZA #5001?

È CORRETTO QUELLO SPOSTAMENTO #24-#24? O POSSO SCRIVERCI X0 DIRETTAMENTE?

AVEVO PENSATO CHE SE PRIMA DEL CICLO IN X0 Y0 AGGIUNGO G41 O G42 POSSO FAR IN MODO CHE IN BASE A QUELLO CHE SCRIVO LI SI COMPORTA IN UN MODO DIFFERENTE? ESEMPIO CON G42 SI COMPORTA COSI MENRE CON IL G41 MI FA UNA CHIAVETTA? QUINDI SCRIVO COME COMPORTARSI? 




Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » giovedì 12 settembre 2024, 18:39

Mi sono appena reso conto che prima di chiudere i cicli con END 2 ho dimenticato di correggere l ultimo rigo nel blocco N30 alla fine non è X-#112 ma -#131 e nel blocco N60 è Y-#141

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » venerdì 13 settembre 2024, 5:55

Be non è facile capire il programma di un altro, si capisce gli errori di sintassi di linguaggio, ma è difficile capire l idea che ha avuto un altro.
Allora ti posso dire che hai capito tutte le regole del linguaggio salto, salto condizionato e i concetti, usando le variabili di sistema sono concetti che di solito non si usano le prime macro, quindi penso che hai talento, sei portato e potrai diventare tra i migliori nella creazione di macro fanuc :D

I problemi di sintassi, i commenti devono essere sempre tra parentesi tonde altrimenti ti da allarme errore, ma è bene che ci siano i commenti, cosa molto positiva. In alcune condizioni hai messo tra parentesi tonde la variabile centonovanta, questo non è permesso dal linguaggio, non ottieni quello che vorresti, e se metti parentesi tonde in una condizione o espressione ti da errore.


Per quanto riguarda la logica del programma, non mi hai descritto cosa vorresti fare, presumo che se il lato maggiore è x, freso facendo un percorso, se lato maggiore è y faccio un altro percorso.

Adesso dovresti provarla, dopo aver corretto la sintassi, vedere i movimenti, e da questi capire quali comportamenti correggere.
Capita che chi inizia voglia realizzare macro per asola, ma di solito cerca di fare i movimenti essenziali, come percorso di contornatura interna, sicuramente tu non avresti avuto problemi a fare una cosa del genere, ma hai pensato a una macro avanzata e questo complica le cose. Dimostra che sei portato, ma consigliano sempre di partire con cose semplici, e poi a passare a cose piu complesse, la tua idea invece è gia avanzata. Io ho iniziato con cose semplici.
CIAO A TUTTI !

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » venerdì 13 settembre 2024, 6:59

Ho provato a fare una macro per fresatura asola, questo non vuol dire che è meglio della tua, potrebbe essere meglio la tua, se riesci a farla funzionare. Pero ti faccio vedere come faccio io a risolvere questi problemi, solo per farti sapere come un risolve i problemi come puo a modo suo :D

Allora la macro è mendo sofisticata, non ha sicurezze, per cui la persona che la usa deve assicurarsi due cose, il diametro fresa deve essere sempre inferiore alla larghezza asola, non ho messo condizioni di sicurezza, e deve assicurarsi che profondita dell'asola diviso profondita passata sia un numero intero e non decimale, perche non ho messo niente che ricalcoli la profondita di passata.


Io ho creato la macro, dopo nei due cicli while che eseguono la fresatura, dovevo creare il percorso di fresatuar G1 G3 usando le variabili,
Siccome quando mi sono messo a fare il percorso mi scocciava, Ho fatto fare il percorso di fresatura dentro ai WHILE da CHATGTP INTELLIGENZA ARTIFICIALE :badgrin:

Macro mia, codice dentro i while da intelligenza artificiale.


Codice: Seleziona tutto


%
O1000
#100=#24  (DIMENSIONE IN X)
#101=#25  (DIMENSIONE IN Y)
#102=#26  (PROFONDITA ASOLA Z)
#103=#7   (DIAMETRO FRESA D SEMPRE MINORE LARGHEZZA ASOLA)
#104=#4   (PROFONDITA DI PASSATA I)
#105=#9   (AVANZAMENTO FRESA F)
#106=#17  (SOVRAMETALLO FINITURA, 0 NON SOVRAMETALLO Q)
#107=FIX[#102/#104]  (NUMERO PASSATE, Z DIVISO PROFONDITA DI PASSATA, DEVE ESSERE UN NUMERO INTERO)

#110=0    (CONTATORE PASSATE IN Z)
#111=[[#101-#103]/2]  (RAGGIO PER ESTREMITÀ DELL'ASOLA)

G0 X[#100/2] Y[#101/2]  (POSIZIONAMENTO INIZIALE CENTRO ASOLA)

IF[#100GT#101] GOTO 10  (SE ASOLA ORIZZONTALE PRIMO PERCORSO DI FRESATURA)
IF[#101GT#100] GOTO 20  (SE ASOLA VERTICALE SECONDO PERCORSO DI FRESATURA)
GOTO 100  (LE RIGHE SUCCESSIVE N10 E N20 SONO ESEGUITE SOLO COME DESTINAZIONE DI SALTO GOTO)

N10  (PERCORSO DI FRESATURA ASOLA ORIZZONTALE)
WHILE[#110LT#107]DO1
  G91 G1 Z-#104 F100  (DISCESA DI UNA PASSATA)
  G90

  (FRESATURA DELL'ASOLA ORIZZONTALE, MOVIMENTI CONCORDI ANTIORARI)
  
  G1 X[[#100/2]-[#111]] Y0 F#105  (SPOSTAMENTO VERSO IL BORDO SINISTRO)
  
  G3 X[[#100/2]-[#111]] Y[#111] R[#111]  (ARCO SUPERIORE SINISTRO)
  G1 X[[-#100/2]+[#111]] Y[#111]  (MOVIMENTO LINEARE SUL LATO SUPERIORE)
  G3 X[[-#100/2]+[#111]] Y0 R[#111]  (ARCO SUPERIORE DESTRO)
  
  G1 X[[-#100/2]+[#111]] Y[-#111]  (MOVIMENTO LINEARE SUL LATO INFERIORE)
  G3 X[[#100/2]-[#111]] Y[-#111] R[#111]  (ARCO INFERIORE DESTRO)
  G1 X[[#100/2]-[#111]] Y0  (RITORNO AL CENTRO INFERIORE)

  #110=[#110+1]  (INCREMENTA IL CONTATORE DELLE PASSATE)
END1

GOTO 100

N20  (PERCORSO DI FRESATURA ASOLA VERTICALE)
WHILE[#110LT#107]DO1
  G91 G1 Z-#104 F100  (DISCESA DI UNA PASSATA)
  G90

  (FRESATURA DELL'ASOLA VERTICALE, MOVIMENTI CONCORDI ANTIORARI)

  G1 X0 Y[[#101/2]-[#111]] F#105  (SPOSTAMENTO VERSO IL BORDO INFERIORE)

  G3 X[#111] Y[[#101/2]-[#111]] R[#111]  (ARCO SINISTRO INFERIORE)
  G1 X[#111] Y[[-#101/2]+[#111]]  (MOVIMENTO LINEARE SUL LATO SINISTRO)
  G3 X0 Y[[-#101/2]+[#111]] R[#111]  (ARCO SUPERIORE SINISTRO)

  G1 X[-#111] Y[[-#101/2]+[#111]]  (MOVIMENTO LINEARE SUL LATO DESTRO)
  G3 X[-#111] Y[[#101/2]-[#111]] R[#111]  (ARCO DESTRO INFERIORE)
  G1 X0 Y[[#101/2]-[#111]]  (RITORNO AL CENTRO INFERIORE)

  #110=[#110+1]  (INCREMENTA IL CONTATORE DELLE PASSATE)
END1

N100 M99  (FINE DEL PROGRAMMA)
%






Ultima modifica di torn24 il venerdì 13 settembre 2024, 7:14, modificato 1 volta in totale.
CIAO A TUTTI !

Detoz91
Newbie
Newbie
Messaggi: 18
Iscritto il: domenica 14 luglio 2024, 1:25

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da Detoz91 » venerdì 13 settembre 2024, 7:00

Giustamente io che la scrivo c'è l ho in mente e chi la deve leggere non sta in mente mia😅 comunque ti ringrazio per la fiducia mi fa venir voglia di scrivere o comunque di impegnarmi in questo ambito e la cosa non mi dispiace affatto.
Per quanto riguarda la #190 l ho messa tra parentesi perché sull altro file era segnato in rosso dato che non ho capito se devo mettere un contatore in questo caso #190 oppure va bene anche usare la#26? O meglio se uso la#26 succede qualcosa dato che dopo la sottraggo?comunque si esattamente se la x è maggiore fa l asola in x come"parte lunga" altrimenti la fa in y.
Ho tantissime domande ma mi rendo conto che più di semplici domande forse occorre un piccolo corso così almeno potrei togliermi qualche dubbio in più,ora devo capire come è dove testare il programma ma una chiacchierata con il boss e si vede fare, volevo ringraziarti di cuore perché tutto questo tempo vuol dire che non è stato vano grazie per l incoraggiamento ❤️

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

Re: Fanuc serie oi-mb macroistruzioni

Messaggio da torn24 » sabato 14 settembre 2024, 8:48

Ho provato il percorso di fresatura fatto da Intelligenza artificiale, non è in grado di farlo, genera testo il codice programma è testo, ma il percorso di fresatura bisogna immaginarsi il percorso e AI non è in grado di farlo. Per cui l'ho fatto a mano.
Provata su rosettacnc, ora esegue le asole correttamente. Solo se puo interessare il programma da lanciare.

Codice: Seleziona tutto

O2000
G0 G17 G21 G40 G49 G80 G90 G94
T1 M6
S1000 M3
G0 X0 Y0
G43 H1 Z0
G65 P1000 X40 Y20 Z5 I1 D5 F1000
G0 Z0
G65 P1000 X20 Y40 Z5 I1 D5 F1000
M30
%
O1000 (DA VERIFICARE PERCORSO POTREBBE CONTENERE ERRORI)
#100 = #24  (DIMENSIONE IN X)
#101 = #25  (DIMENSIONE IN Y)
#102 = #26  (PROFONDITA ASOLA Z)
#103 = #7   (DIAMETRO FRESA D, SEMPRE MINORE LARGHEZZA ASOLA)
#104 = #4   (PROFONDITA DI PASSATA I)
#105 = #9   (AVANZAMENTO FRESA F)
#106 = #17  (SOVRAMETALLO FINITURA, 0 NON SOVRAMETALLO Q)
#107 = FIX[#102 / #104]  (NUMERO PASSATE, Z DIVISO PROFONDITA DI PASSATA, DEVE ESSERE UN NUMERO INTERO)
#104 = [#102 / #107]     (RICALCOLO PROFONDITA DI PASSATA, IN MODO CHE NUMERO PASSATE X PROFONDITA DIA ZETA ASOLA ESATTA)
#110 = 0     (CONTATORE PASSATE IN Z)
#111 = [[#101 - #103] / 2]  (RAGGIO PER ESTREMITÀ DELL'ASOLA)

IF[#111 LE 0] THEN #111 = 0.01  (ASSICURA CHE IL RAGGIO NON SIA ZERO)

IF[#100 GT #101] GOTO 10  (SE ASOLA ORIZZONTALE PRIMO PERCORSO DI FRESATURA)
IF[#101 GT #100] GOTO 20  (SE ASOLA VERTICALE SECONDO PERCORSO DI FRESATURA)
GOTO 100  (LE RIGHE SUCCESSIVE N10 E N20 SONO ESEGUITE SOLO COME DESTINAZIONE DI SALTO GOTO)

N10  (PERCORSO DI FRESATURA ASOLA ORIZZONTALE)
WHILE[#110 LT #107] DO1
  G91 G1 Z-#104 F100  (DISCESA DI UNA PASSATA)
  G90
  G1 Y[-#111] F[#105] 
  G1 X[[#100 / 2] - [#101/2]] F[#105]  (META LARGHEZZA INFERIORE DESTRA)
  G3 X[[#100 / 2] - [#101/2]] Y[#111] I0 J[#111]  (ARCO DESTRO)
  G1 X[[-#100 / 2] + [#101/2]] Y[#111]  (LARGHEZZA SUPERIORE)
  G3 X[[-#100 / 2] + [#101/2]] Y[-#111] I0 J[-#111]   (ARCO SINISTRO)
  G1 X0   (META LARGHEZZA INFERIORE SINISTRA)
  #110 = [#110 + 1]  (INCREMENTA IL CONTATORE DELLE PASSATE)
END1
G0 Z10
GOTO 100

N20  (PERCORSO DI FRESATURA ASOLA VERTICALE)
WHILE[#110 LT #107] DO1
  G91 G1 Z-#104 F100  (DISCESA DI UNA PASSATA)
  G90
  G1 X[#111]  F[#105]  (SPOSTAMENTO VERSO IL BORDO INFERIORE)
  G1 Y[[#101 / 2] - [#100 / 2]]
  G3 X[-#111] Y[[#101 / 2] - [#100 / 2]] I[-#111] J0 (ARCO INFERIORE SINISTRO)
  G1 Y[[-#101 / 2] + [#100/2]]  (MOVIMENTO LINEARE SUL LATO SINISTRO)
  G3 X[#111] Y[[-#101 / 2] + [#100 / 2]]  I[#111] J0 (ARCO SUPERIORE SINISTRO)
  G1  Y0 (MOVIMENTO LINEARE SUL LATO DESTRO)
  #110 = [#110 + 1]  (INCREMENTA IL CONTATORE DELLE PASSATE)
END1
G0 Z10
N100 M99  (FINE DEL PROGRAMMA)
%






CIAO A TUTTI !

Rispondi

Torna a “Fanuc”