CNC e LinuxCNC e cambio utensile

Sezione dedicata a Linuxcnc
kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » giovedì 14 marzo 2019, 13:57

I lavori non sempre li faccio direttamente sul piano. Magari per alcuni ho la necessità di reggerli con qualcosa di diverso. Per gli oggetti circolari uso il mandrino del 4° asse montato in verticale al posto del piano di legno attualmente visibile nelle foto. Per altri lavori uso un pezzo di polistirolo compatto (quello usato per l'isolamento del tetto) opportunamente scavato nel quale inserisco il grezzo da lavorare (questo specialmente nelle mascherine personalizzate per gli interruttori e le prese della corrente).

Quindi lo zero pezzo devo farlo o sul sensore "mobile" (piastra di rame da 1.47 mm di spessore, oppure sul sensore da 50 mm! (ma penso che andrò ad usare sempre quello da 50 mm).

Una volta stabilito lo zero pezzo/piano, per ogni utensile e cambio utensile, dovrò fare in modo che la punta dell'utensile arrivi sempre alla stessa identica Z ogni volta che cambio utensile.

E' solo che mi sono incasinato il cervello e sto faticando a capire qual'è la procedura migliore...

prima stavo usando quella con il comando G10 L20 P1 Z....
poi pensavo che quella con G43.1 Z.... fosse più indicata, ma non tenevo conto del fatto che la tabella utensili praticamente non la uso! :( tanto il montaggio è sempre manuale.

Ora sto cercando di capire come devo impostare il tutto! :(
La mia piccolina....

Avatar utente
shineworld
Senior
Senior
Messaggi: 663
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: CNC e LinuxCNC e cambio utensile

Messaggio da shineworld » giovedì 14 marzo 2019, 14:03

G43.1 infatti ti permette di esprimere gli offset x y z a b c u v w utensile bypassando la libreria utensili

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » giovedì 14 marzo 2019, 14:27

Si, questo l'ho capito... ma ho difficoltà a "passargli" l'argomento Z!

Nel senso che non sto capendo (causa incasinamento del cervello dovuto a tanti problemi di lavoro che sto avendo ultimamente) quale variabile o valore devo passargli!
La mia piccolina....

Antoniobar
Newbie
Newbie
Messaggi: 38
Iscritto il: giovedì 15 dicembre 2016, 23:54
Località: Vigevano

Re: CNC e LinuxCNC e cambio utensile

Messaggio da Antoniobar » giovedì 14 marzo 2019, 14:42

Ora mi è tutto chiaro.secondo me il problema sta nel fatto che tu hai due tastatori in parallelo.il software non può distinguere quale dei due stai utilizzando.quelle poche volte che mi è capitato ho fatto così:con l utensile mi posiziono sul pezzo metto il classico foglietti no scendo con la zeta fino che il foglietto si incastra leggo sul monitor le quote x y z nel cad sposto il disegno ecc.ma non è né pratico ne preciso il minimo sindacale delle tastature sono tre e fatte con una sonda.tu devi avere due sonde con due ingressi separati.mi viene in mente che quando ho costruito la stampante 3D c'era una procedura per mappare il piano di lavoro che però io non ho mai usato.dovresti vedere se Linux gestisce due sonde separate e sopratutto come utilizza l imput.

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » giovedì 14 marzo 2019, 15:07

Le sonde sono 2 perché la mia CNC ha una Z modesta... solo 100 mm di corsa e in alcuni casi mi tocca usare utensili molto corti altrimenti il pezzo non ci passa sotto l'elettromandrino (questo nonostante riesca a recuperare altri 45 mm togliendo il piano di legno provvisto di boccole per lo staffaggio e quello sotto, sempre in legno, provvisto di regolazione del livello manuale.

Ma al momento mi interessa usare solo un sensore... quello da 50 mm (è mobile anche quello... quindi posso spostarlo dove voglio)!
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » giovedì 14 marzo 2019, 17:57

Pian piano mi sto avvicinando ad un risultato degno di nota.

Ma continuo ad avere altri problemi... come il fatto che dopo un certo numero di prove, Linucnc non prende più gli aggiornamenti delle macro. E quando lo chiudo e lo riavvio, mi mantiene i valori precedentemente registrati senza azzerarmeli :(
La mia piccolina....

Avatar utente
shineworld
Senior
Senior
Messaggi: 663
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: CNC e LinuxCNC e cambio utensile

Messaggio da shineworld » giovedì 14 marzo 2019, 18:52

Oggi non ho avuto molto tempo per lavorarci sopra ma ti allego un video e un pezzo di codice MOLTO GREZZO su come si potrebbe fare un "measure always" che ti ho spiegato nei post precedenti. Non è fatto per LinuxCNC ma a parte la sintassi per accedere alle variabili # che in linux sono simboliche mentre in RosettaCNC sono numeriche non dovrebbero esserci particolari differenza. L'importante è capire la logica che ci sta dietro :)

https://youtu.be/ouuLj__vNYs

001.png

Codice: Seleziona tutto

g17 g21 g40 g49 g80 g90

g10 l2 p1 z-200 ; virtually set ZERO of piece
g54 f5000

g0 x0 y0        ; 1st tool change
g65 p6 t1
m98 p1000

g65 p6 t2       ; 2nd tool change
g0 x100 y0
m98 p1000

g65 p6 t3       ; 3th tool change
g0 x200 y0
m98 p1000

m2

( simulate tool change )
o6
    #4001=[#5001] ; save X position
    #4002=[#5002] ; save Y position
    g49
    g53 g0 z0
    g53 x-50 y-50
    m109 p"Insert tool #20" q2
    m109 p"Measuring tool length" q4
    g38.2 z-100 F1000
    g53 g0 z-10
    g0 x#4001 y#4002
    if [#1000 ne #0] then1
      #1001=[#5393-#1000]
      m109 p"Tool offset measured #1001" q4
      g43.1 z#1001
    end1
    if [#1000 eq #0] then1
        #1000=#5393
        m109 p"First tool Delta #1000" q4
        g43.1 z0
    end1
    M61 Q#20
m99

( simulate jog work - a square )
o1000
    g0
    z-10
    g91
    g1 x50
    y50
    x-50
    y-50
    z0
    g90
m99
In pratica se vuoi un sistema che non usi gli offset della tabella utensile ma che misuri ogni volta l'altezza della stessa il sistema è semplice.

1- metti su il primo utensile sul mandrino.
2- fai lo zero della WCS attiva con quell'utensile sul punto dove ti interessa avere zero programma.
3- avvi il programma e fai una prima misurazione sul probe (per rilevare la quota utensile iniziale) ma usi G43.1 z0 quindi nessuna compensazione.
4- per ogni successivo cambio utensile prendi sempre il delta della nuova misurazione e ci sotrai il primo valore. Questo dato lo metti nel G43.1 Z<risultato>
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

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » giovedì 14 marzo 2019, 21:34

Ok. Grazie.

Domani lo guardo meglio e faccio altre prove.
Oggi pomeriggio mi stavo focalizzando sull'azzeramento del pezzo con il sensore da 1.5 mm... e non mi tornavano i conti... perché stavo facendo fare una semplice misurazione sapendo la Z di partenza (100 mm) e sottraendo a tale valore la corsa Z fino al sensore e lo spessore del sensore. E non mi veniva.

Poi alla fine mi sono reso conto che a me la Z Home (in alto) segna 100 com'è giusto che sia. Ma in realtà la Z = 0 con gli utensili corti (come quello che stavo usando) non coincide con il piano di lavoro ma ci restano 4-5 mm. Ed è quindi normale che invece di "misurare" 35.8 mm me ne ritrovavo circa 30.6!

Vabbè.. ^_^

Domani... è un altro giorno!
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » venerdì 15 marzo 2019, 12:58

Buongiorno a tutti...

andiamo con ordine e cerchiamo di capire cosa e come devo procedere.

Premesso che questa è la mia configurazione
CNC.jpg
dividiamo il problema in 2 grandi parti:

1) Lavoro semplice senza cambio utensile
2) Lavoro complesso con cambio utensile


In entrambe le tipologie di lavoro, potrei non dover avere la Z = 0 coincidente con lo Zero Macchina.
Pertanto credo sia un bene decidere come procedere e impostare un offset al G54. Per farlo, se non erro, il comando è G10 L20 P1 Z<offset>. Il modo in cui dovrò farlo può essere semplicemente l'uso del probe (piccolo o grande che sia... userò 2 macro diverse nel caso) poggiato sopra il "nuovo piano" di lavoro. Una volta attivato il probe, uso il comando G10 L20 P1 Z<offset> e come <offset> uso l'altezza del probe.
Tutte le lavorazioni usano le coordinate del sistema attivo... G54... quindi non dovrei avere problemi.

A questo punto i lavori...
Con un lavoro semplice, con 1 solo utensile, devo fare l'azzeramento manualmente attivando l'apposita macro che mi manda la testa sul probe in posizione fissa (sul piano macchina). All'attivazione del probe devo impostare l'offset sull'utensile e tenerne conto durante le lavorazioni. Ovviamente il GCODE del lavoro deve contenere le istruzioni necessarie a tener conto dell'offset sull'utensile!

Con un lavoro complesso, che richiede diversi cambi utensile, ad ogni comando Tx M6, verrà richiamata la macro che mi sposta la testa nella posizione TOOLCHANGE_X TOOLCHANGE_Y e successivamente mi effettua l'azzeramento sul probe fisso come nel caso precedente.


Ora, a seguito di tutte le prove e anche grazie al tuo esempio, ho capito più o meno come fare alcune cose.... Devo però riuscire ad ottenere dei risultati concreti...

Ma la domanda che mi faccio al momento è: quanto esposto qui sopra... è corretto? O sono io che sto sbagliando tutto?


Bernardo

Nota bene: Per essere più chiari...

La mia CNC ha una "vasca" in acciaio al posto del piano. All'interno della vasca c'è un piano in legno con delle regolazioni per la messa a livello. Sopra questo piano c'è il piano macchina sul quale posso bloccare i pezzi.
In caso di necessità, posso lavorare sul piano con le regolazioni del livello (anche qui ci sono dei sistemi di fissaggio usati per bloccare il piano macchina).
Oppure, quando ad esempio monto il 4° asse o il solo mandrino in verticale (per gli oggetti tondi), tolgo anche il piano con le regolazioni del livello.
In quest'ultimo caso riesco a recuperare altri 45mm (con il mandrino in verticale non recupero nulla).
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
La mia piccolina....

Avatar utente
shineworld
Senior
Senior
Messaggi: 663
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: CNC e LinuxCNC e cambio utensile

Messaggio da shineworld » venerdì 15 marzo 2019, 19:08

Ho provato a rifare una macchina simile alla tua per verificare se il sistema MEASURE ALWAYS funziona.

VIDEO >> https://youtu.be/L18gTVU2lqI << VIDEO

001.png
Come anticipato cambia poco nella macro se si fa con LinuxCNC.
Prova a vedere se il sistema può andare.

Per la prima macro di tastatura per rilevamento pezzo in realtà non dovrebbe servire.

1-Metti su il primo utensile sul mandrino
2-Con i JOG vai fino al pezzo da lavorare sul punto che hai deciso come Zero
3-Azzeri la XYZ della WCS attiva su quel punto.

PSEUDO CODE:

Codice: Seleziona tutto

o6    ; ==  simulate tool change ==
    #1100=100     ; mcs max Z
    #1101=0       ; mcs min Z
    #1102=35      ; probe sage height
    #4001=[#5001] ; save X position
    #4002=[#5002] ; save Y position
    g43.1 z0
    g53 g0 z#1100
    g53 x670 y460
    m109 p"Insert tool #20" q2
    m109 p"Measuring tool length" q4
    g53 g38.2 z[#1101+#1102] F1000
    g53 g0 z#1100
    g0 x#4001 y#4002
    if [#1000 ne #0] then1
      #1001=[#5393-#1000]
      m109 p"Tool offset measured #1001" q4
      g43.1 z#1001
    end1
    if [#1000 eq #0] then1
        #1000=#5393
        m109 p"First tool Delta #1000" q4
        g43.1 z0
    end1
    M61 Q#20
m99
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

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » venerdì 15 marzo 2019, 21:30

I comandi GCode di RosettaCNC sono molti simili... cambia qualcosa, ovviamente, ma oggi ho potuto verificare che sostituendo quei 2-3 comandi "proprietari" con i corrispettivi di LinuxCNC, la macro funziona.

Poi, dopo una pausa, ho clonato la configurazione della mia macchina in modo da averne una funzionante ed una per i test (in realtà per i test ce ne sono 2... perché in una sto implementando questo pannello: https://forum.linuxcnc.org/49-basic-con ... with-probe che trovo semplicemente spettacolare! :D )

Domani continuerò a fare altre prove e cercherò di definire qualcosa.
Intanto la macro che ho fatto per l'azzeramento del pezzo funziona. Molto semplicemente... quando tocca il sensore da 1.5 mm, viene emesso un G10 L20 P1 Z1.5 e ricaricato il file gcode così da aggiornarne la posizione.

Poi, con relativa calma, penso al resto!

Grazie dell'aiuto ^_^
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » lunedì 18 marzo 2019, 17:56

Sto avendo un problema che mi sta facendo impazzire...

in pratica linuxcnc è come se mantiene in memoria le macro e dopo pochi minuti non prende più le modifiche che faccio. E l'unica cosa che mi tocca fare è cambiare il nome delle macro :(

Qualcuno di quelli che usano linuxcnc ha mai incontrato un problema simile?
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » martedì 19 marzo 2019, 18:50

shineworld ha scritto:
venerdì 15 marzo 2019, 19:08
1-Metti su il primo utensile sul mandrino
2-Con i JOG vai fino al pezzo da lavorare sul punto che hai deciso come Zero
3-Azzeri la XYZ della WCS attiva su quel punto.

PSEUDO CODE:

Codice: Seleziona tutto

o6    ; ==  simulate tool change ==
    #1100=100     ; mcs max Z
    #1101=0       ; mcs min Z
    #1102=35      ; probe sage height
    #4001=[#5001] ; save X position
    #4002=[#5002] ; save Y position
    g43.1 z0
    g53 g0 z#1100
    g53 x670 y460
    m109 p"Insert tool #20" q2
    m109 p"Measuring tool length" q4
    g53 g38.2 z[#1101+#1102] F1000
    g53 g0 z#1100
    g0 x#4001 y#4002
    if [#1000 ne #0] then1
      #1001=[#5393-#1000]
      m109 p"Tool offset measured #1001" q4
      g43.1 z#1001
    end1
    if [#1000 eq #0] then1
        #1000=#5393
        m109 p"First tool Delta #1000" q4
        g43.1 z0
    end1
    M61 Q#20
m99
#5393... a cosa corrisponde che non lo trovo sul gcode di Rosetta?
La mia piccolina....

Avatar utente
shineworld
Senior
Senior
Messaggi: 663
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: CNC e LinuxCNC e cambio utensile

Messaggio da shineworld » martedì 19 marzo 2019, 19:00

RosettaCNC manual ha scritto: Probing
When this command is invoked the machine moves towards the target position along a straight line at the current feed (F).
The move stops, within machine accelerations limits, when the target position is reached, or when the requested change in the probe input takes place.
Target position is interpreted considering the active WCS if G53 is not specified in the same line.
After successful probing, parameters #5701-#5706 (and #5711-#5716) will be set to the program coordinates of X, Y, Z, A, B, C considering the active WCS.
Parameter 5700 is set to 1 or 0 depending on the probe state at the end of the motion.

There are 4 probing options:

G38.2: probe toward workpiece, stop on contact, signal error if failure
G38.3: probe toward workpiece, stop on contact
G38.4: probe away from workpiece, stop on loss of contact, signal error if failure
G38.5: probe away from workpiece, stop on loss of contact

Notes
G38.2 and G38.4 trigger an alarm if the requested state change of the probe is not performed
G38.3 and G38.5 probe state can be checked using G-code control statements reading the parameter #5700
after a successful probing parameters:
#5701-#5706 are set to the probed position accordingly to the active WCS
parameters #5711-#5716 are set to the probed position accordingly to machine coordinates.
La #5393 era la posizione Z in WCS acquisita che ora è divenuta #5703 in quanto abbiamo aggiunto la cattura sia della posizione relativa alla WCS attiva (#5701..#5706) che quella relativa alla MCS (#5711..5716).

Dato che lavori con un DELTA rispetto alla prima misura untesile se durante il codice non tocchi la WCS o usi un G51 (mirror/scale), G52(offset locale), G68(rotazione/tralsazione) o G92(offset globale) si può usare tranquillamente la Z in coordinate WCS ma è limitante. Con le quote MCS (macchina) invece si va sul sicuro e non si hanno vincoli con quanto poi fatto nel programma.

Ora non so se LinuxCNC acquisisca con il Probing WCS o MCS...

Se invce LinuxCNC usa solo WCS allora puoi decidere di tenere una WCS a coordinate macchina e cambiare WCS a quella ad inizio macro per poi ripristinare la vecchia...

kylotron
Senior
Senior
Messaggi: 937
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: CNC e LinuxCNC e cambio utensile

Messaggio da kylotron » mercoledì 20 marzo 2019, 15:04

Eccomi.

intanto comincio a definire qualche "punto fermo"... ovvero la macro per l'azzeramento del pezzo.
Per completezza di informazioni riporto il file INI e la macro:

File di configurazione INI

Codice: Seleziona tutto

[EMC]
MACHINE 			        = CNC-3assi
DEBUG 				        = 0

[DISPLAY]
DISPLAY 			        = axis
EDITOR 				        = gedit
POSITION_OFFSET 		    	= RELATIVE
POSITION_FEEDBACK 		    	= ACTUAL
ARCDIVISION 			    	= 64
GRIDS 				        = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE 		    	= 1.2
MIN_SPINDLE_OVERRIDE 			= 0.5
MAX_SPINDLE_OVERRIDE 			= 1.2
DEFAULT_LINEAR_VELOCITY 		= 8.00
MIN_LINEAR_VELOCITY 			= 0
MAX_LINEAR_VELOCITY 			= 80.00
INTRO_GRAPHIC 			    	= linuxcnc.gif
INTRO_TIME 			        = 1
PROGRAM_PREFIX 			    	= /home/cnc/linuxcnc/configs/CNC-3assi
INCREMENTS 			        = 50mm 10mm 5mm 1mm .5mm .1mm .05mm .01mm .005mm .001mm
PYVCP 				        = custom_panel.xml
GEOMETRY                    		= XYZ

[FILTER]
PROGRAM_EXTENSION 		    	= .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION 	        	= .py Python Script
png 				        = image-to-gcode
gif 				        = image-to-gcode
jpg 				        = image-to-gcode
py 				        = python

[TASK]
TASK 				        = milltask
CYCLE_TIME 			        = 0.010

[PYTHON]
PATH_PREPEND				= ./python
TOPLEVEL				= python/toplevel.py
LOG_LEVEL 				= 0

[RS274NGC]
FEATURES 			        = 30
PARAMETER_FILE 			    	= linuxcnc.var
SUBROUTINE_PATH 		    	= /home/cnc/linuxcnc/configs/CNC-3assi/nc_subroutines
USER_M_PATH                 		= /home/cnc/linuxcnc/configs/CNC-3assi/nc_macros
ON_ABORT_COMMAND 		    	= O <on_abort> call
REMAP					= M6   modalgroup=6  prolog=change_prolog   ngc=cambioutensile  epilog=change_epilog


[EMCMOT]
EMCMOT 				        = motmod
COMM_TIMEOUT 			    	= 1.0
COMM_WAIT 			        = 0.010
BASE_PERIOD 			    	= 32000
SERVO_PERIOD 			    	= 1000000

[HAL]
HALUI                       		= halui
TWOPASS                    		= ON
HALFILE					= CNC-3assi-Core.hal
HALFILE                     		= CNC-3assi.hal
HALFILE                     		= custom.hal
POSTGUI_HALFILE             		= custom_postgui.hal

[HALUI]
MDI_COMMAND 			    	= G53 G0 X0 Y0 Z100
MDI_COMMAND 			    	= G53 G0 Z100
MDI_COMMAND 			    	= O <end_position> call
MDI_COMMAND 			    	= O <azzeramento_pezzo> call
MDI_COMMAND 			    	= O <azzeramento_utensile> call
MDI_COMMAND 			    	= O <test> call
MDI_COMMAND 			    	= O <debug> call

[TRAJ]
AXES 				        = 3
COORDINATES 			    	= X Y Z
LINEAR_UNITS 			    	= mm
ANGULAR_UNITS 			    	= degree
CYCLE_TIME 			        = 0.010
DEFAULT_VELOCITY 		    	= 8.00
MAX_VELOCITY 			    	= 80.00

[EMCIO]
EMCIO 				        = io
CYCLE_TIME 			        = 0.100
TOOL_TABLE 			        = tool.tbl
TOOL_CHANGE_POSITION        		= 750 50 100

[AXIS_0]
TYPE 				        = LINEAR
HOME 				        = 0.0
MAX_VELOCITY 			    	= 76.0
MAX_ACCELERATION 		    	= 350.0
STEPGEN_MAXACCEL 		    	= 437.5
SCALE 				        = 400.0
FERROR 				        = 1
MIN_FERROR 			        = .25
MIN_LIMIT 			        = -0.001
MAX_LIMIT 			        = 750.0
HOME_OFFSET 			    	= -7.000000
HOME_SEARCH_VEL 		    	= -20.000000
HOME_LATCH_VEL 			    	= -1.250000
HOME_FINAL_VEL 			    	= 10.000000
HOME_IGNORE_LIMITS 		    	= YES
HOME_SEQUENCE 			    	= 1

[AXIS_1]
TYPE 				        = LINEAR
HOME 				        = 0.0
MAX_VELOCITY 			    	= 76.0
MAX_ACCELERATION 		    	= 350.0
STEPGEN_MAXACCEL            		= 437.5
SCALE 				        = 400.0
FERROR 				        = 1
MIN_FERROR 			        = .25
MIN_LIMIT 			        = -0.001
MAX_LIMIT 			        = 460.0
HOME_OFFSET 			    	= -7.000000
HOME_SEARCH_VEL 		    	= -20.000000
HOME_LATCH_VEL 			    	= -1.250000
HOME_FINAL_VEL 			    	= 10.000000
HOME_IGNORE_LIMITS 		    	= YES
HOME_SEQUENCE 			    	= 2

[AXIS_2]
TYPE 				        = LINEAR
HOME 				        = 100.0
MAX_VELOCITY 			    	= 70.0
MAX_ACCELERATION 		    	= 250.0
STEPGEN_MAXACCEL 		    	= 312.5
SCALE 				        = 400.0
FERROR 				        = 1
MIN_FERROR 			        = .25
MIN_LIMIT 			        = -0.001
MAX_LIMIT 			        = 105
HOME_OFFSET 			    	= 104
HOME_SEARCH_VEL 		    	= 10.000000
HOME_LATCH_VEL 			    	= 1.250000
HOME_FINAL_VEL 			    	= 7.500000
HOME_IGNORE_LIMITS 		    	= YES
HOME_SEQUENCE 			    	= 0

[CHANGETOOLS]
X					= 750
Y				        = 50
Z				        = 100

[TOOLSENSOR]
X 				        = 670
Y 				        = 459.5
Z 				        = 100
SENSOR_HEIGHT			    	= 50.9
MAXPROBE			        = 99

[PLATESENSOR]
SECUR_Z					= 100
MAXPLATE				= 99
THICKNESS		    		= 1.5
FASTFEED				= 200
LOWFEED					= 10
MACRO: azzeramento_pezzo.ngc

Codice: Seleziona tutto

O<azzeramento_pezzo> SUB

	(MSG, Macro per l'azzeramento dell'utensile su probe da 1.50 mm)

#<_UseInches> 		= 0
#<_TravelZ> 		= #<_ini[PLATESENSOR]SECUR_Z>
#<_TravelFeed> 		= 1000.0
#<_ProbeFastZ> 		= #<_ini[PLATESENSOR]SECUR_Z>
#<_ProbeHeight> 	= #<_ini[PLATESENSOR]THICKNESS>
#<_ProbeMinZ> 		= [#<_ini[PLATESENSOR]SECUR_Z> - #<_ini[PLATESENSOR]MAXPLATE>]
#<_ProbeRetract> 	= 1
#<_ProbeFastFeed> 	= #<_ini[PLATESENSOR]FASTFEED>
#<_ProbeFeed1> 		= #<_ini[PLATESENSOR]FASTFEED>
#<_ProbeFeed2> 		= #<_ini[PLATESENSOR]LOWFEED>
#< Probe_System>	= #5220


G49
M70
M5
G21
G28.1	;(ABSOLUTE Z = #5163)
;G30.1	;(ABSOLUTE Z = #5183)
G90
;G94
G40

G53 G1 F[#<_TravelFeed>] Z[#<_TravelZ>]

	G10 L2 P#< Probe_System> Z0

G54 G1 F[#<_ProbeFeed1>] G91

G38.2 Z[#<_ProbeMinZ> - #<_ProbeFastZ>] F[#<_ProbeFeed1>]
;G0 Z[#<_ProbeRetract>]
;G0 X1
;G38.2 Z[#<_ProbeRetract>*-1.25] F[#<_ProbeFeed2>]

G90

	;(DEBUG, 5163 = #5163)
	;(DEBUG, 5063 = #5063)

	#<_AltezzaPezzo> = [#5063 + #<_ProbeHeight>]
;	#<_AltezzaPezzo> = 0

	(DEBUG, Altezza pezzo = #<_AltezzaPezzo>)

	; Azzero la Z rispetto al sensore
	G10 L20 P#< Probe_System> Z#<_AltezzaPezzo>
	G28.1
	
	

G53 G1 F[#<_TravelFeed>] Z[#<_TravelZ>]                         ( return to safe level )

M72


O<azzeramento_pezzo> endsub [#5070] 
M2
schermata.png
Come potete osservare è molto semplice: poggio il sensore a piastra (1.5 mm di spessore circa) sul pezzo e clicco sull'apposito pulsante.
Nel momento del contatto, al valore contenuto nella variabile #5063 relativo al conde G38.2, aggiungo lo spessore del sensore e azzero il Sistema dei coordinate.


Ora devo fare il passo successivo... sperando che il sistema non mi continui a dare i problemi degli ultimi giorni (è come se non resettasse/cancellasse le variabili).

andiamo avanti!



----------- eccolo ancora una volta.
Faccio la macro, funziona, testo, chiudo, riapro linuxcnc, riprovo. tutto ok. spengo il pc. lo riaccendo... non funziona più niente :(
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
La mia piccolina....

Rispondi

Torna a “Linuxcnc”