Cambio utensile manuale.

Sezione dedicata al software di casa CncDrive
Rispondi
camivic
Junior
Junior
Messaggi: 52
Iscritto il: martedì 13 marzo 2007, 22:29
Località: Brindisi

Cambio utensile manuale.

Messaggio da camivic » lunedì 9 novembre 2015, 21:45

Ragazzi,
come si fa a far fare a UCCNC il cambio utensile manuale.
Al momento una volta che riceve il comando "100 T1 M06" se ne va per i fatti suoi.
Quello che vorrei ottenere alla ricezione del comando Gcode è:
- spostare il mandrino in una determinata posizione;
- lui rimane in attesa del cambio utensile;
- io mi attivo cambiando manualmente l'utensile;
- lo informo che l'utensile è stato cambiato;
- lui mi ricalcola lo zero dell'asse Z con il comando Probe e ritorna a lavorare.

Ci sarà pure un modo per farlo!!!!

GRazie

Diego
Member
Member
Messaggi: 392
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: Cambio utensile manuale.

Messaggio da Diego » mercoledì 11 novembre 2015, 7:02

si può fare... io l'ho fatto assieme a Badade qui sul forum... prima di cominciare devi dirmi se usi il tastatore "fisso sulla tavola" o lo vuoi spostare ogni volta (spero sia fisso)... se il tuo cam permette di numerare gli utensili nel g-code partendo sempre da T1 a Tx... indipendentemente da quale numero è nella libreria del CAM che utilizzi (dovrebbe per prassi).
Se entrambe le risposte sono positive devi cercare nel manuale del tuo software due cose:

- il numero della variabile che viene scritta dal tastatore (G38.2)
- se ha disponibili 3 o 4 variabili "libere" per poter eseguire delle somme e sottrazioni nostre...

e devi avere sotto mano una copia del tuo file macro del programma dove aggiungeremo una macro secondaria per un IF

ciao

camivic
Junior
Junior
Messaggi: 52
Iscritto il: martedì 13 marzo 2007, 22:29
Località: Brindisi

Re: Cambio utensile manuale.

Messaggio da camivic » mercoledì 11 novembre 2015, 18:58

Riepilogando:
- il tastatore è mobile, ma nulla toglie che possa fissarlo su determinata posizione;
- il mio ha una Tool Table, e nella macro M05, che in seguito allego, sono anche indicata le coordinate dei vari utensili, ma questo credo riguardi solo il caso in cui ci sia un ATC;
- il G38.1 non è riportato tra i comandi supportati.

A questo punto mi sa che è problematico, o no??

Comunque allego la macro M6 di UCCNC.

Grazie.

Codice: Seleziona tutto

//Example linear toolchanger code

//Tool positions definition
int Chuckopenport = 1;
int Chuckopenpin = 16;

double[] ToolX = new double[11];
double[] ToolY = new double[11];
ToolX[0] = 0; // Tool0 X position
ToolY[0] = 0; // Tool0 Y position

ToolX[1] = 50; // Tool1 X position
ToolY[1] = 10; // Tool1 Y position
ToolX[2] = 100; // Tool2 X position
ToolY[2] = 10; // Tool2 Y position
ToolX[3] = 150; // Tool3 X position
ToolY[3] = 10; // Tool3 Y position
ToolX[4] = 200; // Tool4 X position
ToolY[4] = 10; // Tool4 Y position
ToolX[5] = 250; // Tool5 X position
ToolY[5] = 10; // Tool5 Y position
ToolX[6] = 300; // Tool6 X position
ToolY[6] = 10; // Tool6 Y position
ToolX[7] = 350; // Tool7 X position
ToolY[7] = 10; // Tool7 Y position
ToolX[8] = 400; // Tool8 X position
ToolY[8] = 10; // Tool8 Y position
ToolX[9] = 450; // Tool9 X position
ToolY[9] = 10; // Tool9 Y position
ToolX[10] = 500; // Tool10 X position
ToolY[10] = 10; // Tool10 Y position

double SafeZ = 100;
double Ztoolrelease = 30;
double Ztoolpickup = 28;

int Newtool = exec.Getnewtool();
int Currenttool = exec.Getcurrenttool();

if(Newtool == -1) // If new tool number is -1 means a missing T code, so we need to stop here...
return; 

if(Newtool <1 || Newtool >10) // Tool number is out of range, so we need to stop here...
return;

if(Newtool == Currenttool) // Same tool was selected, so do nothing, stop here...
return; 

if(!exec.GetLED(56)||!exec.GetLED(57)||!exec.GetLED(58)) // If machine was not homed then it is unsafe to move in machine coordinates, stop here...
{
  MessageBox.Show("The machine was not yet homed, do homeing before executing a tool change!");
  exec.Stop();
  return;
}

while(exec.IsMoving()){}

// Get current XY machine coordinates to return to this position at the end of the macro

double Xoriginalpos = exec.GetXmachpos();
double Yoriginalpos = exec.GetYmachpos();

// Stop spindle if running and Move Z up

exec.Stopspin(); 
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}

if(Currenttool!=0) // No need to drop down tool if current tool number is zero
{
  // Move to old tool position on XY plane

  exec.Code("G00 G53 X" + ToolX[Currenttool] + " Y" + ToolY[Currenttool]);
  while(exec.IsMoving()){}

  // Drop current tool
  
  exec.Code("G00 G53 Z"+ Ztoolrelease); // Move Z axis down to tool holder position
  while(exec.IsMoving()){}
  exec.Setoutpin(Chuckopenport, Chuckopenpin); // Open the chuck with pneumatic valve
  exec.Wait(1000); // Wait one 1000msec
  exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
  while(exec.IsMoving()){}
}

// Move to new tool position on XY plane
exec.Code("G00 G53 X" + ToolX[Newtool] + " Y" + ToolY[Newtool]);
while(exec.IsMoving()){}
// Pick new tool

exec.Code("G00 G53 Z"+ Ztoolpickup); // Move Z axis down to tool holder position
while(exec.IsMoving()){}
exec.Clroutpin(Chuckopenport, Chuckopenpin); // Close the chuck with pneumatic valve
exec.Wait(1000); // Wait one 1000msec
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}

// Move back to start point

exec.Code("G00 G53 X" + Xoriginalpos + " Y" + Yoriginalpos);
while(exec.IsMoving()){}

// Measure new tool will go here....
//exec.Code("G43 H"+Newtool); // Load new tool offset

exec.Wait(200);
while(exec.IsMoving()){}
if(!exec.Ismacrostopped()) // If tool change was not interrupted with a stop only then validate new tool number
{
  exec.Setcurrenttool(Newtool); //Set the current tool -> the new tool
  MessageBox.Show("Tool change done.");
}
else
{
  exec.StopWithDeccel();
  MessageBox.Show("Tool change was interrupted by user!");
}


Ultima modifica di Pedro il mercoledì 11 novembre 2015, 23:44, modificato 1 volta in totale.
Motivazione: riporto inutile, e vietato dal regolamento, del messaggio precedente

camivic
Junior
Junior
Messaggi: 52
Iscritto il: martedì 13 marzo 2007, 22:29
Località: Brindisi

Re: Cambio utensile manuale.

Messaggio da camivic » mercoledì 11 novembre 2015, 20:31

Dopo un'analisi un po più approfondita ci sono quasi.
Oltre ad eliminare tutta la parte inerente il cambio utensile automatico, riesco a farlo andare in una posizione da me stabilita, e farlo ritornare alle coordinate in cui si è fermato al comando M6.
Ora mi rimane il problema di come fargli effettuare il "Probe", che su UCCNC equivale al comando M31.

Vi aggiorno, intanto sono ben accetti consigli e suggerimenti.

Diego
Member
Member
Messaggi: 392
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: Cambio utensile manuale.

Messaggio da Diego » giovedì 12 novembre 2015, 6:16

ok continuiamo: appena sei sopra al tastatore la macro deve andare in pausa... cambi la fresa e devi dar un comando di consenso (di solito "INVIO") per far proseguire la macro che scenderà ad una Z prestabilita... la z prestabilita io ce l'ho di 10 mm (può essere 20 50 1mm scegli tu) sopra al pulsante del tastatore (10 mm del tuo utensile più lungo che hai in possesso ovviamente... se monti l'utensile più corto saranno 10 + la differenza tra il lungo e il corto) e da lì parte la M31 sarà collegata ad una variabile... tale variabile viene scritta la fresa risale a Z max e ritorna a g92...

quando arrivi a questo faremo le somme e gli IF

fai gli esperimenti sopra al tastatore senza fresa... per evitare di distruggere il tastatore.... imposta una F di discesa in M31 del tastatore se vuoi (lento o veloce in base alle tue esigenze)... cerca sul manuale il modo di far comparire a monitor una frase tipo "appena cambiato utensile premi invio". Penso so scriva così...
MessageBox.Show("Appena canbiato utensile premi invio!");
ma manca il "comando" INVIO. crea un G code con dei movimenti di x e y a caso... metti in mezzo al g-code il Message box... e scrivi altri movimenti... quando lo lanci che succede? appena trova la scritta va in pausa? per farlo ripartire cosa premi...

Rispondi

Torna a “UcCnc”