Slic3r: eseguire script post generazione G-Code

È stata possibile la realizzazione di questo articolo grazie all’aiuto di Michele Beltrame di ItalProesperto di programmazione in Perl oltre che fervente sostenitore dell’OpenSource. Ovviamente sono state fondamentali le indicazioni fornitemi dall’ineguagliabile Alessandro Ranellucci. Questa guida prende spunto da questa pagina: http://manual.slic3r.org/PostProcessingScripts.html

Slic3r, tra le tante opzioni disponibili, ci permette di eseguire degli script dopo l’elaborazione del nostro G-Code; il programma ci fornisce questa possibilità in modo da poter modificare il codice in base alle nostre esigenze. Ciò si rileva estremamente utile, poiché andare a modificare il codice sorgente di Slic3r non è una cosa semplice per chi non ha dimestichezza con la programmazione.

Lo script può essere scritto in un qualsiasi linguaggio, ma siccome abbiamo già tutto pronto per Perl, conviene usare direttamente quello.

Prima di tutto doppiano dire a Slic3r che script eseguire. Andiamo su Print Settings –> OutPut Option –> Post porcessing Script

Qui dobbiamo inserire il percorso del nostro file:

  1. se siamo sotto linux il percorso sarà simile a questo:  /home/mio_utente/cartella_dove_ho_salvato/./script.pl      Ricordiamoci che bisogna anteporre ./ prima del nome dello script
  2. Se siamo sotto windows:
    C:\percorso_file\script.pl

Ora procediamo a scrivere il nostro codice; dovendo rielaborare di fatto un file di testo, la funzione principale che deve eseguire è quella di cercare una stringa e sostituirla con un altra. Questo può tornare utile ad esempio se vogliamo che la stampante esegua un determinato comando un layer si ed uno no, oppure dopo un determinato numero di layer, oppure al cambio di estrusore. Di possibili motivazioni ce ne sono molte.

Iniziamo:

#!/usr/bin/perl -i

use strict;
use warnings;
use utf8;

l’opzione -i permette di eleborare più facilmente il G-Code mentre le restanti righe servono per dichiarare le tre librerie elencate.

$^I = '.bak';

questa serve se stiamo lavorando con Windows, altrimenti sotto linux è superflua.

while (my $riga = <>) {
    $riga =~ s/La_stringa_da sostituire/Il_mio_primo_comando\
Il_secondo_comando/g;
    $riga =~ s/La_stringa_da sostituire2/Il_mio_terzo_comando/g;
print $riga;
}

Il while serve a fare un ciclo in modo da leggere tutte le righe del G-Code;

$riga =~ s/……./ va a definire una variabile stringa; La_stringa_da sostituire è l’elemento da sostituire, mentre Il_mio_primo_comando è l’elemento sostitutivo. L’ultimo comando deve essere seguito da /g;

Ricordatevi che se volete inserire più di un comando, la sintassi del G-code vuole che siano incolonnati a capo, e quindi dopo ogni istruzione va inserito il carattere \

Se abbiamo un po’ di confidenza con la programmazione potremmo arrivare ad implementare istruzioni veramente interessati, che fanno uso di IF o altri sistemi.

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)