Open nest (come si usa?)

ciao a tutti,
qualcuno (dotato di sana pazienza) sarebbe così buono da spiegarmi come adoperare opennest (in grasshopper) per eseguire dei “semplici” nesting di sagome 2d chiuse in fogli rettangolari impostando distanza minima tra figure e bordo foglio?
ho caricato l definizione di opennest e il componente ma poi mi perdo nel suo utilizzo per me poco comprensibile…
importare/associare le curve già presenti in rhino-----?
impostare le dimensioni del foglio per il nesting------?
impostare le distanze da mantenere come offset-----?
grazie

Ciao Marco,

Colleghi il/i bordo/i del foglio/fogli in Sheets, poi la lista di sagome in Geo. La distanza è in “Spacing” e gli altri parametri sembrano relativamente chiari…

In particolare lo spacing è la distanza minima tra le varie sagome. La distanza tra le sagome e il bordo del foglio è la metà di quel valore, quindi se si vuole specificare quella occorre fare un offset del bordo del foglio prima di collegarlo ad OpenNest.

Cos’è in particolare che non ti torna?

OpenNest-example.3dm (61,3 KB) OpenNest-example.gh (5,8 KB)

Ciao Marco,
Grazie per la risposta, stasera non apro il pc ma domani riprovo, mi pare di aver già collegato le entità alle relative voci in ingresso ma mi indica un errore in geo… domani riprovo

ciao Marco,
ho riprovato con la definizione opennest di gh
imposto il foglio, imposto il set di curve (geo)
imposto uno slide per lo spacing
lascio il placement settato a 1
(ps come variabile penso si riferisca al numero di copie per figura o sbaglio?)
rotation ho scollegato lo slide

il componente di opennest risulta rosso con messaggio che “non è stato possibile caricare il fle o l’assembly opennest.lib o una delle possibili dipendenze”

il file opennest.lib l’ho caricato nella cartella Component…

i dubbi da neofita sono molti:
il componente di opennest non risulta caricato ogni volta che chiudo e riapro gh non compare nell’interfaccia e devo ricaricarlo… deduco che sbaglio qualcosa nel farlo…
non esiste un modo per interrogare le singole voci di input di un componente per capirne il loro significato/funzione?
stessa cosa per gli output di un componente…?

ad esempio opennest in uscita ha sheets, geo, id, transform e ids

infine, se le figure che devo andare a inserire nel nesting sono composte da una sagoma chiusa ma con all’interno uno o più tracciati anche aperti che sono le sue reference come posso agire per ottenere il relativo nesting corretto?
considera che per praticità mantengo raggruppati figura di sagoma taglio e relative incisioni/reference ma le colloco in due distinti layer.

scusa la lungaggine :slight_smile:

aggioranamento,
il componente l’ho caricato correttamente e compare anche dopo unload gh e load gh
ma il messaggio di errore persiste

Per quanto riguarda il corretto caricamento dei vari componenti una volta spostati nella cartella Libraries di Grasshopper, prima di aprire Rhino/Grasshopper bisogna “sbloccarli”, facendo clic col pulsante destro e spuntando l’opzione “Anulla Blocco” in basso a destra, e occorre farlo sia per i file gha che per le dll (per OpenNest ci sono minkowski.dll e OpenNestLib.dll)

Ma alla fine l’esempio che ho allegato ti funziona o continua a dare errore?

Le informazioni disponibili sono quelle che vedi quando passi sopra ai vari input output col puntatore del mouse. In questo caso non ci sono informazioni aggiuntive. Dipende da come lo sviluppatore ha creato il plugin.

  • Sheets contiene i bordi dei fogli (più di uno nel caso in cui le forme non entrino tutte in uno solo)
  • geo contiene le sagome trasformate
  • id contiene gli id delle sagome
  • IDS contiene gli id dei fogli corrispondent a ciascuna sagoma - (riferimento alla lista precedente) - contiene una lista di soli zero se un solo foglio contiene tutte le sagome, altrimenti vi sarà anche 1,2 e così via
  • transform contiene la matrice di trasformazione per ogni sagoma

Nel caso di tracciato chiuso, sul file di esempio dice di creare una planar srf a partire dalle due curve.

In alternativa, oppure se il tracciato è aperto, puoi usare la matrice di trasformazione relativa ad una sagoma e applicarla ai tracciati interni a quella sagoma.

Gruppi e layer sono ignorati da Grasshopper quando si collega un componente alla geometria di Rhino. A volte si possono fare i gruppi direttamente in Grasshopper, ma in questo caso non serve perché OpenNest non supporta i gruppi, quindi devi utilizzare le matrici di trasformazione.

A seconda di come è strutturato il file di Rhino (nomi, layer ecc.) si potrebbe anche automatizzare il tutto…

1 Mi Piace

ciao Marco,
ho provato da casa e su rhino v6 tutto funziona caricando il tuo file esempio
non colgo però il significato/funzionamento deli parametri in ingresso rotation, iteration, seed
placement penso siano le combinazioni che vuoi possa generare per scegliere la migliore…

lo sblocco del add opennest di grasshopper non mi compare nel pc al lavoro e credo sia dovuto alle restrizioni di sicurezza… cercherò di venrne a capo

farò un pò d prove
intanto grazie ancora per le risposte

Ciao Marco,

Già penso sia quello il problema…

Rotation dà le possibili rotazioni intorno all’asse Z - ad esempio 3 => può ruotare di multipli di 120°, 4=> multipli di 90° e così via

Il seed è sempre un numero che genera una diversasequenza di numeri “pseudo” casuali. In questo caso al suo variare cambia la soluzione proposta.

Le iterazioni - se in numero maggiore di 1 - dovrebbero teoricamente ottimizzare maggiormente il risultato, il che porta a differenze quando si hanno molte sagome e bisogno di elevata ottimizzazione.

Placement non ho capito bene a cosa si riferisca, comunque al suo variare cambia la soluzione proposta, come hai notato anche tu.

Buon fine settimana!

Marco

1 Mi Piace

Ciao e grazie per gli aiuti,
Rotation però è strano, perché se setto il valore pari a 1 vuol dire che dovrei aver dato il massimo grado di libertà di rotazione delle sagome… e invece mi pare queste restino vincolate alla loro posizione originaria…
Resta strano che non sia previsto un indice con descrizione dei parametri ma che si debba agire per interpretazione deduttiva

Buon fine settimana anche a te e a tutti quanti :wink:

Devi fare 360°/rotation per avere il numero di gradi di rotazione ammessi tipo 360/2=il pezzo può ruotare di 180°

Ok, grazie per la precisazione Lucio

scusate avrei bisogno di caricare dei plugin di grashopper e nel Mcneel wiki mi dice che è possibile farlo sbloccando la security ma nella mia finestra di dialogo non compare questa opzione qualche idea?!

Ciao, non vorrei avere frainteso, ma penso che la voce compare solo su files che scarichi da internet, che arrivano quindi da un altro computer.
Se apri una finestra di dialogo su un file della tua macchina è giusto che non compaia la voce.

E si grazie per il consiglio domani proveró a fare così :blush:

Confermo quanto detto da Fabio, il blocco lo mette Windows solo sui files provenienti dall’esterno e considerati potenzialmente dannosi.
Se non c’è il blocco puoi procedere ad attivare il plugin in Rhino.

Buongiorno,
mi chiamo Marcello e sono un utente relativamente ‘giovane’ di Grasshopper.

Ho un problema rispetto al plug-in Opennest che non riesco a risolvere: è possibile ottimizzare il nesting dei pezzi (input in Geo) su diversi fogli di partenza (input in Sheets)? diciamo che, data una serie di sagome di progetto (di dimensione e forma diversa) vorrei trovare qual’è la combinazione che ottimizza la produzione/taglio avendo a disposizione dal magazzino diverse dimensioni di foglio di materiale.

nel file .gh che allego funziona ‘quasi tutto’, solo che i fogli che ho caricato come ‘magazzino’ vengono utilizzati come una lista e non ottimizzati liberamente.

20210305_581_computo pannelli composito.gh (24,5 KB)

grazie

https://youtu.be/Q9IkLC7JAms non so se può servire.

Se non sbaglio “iterazioni” ottimizza le posizioni su singolo foglio.
Se hai più fogli potresti calcolare la combinazione che lascia una superficie non utilizzata minore.

grazie della risposta,
effettivamente questa è una possibilità. Rimane però che il processo di nesting riempie prima uno dei formati forniti e poi a seguire gli altri, quindi se gli si mettono a disposizione molti fogli tenderà per quanto possibile ad utilizzare solo il primo della lista.
una possibilità che mi è venuta in mente è quella di mescolare ‘random’ i formati con il componente Jitter, ma sarebbe comunque un modo poco ‘scientifico’ di procedere…

Quanti fogli sono? E che forma hanno?

ti faccio un esempio.

io ho una serie di pannelli da produrre: allego l’elenco 20210226_581_computo pannelli composito_MB.pdf (6,1 KB)

il produttore mi mette a disposizione due formati: 1500x3500mm o 1620x3500mm

per minimizzare gli sfidi di lavorazione dovrei riuscire a fare il nesting su entrambi i formati (perchè certi pannelli si adattano meglio ad uno dei formati e certi altri ad un’altro)

grazie.