Anche io a volte posto info che non hanno nulla a che vedere con le macchine ma lo faccio nelle apposite sezioni
Divertiamoci un po con il M.A.T.
-
- Member
- Messaggi: 486
- Iscritto il: venerdì 14 gennaio 2011, 10:45
- Località: Napoli
- Contatta:
Re: Divertiamoci un po con il M.A.T.
Anche io a volte posto info che non hanno nulla a che vedere con le macchine ma lo faccio nelle apposite sezioni
-
- Junior
- Messaggi: 94
- Iscritto il: sabato 24 dicembre 2011, 12:43
- Località: modena
Re: Divertiamoci un po con il M.A.T.

Giocando si impara (Così hanno sempre detto)
La sezione è quella giusta perchè comunque si parla di programmazione e di conseguenza di
calcoli matematici. A meno che per programmazione uno intenda solo XYZ.
Mettere lo zero sull'angolo potrebbe essere una soluzione... Avresti tutti i segni meno o più.
Ma qui la scelta è opinabile e non mi dilungo sulla convenienza di avere lo zero sul centro pezzo.
Adesso passo a un esempio pratico di programmazione con il problema di questo calcolo...
Ammettiamo di spianare un pezzo. Partiamo dal fatto che i pezzi non siano sempre uguali tra loro.
dimensione pezzo 600x400. Diametro fresa 80. Spostamento fresa 0,9*80 = 72
Primo punto di posizionamento in Y (400-80+4)/2 = 162
Primo punto di posizionamento in X (600+80+4)/2 = 342
Partendo dal punto X positivo e Y Positivo. Perciò X342Y162
Dopo la prima passata in X e cioè X-342 (questo è uno dei vantaggi dello zero al centro pezzo)
decremento la Y di 72 e così via fino a farla arrivare a Y-162.
Problema.. come faccio a dire al CN che quando raggiunge o supera -162 è arrivato?
Metto le quote in parametri per capirci meglio
P1=342; P2=162; P4=-162
Se faccio...
Quando P2>P4 (sei arrivato) la fresa fa la prima passata e poi si ferma
Se faccio
Quando P2<P4 (Sei arrivato) P2 è maggiore di P4 fino a quando questo non diventa negativo e cioè a -54. Non è arrivato ma la fresa si ferma lo stesso.
Ok, soluzione Matematica....
P1=342;P2=162;P4=162
A ogni decrementazione della Y io calcolo
P6=SQR(P2*P2)
P6>P4 (Sei Arrivato)

Semplice o no?
Re: Divertiamoci un po con il M.A.T.
Quà hai fatto un errore di distrazione:
"Primo punto di posizionamento in X (600+80+4)/2 = 342"
è: (600-80+4)/2 = 262
le funzioni matematiche in tutti i linguaggi di programmazione possono lavorare su variabili con segno o senza segno .....è chiaro che quando lavori con coordinate sia positive che negative le variabili devono essere dichiarate CON SEGNO, quindi la funzione di radice quadrata del quadrato della variabile diventa inutile..semplice no?
"Primo punto di posizionamento in X (600+80+4)/2 = 342"
è: (600-80+4)/2 = 262
le funzioni matematiche in tutti i linguaggi di programmazione possono lavorare su variabili con segno o senza segno .....è chiaro che quando lavori con coordinate sia positive che negative le variabili devono essere dichiarate CON SEGNO, quindi la funzione di radice quadrata del quadrato della variabile diventa inutile..semplice no?
- dacchio
- Junior
- Messaggi: 195
- Iscritto il: domenica 18 dicembre 2011, 17:46
- Località: pescara
Re: Divertiamoci un po con il M.A.T.
no è giusto il calcolo di claugoturbina ha scritto:Quà hai fatto un errore di distrazione:
"Primo punto di posizionamento in X (600+80+4)/2 = 342"
è: (600-80+4)/2 = 262
le funzioni matematiche in tutti i linguaggi di programmazione possono lavorare su variabili con segno o senza segno .....è chiaro che quando lavori con coordinate sia positive che negative le variabili devono essere dichiarate CON SEGNO, quindi la funzione di radice quadrata del quadrato della variabile diventa inutile..semplice no?
se attacchi con la fresa a 262 attacchi su pezzo (almeno cosi è sulle iso sul mazak per esempio no perche calcola gia i raggio fresa)
Re: Divertiamoci un po con il M.A.T.
Ah, è vero , però questo vale solo per la prima passata, le altre passate dopo la prima possono essere fatte più corte ..in +/- 262mm invece di +/- 342mm senza andare ogni volta fuori e dentro dal blocco, si fà la spianatura in un tempo inferiore del 23%
-
- Junior
- Messaggi: 94
- Iscritto il: sabato 24 dicembre 2011, 12:43
- Località: modena
Re: Divertiamoci un po con il M.A.T.
turbina ha scritto:Ah, è vero , però questo vale solo per la prima passata, le altre passate dopo la prima possono essere fatte più corte ..in +/- 262mm invece di +/- 342mm senza andare ogni volta fuori e dentro dal blocco, si fà la spianatura in un tempo inferiore del 23%
Scsa se te lo dico ma non devi essere un gran fresatore... L'uscita dal pezzo conviene nel 99%
per eliminare eventuali tallonamenti della fresa...
Non ho capito il tuo discorso sul fatto di dichiarare le variabili... Poi dimmi come fai a fare un confronto tra -262 e +262 senza incappare nel problema che ho accennato....
Ciao
Re: Divertiamoci un po con il M.A.T.
In qualsiasi linguaggio si dichiarano le variabili con o senza segno
ad esempio in C unsigned int X dichiara una variabile a 16 bit che va da 0 a 65535 , mentre signed int è con segno cioe da -32768 a +32767, se nel programma che fà funzionare la cnc le variabile vengono dichiarate correttamente tutte le operazioni matematiche sono esatte
ad esempio in C unsigned int X dichiara una variabile a 16 bit che va da 0 a 65535 , mentre signed int è con segno cioe da -32768 a +32767, se nel programma che fà funzionare la cnc le variabile vengono dichiarate correttamente tutte le operazioni matematiche sono esatte
Re: Divertiamoci un po con il M.A.T.
che cnc o programma usi?
-
- God
- Messaggi: 5320
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Divertiamoci un po con il M.A.T.
Le soluzioni sono diverse a seconda del tipo di controllo e del tipo di linguaggio si usa !
Non diamo per scontato , sono esperto , o giudicare non sei un gran fresatore
se si usasse linguaggio macro fanuc atribuisci , as esempio le quote ad una variabile , che userai al posto di valori numerici
nei posizionamenti , e quando questa raggiunge un valore finiamo il programma.
codice FANUC ovviamente si potrebbe fare fare tutti i calcoli al cnc , ma non ho voglia di pensare ed è inutile
per quello che vogli mostrare
SUPPONENDO CHE LO ZERO PEZZO SIA AL CENTRO DEL PEZZO
#100=162 (start y)
#120=342 (start x)
#130=-162 (end y)
#140=#100 (posizione corrente y)
G0 X#120 Y#100
N10 G1 Y#140 (Si posiziona in y)
G1 X[#120*-1] F600 (INVERTE LA DIREZIONE DESTRA SINISTRA)
#140=[#140-72]
IF[#140GE #130] GOTO 10(Fino a quando è maggiore di -162 continua ad andare a destra e sinista per spianare)
Come vedi si fa una spianatura con poche righe è potrebbe essere ottimizzata per inserire solo
dimensioni del pezzo
p.s.
se cera badate chi sa che macro avrebbe scritto
Non diamo per scontato , sono esperto , o giudicare non sei un gran fresatore
se si usasse linguaggio macro fanuc atribuisci , as esempio le quote ad una variabile , che userai al posto di valori numerici
nei posizionamenti , e quando questa raggiunge un valore finiamo il programma.
Codice: Seleziona tutto
Ammettiamo di spianare un pezzo. Partiamo dal fatto che i pezzi non siano sempre uguali tra loro.
dimensione pezzo 600x400. Diametro fresa 80. Spostamento fresa 0,9*80 = 72
Primo punto di posizionamento in Y (400-80+4)/2 = 162
Primo punto di posizionamento in X (600+80+4)/2 = 342
Partendo dal punto X positivo e Y Positivo. Perciò X342Y162
Dopo la prima passata in X e cioè X-342 (questo è uno dei vantaggi dello zero al centro pezzo)
decremento la Y di 72 e così via fino a farla arrivare a Y-162.
Problema.. come faccio a dire al CN che quando raggiunge o supera -162 è arrivato?
codice FANUC ovviamente si potrebbe fare fare tutti i calcoli al cnc , ma non ho voglia di pensare ed è inutile
per quello che vogli mostrare
SUPPONENDO CHE LO ZERO PEZZO SIA AL CENTRO DEL PEZZO
#100=162 (start y)
#120=342 (start x)
#130=-162 (end y)
#140=#100 (posizione corrente y)
G0 X#120 Y#100
N10 G1 Y#140 (Si posiziona in y)
G1 X[#120*-1] F600 (INVERTE LA DIREZIONE DESTRA SINISTRA)
#140=[#140-72]
IF[#140GE #130] GOTO 10(Fino a quando è maggiore di -162 continua ad andare a destra e sinista per spianare)
Come vedi si fa una spianatura con poche righe è potrebbe essere ottimizzata per inserire solo
dimensioni del pezzo
p.s.
se cera badate chi sa che macro avrebbe scritto

CIAO A TUTTI !
-
- God
- Messaggi: 5320
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Divertiamoci un po con il M.A.T.
Aggiungerei queste righe nel codice che ho inserito
che decrementa il valore di y ma se è minore di -162 non esegue l'ultima passata , con questo controllo
verifica che tutto il pezzo sia stato fresato
#150=[#140+72] (controllo ultima passata)
IF[#150GT#130]GOTO 10
che decrementa il valore di y ma se è minore di -162 non esegue l'ultima passata , con questo controllo
verifica che tutto il pezzo sia stato fresato
#150=[#140+72] (controllo ultima passata)
IF[#150GT#130]GOTO 10
Ultima modifica di torn24 il venerdì 13 aprile 2012, 18:12, modificato 1 volta in totale.
CIAO A TUTTI !
- drago
- Senior
- Messaggi: 833
- Iscritto il: martedì 30 novembre 2010, 17:52
- Località: Provincia di FI
Re: Divertiamoci un po con il M.A.T.
Giusto 2 domande per schiarirmi un po' le idee:
P6=SQR(P2*P2) e' diverso da scrivere P6=P2 e per quale motivo?
cito:
Scsa se te lo dico ma non devi essere un gran fresatore... L'uscita dal pezzo conviene nel 99%
per eliminare eventuali tallonamenti della fresa...
l'uscita dal pezzo la capisco entro qualche mm,non capisco che tallonamenti dovrebbero esserci,visto che per 80 mm fresi l'aria...mi sfugge qualcosa?
P6=SQR(P2*P2) e' diverso da scrivere P6=P2 e per quale motivo?
cito:
Scsa se te lo dico ma non devi essere un gran fresatore... L'uscita dal pezzo conviene nel 99%
per eliminare eventuali tallonamenti della fresa...
l'uscita dal pezzo la capisco entro qualche mm,non capisco che tallonamenti dovrebbero esserci,visto che per 80 mm fresi l'aria...mi sfugge qualcosa?
Un orologio che va male non segna mai l'ora esatta, un orologio fermo la segna due volte al giorno.
leonardo sciascia
leonardo sciascia
-
- Junior
- Messaggi: 94
- Iscritto il: sabato 24 dicembre 2011, 12:43
- Località: modena
Re: Divertiamoci un po con il M.A.T.
Scusa Drago ma l'uscita della fresa deve essere completa se si vogliono eliminare le tracce del tallonamento. Il pezzo è 600/2=300 + il raggio della fresa (40) = 340 + 2 millimetri = 342drago ha scritto:Giusto 2 domande per schiarirmi un po' le idee:
P6=SQR(P2*P2) e' diverso da scrivere P6=P2 e per quale motivo?
cito:
Scsa se te lo dico ma non devi essere un gran fresatore... L'uscita dal pezzo conviene nel 99%
per eliminare eventuali tallonamenti della fresa...
l'uscita dal pezzo la capisco entro qualche mm,non capisco che tallonamenti dovrebbero esserci,visto che per 80 mm fresi l'aria...mi sfugge qualcosa?
Per quanto riguarda la forrmula P6=SQR(P2*P2)... Quando elevi al quadrato un numero se questo è negativo diventa positivo Meno*Meno se è positivo rimane positivo Più*Più. Poi lo riporti al suo stato originario SQR(radice quadrata)
Chiedo scusa a turbina per l'infelice espressione "non devi essere un gran fresatore"
Ciao a tutti
-
- Junior
- Messaggi: 94
- Iscritto il: sabato 24 dicembre 2011, 12:43
- Località: modena
Re: Divertiamoci un po con il M.A.T.
Se non erro GE = Se diverso...torn24 ha scritto:Le soluzioni sono diverse a seconda del tipo di controllo e del tipo di linguaggio si usa !.....
codice FANUC ovviamente si potrebbe fare fare tutti i calcoli al cnc , ma non ho voglia di pensare ed è inutile
per quello che vogli mostrare
SUPPONENDO CHE LO ZERO PEZZO SIA AL CENTRO DEL PEZZO
#100=162 (start y)
#120=342 (start x)
#130=-162 (end y)
#140=#100 (posizione corrente y)
G0 X#120 Y#100
N10 G1 Y#140 (Si posiziona in y)
G1 X[#120*-1] F600 (INVERTE LA DIREZIONE DESTRA SINISTRA)
#140=[#140-72]
IF[#140GE #130] GOTO 10(Fino a quando è maggiore di -162 continua ad andare a destra e sinista per spianare)
Nel Selca succede una cosa strana e non so gli altri controlli... Anche io avevo adottato la tua soluzione ma a volte non si fermava e continuava a spianare all'infinito..
Ti è mai capitato di mettere una variabile, ad esempio P1=100,1 e il Cn ti mette P1=100,1001
Questo perchè i calcolatori, computer compresi, tendono ad arrotondare al millesimo superiore.
Per questo motivo -162 non è più uguale a -162.0001 e per questo lui continuerà a luppare perchè sarà sempre diverso. Non puoi neanche dire al controllo di prendere la parte intera e cioè INT(#130)
perchè INT prende l'intero più vicino. Ti può andare bene una volta, due, tre, ma prima o poi sbaglia e ti fresa tutta l'officina perchè non trova lo stop.
Ciao
-
- God
- Messaggi: 5320
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Divertiamoci un po con il M.A.T.
GE in fanuc =maggiore o uguale
come ti ho detto si potrebbe far fare i calcoli al cnc , ma mio scopo era mostrarti una possibile soluzione
ho una variabile che ha valore iniziale 162
e faccio la prima fresatura a y 162
poi di volta in volta decremento la variabile di 72 mm
se è maggiore o uguale di -162 , ad esempio se decrementando la variabile arriva al valore -100 , vuol dire che è maggiore
di -162 , e fa un altra passata
se è minore di -162 , ad esempio -162,3 non esegue la passata
ho aggiunto due righe , per evitare che non esegua l'ultima passata
esempio mi trovo a y -100 e decremento la variabile , e ho il valore -172 , il ciclo si ferma perche è minore di -162
ma rimangono ancora 62 millimetri da fresare
allora ho messo un controllo finale
se variabile y + 72 è maggiore di -162 devi fare un altra fresata
tradotto come farebbe il cnc
-172 +72 =-100 > di -162 esegui la fresata
P.S . Persone piu esperte di me con linguaggio macro farebbero un programma piu FINO
come ti ho detto si potrebbe far fare i calcoli al cnc , ma mio scopo era mostrarti una possibile soluzione
ho una variabile che ha valore iniziale 162
e faccio la prima fresatura a y 162
poi di volta in volta decremento la variabile di 72 mm
se è maggiore o uguale di -162 , ad esempio se decrementando la variabile arriva al valore -100 , vuol dire che è maggiore
di -162 , e fa un altra passata
se è minore di -162 , ad esempio -162,3 non esegue la passata
ho aggiunto due righe , per evitare che non esegua l'ultima passata
esempio mi trovo a y -100 e decremento la variabile , e ho il valore -172 , il ciclo si ferma perche è minore di -162
ma rimangono ancora 62 millimetri da fresare
allora ho messo un controllo finale
se variabile y + 72 è maggiore di -162 devi fare un altra fresata
tradotto come farebbe il cnc
-172 +72 =-100 > di -162 esegui la fresata
P.S . Persone piu esperte di me con linguaggio macro farebbero un programma piu FINO
CIAO A TUTTI !
-
- God
- Messaggi: 5320
- Iscritto il: venerdì 1 febbraio 2008, 11:28
- Località: Modena
Re: Divertiamoci un po con il M.A.T.
ora dovrebbe andare
Codice: Seleziona tutto
SUPPONENDO CHE LO ZERO PEZZO SIA AL CENTRO DEL PEZZO
#100=162 (start y)
#120=342 (start x)
#130=-162 (end y)
#140=#100 (posizione corrente y)
G0 X#120 Y#100
N10 G1 Y#140 (Si posiziona in y)
G1 X[#120*-1] F600 (INVERTE LA DIREZIONE DESTRA SINISTRA)
#140=[#140-72] (prossimo valore y)
#150=[#140+72] (controllo ultima passata posizione fresa)
IF[#140GE #130] GOTO 10(Fino a quando è maggiore di -162 continua ad andare a destra e sinista per spianare)
IF[[[#130*-1]-[#150*-1]]GT 0]GOTO 10
(se valore finale positivo 160 meno posizione fresa positivo maggiore di 0 esegue
altra passata)
esempio
se 162 - [-100 x -1]= 162-100 = 62 rimangono 62 millimetri da fresare e fa una passata
in pratica fa la differenza tra y finale e posizione fresa se è maggiore di 0 fa una passata
CIAO A TUTTI !