Divertiamoci un po con il M.A.T.

Sezione dedicata esclusivamente a macchine professionali CNC quali Torni cnc, Fresatrici cnc, Brocciatrici cnc, Centri di lavoro cnc, ecc.
Subforum:
Programmazione CNC
Fanuc
Mitsubishi
Heidenhain
Siemens
Haas
Osai
Selca
Fidia
Fagor
WinMax
Mazatrol
ciro.postiglione
Member
Member
Messaggi: 486
Iscritto il: venerdì 14 gennaio 2011, 10:45
Località: Napoli
Contatta:

Re: Divertiamoci un po con il M.A.T.

Messaggio da ciro.postiglione » giovedì 12 aprile 2012, 14:10

NESSUNO mette in dubbio quello che dici, ma poteva mettere il post in altre sezioni, e non in questa.
Anche io a volte posto info che non hanno nulla a che vedere con le macchine ma lo faccio nelle apposite sezioni

claugo
Junior
Junior
Messaggi: 94
Iscritto il: sabato 24 dicembre 2011, 12:43
Località: modena

Re: Divertiamoci un po con il M.A.T.

Messaggio da claugo » giovedì 12 aprile 2012, 14:59

:lol:

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) =D>

Semplice o no?

turbina

Re: Divertiamoci un po con il M.A.T.

Messaggio da turbina » giovedì 12 aprile 2012, 21:53

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?

Avatar utente
dacchio
Junior
Junior
Messaggi: 195
Iscritto il: domenica 18 dicembre 2011, 17:46
Località: pescara

Re: Divertiamoci un po con il M.A.T.

Messaggio da dacchio » giovedì 12 aprile 2012, 22:02

turbina 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?
no è giusto il calcolo di claugo
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)

turbina

Re: Divertiamoci un po con il M.A.T.

Messaggio da turbina » giovedì 12 aprile 2012, 23:58

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%

claugo
Junior
Junior
Messaggi: 94
Iscritto il: sabato 24 dicembre 2011, 12:43
Località: modena

Re: Divertiamoci un po con il M.A.T.

Messaggio da claugo » venerdì 13 aprile 2012, 14:54

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

turbina

Re: Divertiamoci un po con il M.A.T.

Messaggio da turbina » venerdì 13 aprile 2012, 16:43

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

turbina

Re: Divertiamoci un po con il M.A.T.

Messaggio da turbina » venerdì 13 aprile 2012, 16:56

quindi se dico alla cnc dalla posizione X200 ... vai finche X < -300 lei fresa 200,199.......2,1,0,-1,-2 ...-299 e a -300 si ferma

che cnc o programma usi?

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

Re: Divertiamoci un po con il M.A.T.

Messaggio da torn24 » venerdì 13 aprile 2012, 17:41

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: 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 !

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

Re: Divertiamoci un po con il M.A.T.

Messaggio da torn24 » venerdì 13 aprile 2012, 18:05

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
Ultima modifica di torn24 il venerdì 13 aprile 2012, 18:12, modificato 1 volta in totale.
CIAO A TUTTI !

Avatar utente
drago
Senior
Senior
Messaggi: 833
Iscritto il: martedì 30 novembre 2010, 17:52
Località: Provincia di FI

Re: Divertiamoci un po con il M.A.T.

Messaggio da drago » venerdì 13 aprile 2012, 18:10

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?
Un orologio che va male non segna mai l'ora esatta, un orologio fermo la segna due volte al giorno.
leonardo sciascia

claugo
Junior
Junior
Messaggi: 94
Iscritto il: sabato 24 dicembre 2011, 12:43
Località: modena

Re: Divertiamoci un po con il M.A.T.

Messaggio da claugo » venerdì 13 aprile 2012, 20:59

drago 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?
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 = 342

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

claugo
Junior
Junior
Messaggi: 94
Iscritto il: sabato 24 dicembre 2011, 12:43
Località: modena

Re: Divertiamoci un po con il M.A.T.

Messaggio da claugo » venerdì 13 aprile 2012, 21:14

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)
Se non erro GE = Se diverso...
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

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

Re: Divertiamoci un po con il M.A.T.

Messaggio da torn24 » sabato 14 aprile 2012, 10:22

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
CIAO A TUTTI !

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

Re: Divertiamoci un po con il M.A.T.

Messaggio da torn24 » sabato 14 aprile 2012, 11:04

ho modificato il programma perche ho trovato un errore di logica
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 !

Rispondi

Torna a “Macchine utensili professionali CN/CNC”