CICLO WHILE PER MACRO

ISO Fanuc, ISO Mitsubishi, Mori Seiki, Fanuc Manual Guide, etc.
Rispondi
marcelloc
Junior
Junior
Messaggi: 51
Iscritto il: sabato 19 febbraio 2011, 16:22
Località: chiaravalle

CICLO WHILE PER MACRO

Messaggio da marcelloc » martedì 15 agosto 2017, 12:03

Salve,
sto cercando di scrivere una macro per fresare spirali, sono alle prime battute ed ho un problema con il ciclo while.
praticamente la fresa si posiziona al centro,si sposta in x di alcuni mm entrando nel pezzo, e poi inizia l'interpolazione a spirale fino ad arrivare al raggio stabilito, per poi fare un 'interpolazione circolare per definire il contorno.Ritorna al centro scende del valore in z incremento, e ripete il tutto.
Uso il ciclo while con 2 annidamenti, ma ho un errore di sovrapposizione....qualcuno che ne sappia più di me
grazie e buon ferragosto a tutti :D

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

Re: CICLO WHILE PER MACRO

Messaggio da torn24 » mercoledì 16 agosto 2017, 9:38

E' un po difficile capire quello che vuoi dire senza vedere il codice che hai fatto.
Comunque i cicli while devono essere uno all'interno dell'altro senza "icrociarsi"

Codice: Seleziona tutto

(Modo di uso corretto di tre cicli while annidati)
WHILE[#100LT10] DO1

    WHILE[#101LT10] DO2
    
           WHILE[#102LT10] DO3
      
           END3
           
     END2

END1
CIAO A TUTTI !

marcelloc
Junior
Junior
Messaggi: 51
Iscritto il: sabato 19 febbraio 2011, 16:22
Località: chiaravalle

Re: CICLO WHILE PER MACRO

Messaggio da marcelloc » domenica 20 agosto 2017, 11:47

Grazie per la risposta ,Torn24, posto con le variabili quello che vorrei fare..
#1=0,05(incremento raggio)
#2=1(incremento gradi)
#7=10(raggio finito)
#5=2(raggio punto partenza)
#23=1(incremento W in z-)
#8=#5(salvo valore)
#4=#7(COORDINATA I)
#26= 10(PROF Z)
#25=0(VALORE Y)
#24=0(VALORE X)
#18=2(QUOTA R DI SICUREZZA Z)
#19=#18(COPIA)

#9=150(avanz)
#22=#7-#20(RAGGIO CeRCHIO REALE)
G0 Z#18
G01 W-#19 F#9
WHILE[#23NE#26]DO1
W-#23X#5
WHILE[#8NE#7]DO2
G01 X[#8*COS[#2]] Y[#8*SIN[#2]]F#9(spirale)

#8=#8+#1(INCREMENTO RAGGIO )
#2=#2+10(INCREMENTO GRADI)
IF[#8GT#7]GOTO150
N100 END 2
N150
G01 X#24 Y#25(TORNA AL CENTRO)
G01 X#7(POSIZIONE RAGGIO DA ESEGUIRE)
G03 X#7 Y#25 I-#4(CERCHIO)
G01 X#24Y#25(TORNA AL CENTRO)

#23=#23+1
END1


G00 Z50
M30
macro error..overlapping loops are not allowed
la spirale la esegue , torna al centro ma poi si blocca, sicuramente è il goto che da fastidio..

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

Re: CICLO WHILE PER MACRO

Messaggio da torn24 » lunedì 21 agosto 2017, 8:15

Ciao, non trovo l'errore, ho guardato sul manuale e dice che è consentito uscire da un WHILE[] con un GOTO ...
CIAO A TUTTI !

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

Re: CICLO WHILE PER MACRO

Messaggio da torn24 » lunedì 21 agosto 2017, 13:16

Ho notato che uscendo dal secondo While do2 non riporti a valore iniziale la variabile #8 e #2; in quel modo il while interno viene eseguito una sola volta, perché dopo che lo ha eseguito la condizione è falsa
CIAO A TUTTI !

TIRZAN
God
God
Messaggi: 3071
Iscritto il: sabato 27 luglio 2013, 16:54
Località: AQ

Re: CICLO WHILE PER MACRO

Messaggio da TIRZAN » martedì 22 agosto 2017, 19:16

prova a mettere un END2 anche dopo N150 (in caso di salto)

marcelloc
Junior
Junior
Messaggi: 51
Iscritto il: sabato 19 febbraio 2011, 16:22
Località: chiaravalle

Re: CICLO WHILE PER MACRO

Messaggio da marcelloc » giovedì 24 agosto 2017, 0:12

Grazie a tutti per i consigli, ma nulla di fatto, pazienza....

Rispondi

Torna a “Programmazione CNC”