Da Prusa a CNC 5 Assi
April 23, 2015 11:01AM
Ciao ragazzi.
In un momento di follia ho trasformato la mia prusa in un CNC 5 assi simultanei.
Per farla funzionare a dovere ho dovuto modificare anche il firmware Marlin in modo che mi gestisse i 5 assi interpolati; praticamente uso i due estrusori della RAMPS 1.4 in simultanea agli assi X,Y e Z con istruzioni di questo tipo: "G1 X10 Y30 Z5 E45 C89" dove E viene interpretato come asse basculante e C come asse rotativo.
A breve proverò a fresare qualcosa. Come materiale, visto le cinghie sugli assi X e Y, userò quei blocchi di spugna per fare le composizioni floreali.
Vi lascio un paio di foto, se vi interessano i dettagli battete un colpo. smiling smiley drinking smiley
Attachments:
open | download - prusa 5 assi 1.jpg (159.9 KB)
open | download - prusa 5 assi 2.jpg (165 KB)
Re: Da Prusa a CNC 5 Assi
April 23, 2015 11:07AM
wow forte, complimenti smiling smiley
Re: Da Prusa a CNC 5 Assi
April 23, 2015 02:50PM
Ciao. Bum!
Colpo battuto. Bel lavoro


Enrico

[www.dapa3dservice.it] [www.studiodapa.it]
repstrap dApA, Ramps 1.4, MarlinKimbra / scanner 3D Cubify Sense / Formlabs Form 2
Re: Da Prusa a CNC 5 Assi
April 23, 2015 05:36PM
A me piacerebbe vedere il Fw se fosse possibile...


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Da Prusa a CNC 5 Assi
April 24, 2015 04:30AM
Incominciamo dal firmware.
Sono partito da il Marlin preso qui:

[github.com]

Premetto che la modifica al firmware non è fatta seguendo tutti i crismi della programmazione, quindi penso che MagoKimbra mi tirerà le orecchie grinning smiley
Quando viene interpretato un G0 G1, viene invocata la funzione gcode_G0_G1 (ma guarda un po!)
inline void gcode_G0_G1() {
  if (IsRunning()) {
    get_coordinates(); // For X Y Z E F

    #ifdef FWRETRACT

      if (autoretract_enabled && !(code_seen('X') || code_seen('Y') || code_seen('Z')) && code_seen('E')) {
        float echange = destination[E_AXIS] - current_position[E_AXIS];
        // Is this move an attempt to retract or recover?
        if ((echange < -MIN_RETRACT && !retracted[active_extruder]) || (echange > MIN_RETRACT && retracted[active_extruder])) {
          current_position[E_AXIS] = destination[E_AXIS]; // hide the slicer-generated retract/recover from calculations
          plan_set_e_position(current_position[E_AXIS]);  // AND from the planner
          retract(!retracted[active_extruder]);
          return;
        }
      }

    #endif //FWRETRACT

    prepare_move();
    //ClearToSend();
  }
}

che io ho ripulito così (scusa Mago eye rolling smiley)
inline void gcode_G0_G1() {
  if (IsRunning()) {
    get_coordinates(); 
    prepare_move();
    //ClearToSend();
  }
}

Come vedere nell'ultima riga viene invocata la funzione prepare_move(), che dopo essere stata ripulita alla mia maniera risulta così:
void prepare_move() {
  clamp_to_software_endstops(destination);
  refresh_cmd_timeout();

  #ifdef PREVENT_DANGEROUS_EXTRUDE
    (void)prevent_dangerous_extrude(current_position[E_AXIS], destination[E_AXIS]);
  #endif

  line_to_destination(feedrate * feedrate_multiplier / 100.0);

  set_current_to_destination();
}
la funzione che aggiunge il movimento è line_to_destination(feedrate...)
inline void line_to_destination(float mm_m) {
  plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m/60, active_extruder);
}

questa è la funzione che ci interessa modificare (plan_buffer_line(...)) in quanto passa 4 assi mentre noi ne vogliamo 5 (X Y Z E C)
Ora, se modificassi questa funzione dovrei andare a cambiare tutte le chiamate nel firmware in modo di passare 5 assi quindi, nell'ottica di fare una modifica poco invasiva e soprattutto rapida, ho duplicato e creato una plan_buffer_line_mia(...) che riceve 5 assi e l'ho richiamata all'interno della line_to_destination(...)
inline void line_to_destination(float mm_m) {
  plan_buffer_line_mia(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], destination[C_AXIS], mm_m/60, active_extruder);
  //plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m/60, active_extruder);
}
Non sto ad incollare qui la funzione in quanto, anche ripulita alla mia maniera rimane comunque abbastanza lunga; sostanzialmente dentro questa funzione ho aggiunto a tutti i calcoli anche l'asse C e facendo in modo di usare il T1 (secondo estrusore) della RAMPS
L'asse C si aggiunge al Marlin abbastanza facilmente; basta modificare queste righe in giro per il codice
#define NUM_AXIS 5

enum AxisEnum {X_AXIS=0, Y_AXIS=1, A_AXIS=0, B_AXIS=1, Z_AXIS=2, E_AXIS=3, C_AXIS=4, X_HEAD=5, Y_HEAD=6};

const char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E', 'C'};

#define AXIS_RELATIVE_MODES {false, false, false, false,false}

#define DEFAULT_AXIS_STEPS_PER_UNIT   {160,80,4000,42.666,42.666}  // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE          {500, 500, 3, 45, 45}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {6000,6000,50,9000,9000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
Da notare che sull'enum degli assi ho modificato la sequenza in modo di avere X Y Z E C = 0 1 2 3 4
Le pulegge sono da 10 denti quelle piccole e da 48 quelle grandi in modo di avere una riduzione di 4.8 che con motori da 200 passi usati con 16 micropassi mi porta ad avere una risoluzione di (200 * 16 * 4.8) / 360 = 42.666 passi a grado (non è un granché ma più che sufficiente per giocherellare un po')
A chi interessa il Marlin modificato mi dia una mail che glielo spedisco.
Se volete ho anche gli STL o il disegno in Rhinoceros della tavola (4° e 5°) asse.
Vi allego un paio di disegni per capire e una foto di una prima fresata di prova...
Ciao
Attachments:
open | download - Senza nome.jpg (102.2 KB)
open | download - Rhino.jpg (196.7 KB)
open | download - fresata.jpg (114.7 KB)
Re: Da Prusa a CNC 5 Assi
April 24, 2015 07:18AM
Hai per caso fatto un video? Sono curioso di vederla in azione grinning smiley


MAKERBOARD.IT il nuovo portale dedicato ai MAKERS
Re: Da Prusa a CNC 5 Assi
April 24, 2015 07:59AM
Non ho ancora fatto nessun video. Appena riesco ne faccio uno di sgrossatura 3+2 assi e finitura a 5 assi di un busto
Re: Da Prusa a CNC 5 Assi
April 24, 2015 11:06AM
Fortunatamente (o sfortunatamente, dipende dai punti di vista grinning smiley) lavoro da 28 anni in un'azienda che produce CAD/CAM
Da circa 3 anni sviluppo un CAM 5 assi per il settore del marmo ed userò questo. L'unica cosa è che il CAM non prevede tavole basculanti ma teste roto-basculanti quindi, una volta scritto il gcode per una testa di quel genere, lo trasformo con un programmino che mi sono fatto ad hoc per la tavola con il 4° e 5° asse.
Allego un paio di videate della lavorazione di sgrossatura 3+2 sulle 5 facce del grezzo e della finitura a 5 assi.
Ciao
Attachments:
open | download - sgrossatura 3+2.jpg (145 KB)
open | download - finitura 5 assi.jpg (76 KB)
Re: Da Prusa a CNC 5 Assi
April 26, 2015 12:08PM
Video fatti. Domani li carico su youtube.
Intanto vi lascio qualche foto del risultato dopo la sgrossatura e dopo la finitura. Pensavo peggio! smileys with beer
ciao
Attachments:
open | download - dopo sgrossatura.jpg (124.2 KB)
open | download - dopo finitura 1.jpg (137.3 KB)
open | download - dopo finitura 2.jpg (137.3 KB)
Re: Da Prusa a CNC 5 Assi
April 26, 2015 12:23PM
un video è già su youtube (in elaborazione); quello della sgrossatura

[youtu.be]
Re: Da Prusa a CNC 5 Assi
April 26, 2015 12:44PM
Bravissimo.....
Domanda perché non fai la home di Z in alto cosi non perdi tempo.
Sposti lo switch in alto cosi almeno in questa configurazione non perdi tutto quel tempo... Ma è solo una considerazione...


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Da Prusa a CNC 5 Assi
April 26, 2015 12:46PM
mi senbra un'ottimo risultato, soprattutto considerando la "fragilità" del materiale.


Alessandro

Prusa I3 Rework molto modificata - Taurino Classic - Ramps 1.4 - Driver DVR8825 - Titan Extruder e Hotend E3D V6 - Bltouch originale - Firmware MarlinKimbra - Cura - Repetier Host
Re: Da Prusa a CNC 5 Assi
April 26, 2015 01:08PM
Mi azzerò in basso perché i percorsi sono calcolati riferiti al fondo utensile; facendo in questo modo posso usare utensili di lunghezza diversa senza problemi
Re: Da Prusa a CNC 5 Assi
April 26, 2015 03:30PM
Tutto molto bello, complimenti!
Cosa usi per fare il gcode? RhinoCAM?
Re: Da Prusa a CNC 5 Assi
April 26, 2015 04:44PM
Se leggi un po più su trovi la risposta
Re: Da Prusa a CNC 5 Assi
April 27, 2015 02:48AM
Ecco il video della finitura in timelapse (velocizzato di 16 volte) altrimenti troppo grande per youtube...
L'asse rotativo potrebbe andare anche i continuo (rollover) ma, essendo un gcode convertito da uno per una 5 assi standard con asse C limitato 0-360, continua a fare avanti indietro.

[youtu.be]

Ciao
Re: Da Prusa a CNC 5 Assi
June 07, 2015 03:18PM
Veramente molto interessante.... Seguo con attenzione e passione.
Re: Da Prusa a CNC 5 Assi
June 08, 2015 02:48AM
Bravissimo, mi era sfuggita questa discussione. Complimenti.


---- "Let me make my move" ----
Re: Da Prusa a CNC 5 Assi
June 08, 2015 03:16AM
Piccolo aggiornamento...
Facendo la lavorazione di una statuina in modalità 3+2 assi, mi sono accorto che l'asse rotativo ("C") è storto di circa 1 grado; questo fa si che il risultato finale delle finiture sui 4 lati siano sfalsati di circa 1 mm (vedi immagine).
Quindi, se qualcuno ha intensione di costruire questa tavola, consiglio di farsi un alberino diametro 8 (interno cuscinetti) e non usare un bullone M8 (che ha un diametro inferiore). Altra cosa, stampate con layer molto piccoli e con tanto riempimento altrimenti si imbarca tutto; io ho usato l'ABS e fare stare diritto il pezzo più grande è stato un incubo.
Comunque sto risolvendo i difetti geometrici della tavola via software....
Grazie e ciao a tutti

Edited 1 time(s). Last edit at 06/08/2015 03:18AM by stefanob67.
Attachments:
open | download - WP_20150608_08_44_04_Pro.jpg (108 KB)
Re: Da Prusa a CNC 5 Assi
June 09, 2015 04:03AM
Ciao Stefano, quando hai tempo, con tutta calma, se vuoi puoi inserire questo tuo progetto nella sezione "Progetti e nuove idee". E perché no anche nella Wiki, posso darti una mano smiling smiley
Hai fatto una cosa fighissima.


---- "Let me make my move" ----
Re: Da Prusa a CNC 5 Assi
June 10, 2015 06:17AM
grazie...ma non è un progetto un po troppo approssimativo?
Re: Da Prusa a CNC 5 Assi
June 10, 2015 01:43PM
orca.... quasi mi sfugge... bello..... bravo.... non vedo nulla di approssimativo.... vai vai che è un gran bel lavoro... drinking smiley


Davide
Immagina e Crea
Progetto Flusso canalizzatore 4 vie
My Thingiverse
Re: Da Prusa a CNC 5 Assi
June 10, 2015 03:12PM
Complimenti!!!

Davvero notevolethumbs up
Re: Da Prusa a CNC 5 Assi
August 22, 2015 02:17AM
Sei stato veramente bravo complimentissimi!Con lo stesso principio si potrebbe ottenere il sesto asse vero? Io sono alcuni mesi che ci sto provando ma con scarsi risultati. Anche io vedo nella stampa e fresatura a 5 assi nuove possibilità di espressione.
Ti volevo chiedere se puoi rendere pubblico il marlin modificato o se puoi mandarmelo via mail a info@ceroniknives.it io ho provato a modificare dalle tue istruzioni ma purtroppo non ci sono riuscito.

Grazie mille!
Re: Da Prusa a CNC 5 Assi
January 09, 2016 05:41AM
Innanzitutto complimenti!
Pure io non ci sono riuscito... puoi allegare il firmware? Grazie
Re: Da Prusa a CNC 5 Assi
January 16, 2016 03:05AM
Stefanob67 mi ha gentilmente inviato i file di configurazione e con qualche piccola modifica ora ogni asse funziona!
Colgo l' occasione per ringrazialo per l' ottimo (e unico direi) lavoro!
smileys with beer
Re: Da Prusa a CNC 5 Assi
January 30, 2016 09:29PM
Complimenti bel progetto ne sono già innamorato ora già il tarlo intesta voglio realizzarlo anch'Io ti dispiace se Ti rompo un po le scatole per saperne di più ?
Re: Da Prusa a CNC 5 Assi
February 01, 2016 02:34AM
chiedi pure...
Re: Da Prusa a CNC 5 Assi
February 03, 2016 08:42PM
Grazie
Re: Da Prusa a CNC 5 Assi
April 24, 2016 04:30AM
@stefanob67

potresti inviare anche a me firmware e tavole 4° e 5° asse?

p.s. eventualmente è possibile lavorare escludendo il 5° asse?
Sorry, only registered users may post in this forum.

Click here to login