Percorsi utensile 3 assi con Rhino ( hobbistica )

Ciao a tutti.

Ho cercato un modo semplice, con uno script, di generare percorsi utensili per fresatura a 3 assi.
L’idea e’ di usare griglie di punti a maglia quadrata, che su Rhino vengono rappresentate tramite mesh.

Dal modello ricavo una mesh con facce triangolari (questo lo fa Rhino :slight_smile: )

Scelgo un passo per la griglia e proietto la griglia di punti sulla mesh ottenendo la mia griglia di partenza.

Stabilisco un utensile: diametro, raggio di raccordo e sovrametallo.

Ricavo una piccola griglia (con lo stesso passo) che riproduce la forma dell’utensile.

Tramite un ciclo ricavo tutte le altezze a cui deve trovarsi l’utensile per lavorare la superficie.
In pratica ricavo un’altra griglia che rappresenta le possibili posizioni dell’utensile.

Ora basta proiettare delle polilinee (che rappresentano il percorso utensile) su quest’ultima griglia
e ottengo il mio percorso utensile.

Ovviamente se il passo e’ piccolo il tutto, soprattutto il calcolo delle posizioni utensile, richiede un certo tempo.
E la precisione e’ comunque limitata dal passo griglia.

Come dicevo, una prova a livello hobbistico.
image

image

pu-1.3dm (1,2 MB)

Per provare ho imbastito uno script che lavora in un certo modo:
prima costruisce a sua volta un piccolo script (chiamato batch) e poi lo esegue.
( E’ fatto cosi’ per maggiore flessibilita’ )

cl3ax.py (64,9 KB)

Per lanciarlo, nel pulsante va scritto questo:

-runpythonscript (
import cl3ax
reload( cl3ax )
cl3ax.main()
)
6 Mi Piace

Molto fico!
Ora vedo se pure io a livello hobbistico riesco a fare il postprocessore per la Roland PNC 300 !!!
Così la rimetto in funzione.

1 Mi Piace

Ciao Giuspa.

Non ho capito se lo script potrebbe servire o meno …
Nel caso, dimmelo, perche’ per poterlo utilizzare devo prima spiegare come funziona … ovviamente e’ il mio solito strumento parecchio … ‘selvatico’. :blush:
Anche per il postprocessor, se serve e se posso dare una mano, fai un fischio ! :grinning:

1 Mi Piace

Ciao Emy, io rientro tra i bisognosi di spiegazioni. :blush:

A me serve! E pure la mano con il postprocessore… :rofl:

Per forza … e’ un tale casino. :grinning_face_with_smiling_eyes:

Premessa: l’idea era solo di mostrare che una cosa (percorso utensile hobbistico) si puo’ ottenere facilmente anche solo con uno script.

Lo scritp di prova e’ solo questo: uno strumento (molto rozzo) per fare delle prove con i percorsi utensile.

E’ complicato da utilizzare perche’ cosi’ sono riuscito a scriverlo in tempi ragionevoli.
Uno script user-friendly avrebbe richiesto (almeno per me) molto piu’ tempo … credo che mi sarei stancato prima di finirlo … :blush:

Francamente e’ uno strumento per scriptomani … ma provo a iniziare una spiegazione :slight_smile:

Lo script usa i layer per individuare gli oggetti, quindi i diversi oggetti (mesh, polilinee) devono appartenere ognuno ad un layer diverso.

Lo script funziona costruendo a sua volta un mini-script (chiamato file batch) che dovra’ in seguito essere eseguito per vedere i risultati in pratica.

Lo script permette di fare alcune operazioni: costruire le griglie (mesh) necessarie, proiettare sull’apposita griglia il perocrso utensile ecc.

E’ possibile fare un’operazione per volta, cioe’ scrivere un file batch contenente una singola operazione e poi eseguirlo. E proseguire cosi’, un passo per volta.

Oppure possiamo costruire un file batch contenente una sequenza di operazioni e poi eseguirlo
per lanciare tutte quelle operazioni.

Inizierei con una operazione per volta, e’ piu’ semplice.

Volendo fare una prima prova bisogna costruire con Rhino una mesh che rappresenti il nostro modello,
la mesh deve avere solo facce triangolari.

Serve anche un rettangolo che definisca i limiti della griglia da costruire, cioe’ la zona su cui poter definire il percorso utensile.

Come detto, sia la mesh che il rettangolo e’ meglio se hanno un loro layer ‘privato’.

Serve anche una polilinea che rappresenta (in pianta) il nostro percorso utensile.
Anche la polilinea va sul suo layer.

Lanciando lo script, compare:

image

clicchiamo ‘Part Mesh To Part Grid’
Lo script ci chiede di scegliere un file batch,
poi di scegliere la mesh per il modello e il rettangolo per la griglia.
Ci chiede anche un layer per la nuova griglia/mesh.
Se non abbiamo un layer vuoto possiamo definirne uno al volo.

ora clicchiamo ‘Close Bath File And Run It’,
cosi’ terminiamo la sequenza di operazioni (qui ce n’e’ solo una) ed eseguiamo il batch file.

Dovrebbe comparire la nuova griglia/mesh

Ora serve la griglia che rappresenta la punta dell’utensile (tooltip grid)
Quindi rilanciamo lo script e clicchiamo ‘Part Grid To Tooltip Grid’.
Scegliamo il batch file.
Dovremo selezionare la griglia(mesh) appena costruita.
Poi scegliere i parametri dell’utensile: diametro,raggio di raccordo e sovrametallo.
Anche qui sceglieremo un layer per la nuova griglia.

E di nuovo ‘Close Batch File And Run It’
Dopo un certo tempo dovrebbe apparire la griglia desiderata.

Ora, da capo lanciamo lo script e clicchiamo ‘Project Path’.
Ancora una volta scegliamo il batch file.
Poi clicchiamo la tooltip-grid e la polilinea da proiettare
Di nuovo scegliamo un nuovo layer
E possiamo eseguire con ‘Close Batch File And Run It’.
Se tutto va bene vediamo il nostro percorso proiettato sulla mesh.

Per ora mi fermo qui.
Se a qualcuno interessa, proseguo poi … :slight_smile:

… Salvo errori ed omissioni …

Scusa Emy, probabilmente sto sbagliando qualcosa io, ma sull’operazione di proiezione del percorso ho questo errore:

Me lo da come seleziono la mesh …

No, c’e’ un errore nello script.
Se utilizzi oggetti su un layer comprendente anche altri oggetti, lo script dovrebbe fare una copia dell’oggetto su un nuovo layer (dato che per funzionare richiede oggetti singoli nei layer).
Ma e’ una cosa che non avevo testato …

Prova se cosi’ funziona

cl3ax.py (64,9 KB)

Se no, se vuoi, per il momento, ‘isola’ i vari oggetti uno per layer.
Cioe’ se e’ quella mesh che da’ problemi (suppongo sia la griglia tooltip), prova a spostarla su un layer tutto per lei. ;).

Scusa Fabio.
C’era un altro errore.
Adesso ho provato ad usare lo stesso layer per tutto e sembra che funzioni.
( eseguendo una operazione per volta ).
Qui c’e’ lo script:

cl3ax.py (64,9 KB)

Sorry … :blush:

Eccomi. :blush:

Haha … bene !

Torniamo al nostro “menu’” …

image

Le prime 3 operazioni le conosci gia’.
Le ultime 4 forse anche, comunque ‘Close Batch File’ serve a chiudere il file batch senza eseguirlo immediatamente.
E’ importante ricordarsi sempre di chiudere il file prima di eseguirlo, se no non funziona.
Questa operazione non si limita a chiudere fisicamente il file, ma prima ci scrive anche le istruzioni finale del file batch, necessarie al funzionamento.

‘Run Batch File’ … serve ad eseguire un file batch costruito (e chiuso ! :wink: ) in precedenza.
Non fa niente di piu’ che eseguire uno script, volendo lo puoi fare da EditPythonScript o con un pulsante apposito (se il nome del file batch non cambia).
‘Exit’ ovviamente termina semplicemente lo script.

Le altre operazioni funzionano come le prime 3, cioe’ servono a costruire il file batch.
Proviamo a vederle velocemente …

‘Draw Tool Shape Grid’ disegna una griglia con la forma dell’utensile.
Non serve per il percorso, e’ piu’ che altro per curiosita’, per vedere, con un certo passo, come e’ fatta la griglia utensile.

‘Serialise Poliline’ scrive un file da una polilinea (che supponiamo sia il percorso utensile, ma fa lo stesso).
Nel file sono riportate semplicemente le 3 coordinate di ogni vertice, un vertice per riga, separate da spazi.
E’ una specie di formato neutro che volendo si puo’ utilizzare con altri script per generare altri formati.

‘Postprocess Polyline’ e’ una bozza (molto semplice) di postprocessor.
Chiede alcuni parametri e scrive il file.
Puoi provare con i valori di default, se no chiedi ulteriori spiegazioni. :slight_smile:

‘Merge Polylines By Crossing Curve’ e’ una specie di utility per costruire la polilinea da una serie di curve, per non doverlo fare a meno, magari nel caso di percorsi piuttosto lunghi.
Provo a spiegare usando la polilinea del file allegato sopra.

Disegniamo la varie passate del percorso (qui sono rettilinee) e orientiamole come serve

Poi disegniamo una curva (qui ancora una linea) che intersechi tutte le passate

Ora col comando ‘Merge Polylines By Crossing Curve’ possiamo collegare la varie passate per ottenere una polilinea.
Lo script ordina le passate sul parametro della crossing curve nei punti di intersezione.
E otteniamo questo

‘Prepend Z Point’ e ‘Append Z Point’ servono per aggiungere un blocco, cioe’ un vertice della polilinea all’inizio o alla fine.
In pratica serve a iniziare o terminare il percorso ad un certa quota di svincolo

Esempio:

image

image

image

… adesso, scusa, interrompo.
Proseguo poi dopo. :slight_smile:

Dunque … :slight_smile:

image

‘Toolpah Fit By RhinoCommon’ serve a semplificare le polilinee tramite questo metodo:

Polyline.ReduceSegments Method (rhino3d.com)

Le altre due operazioni di Fit invece sono gestite interamente dallo script … e non so quanto siano affidabili … :confused:

La prima raggruppa i punti troppo vicini.
La seconda elimina i punti allineati, diciamo che se tra il punto A e il punto B ce ne sono altri giacenti sulla linea AB, li toglie, o almeno dovrebbe.

‘Rectangle To Box Grid’ genera una griglia direttamente da un rettangolo

image

image

… E dovrebbe servire piu’ che altro per simulare (sempre alla buona, eh ) la fresatura …
Ma … vedo che la simulazione e’ un po’ troppo selvatica … rischia di metterci un’eternita’ …

Provo a migliorare un po’ l’operazione e poi mi rifaccio vivo …

Ciao

Cribbio Emilio… Ma ancora non sei in pensione ? Ma quanto ti manca ?

Ciao Mario !

Certo che sono in pensione, da gennaio. :grinning:

Per quello ho tempo di rompere i maroni sul forum …

Ma in effetti questa cosa dei percorsi utensile avevo cominciato a studiarla in ufficio, l’anno scorso.
Adesso, da pensionato, ci ho pasticciato sopra ancora parecchio (e devo sistemare ancora qualcosa).
Ma sara’ l’ultima stranezza che posto.
Ormai Rhino non lo uso piu’.

Son felice per te Emilio! :partying_face: :partying_face:

1 Mi Piace

Grazie, Sergio ! :slight_smile:

6:30 cappuccio e brioches chete frega !

1 Mi Piace

Auguroni Emilio :clinking_glasses::grin:

1 Mi Piace

Per lavoro… ma per hobby può essere un bel passatempo.

Grazie Luca !

Per hobby … per ora non saprei, si vedra’. :grinning:

1 Mi Piace