Definizione gh su più file?

Nel secondo video regalo natalizio, @Giuseppe dice che è sbagliato scrivere una sola enorme definizione, ma sarebbe più opportuno dividerla su più file.
Avere tutto su un unico canvass in realtà mi aiuta ad avere una visione di insieme e a ridurre eventuali ridondanze migliorando il codice, ma ad ogni modo, se volessi farlo, come dovrei procedere? Quindi è possibile creare una rete di comunicazione tra files gh? Considerando il fatto che spesso di una definizione mi servono due o tre dati da passare ad un altra.

Questo migliorerebbe la velocità di esecuzione complessiva?

Ma infatti il mio si limita ad essere è un consiglio. Giusto operare come si è più comodi.

No. Migliorerebbe l’efficienza che non è necessariamente solo un problema di velocita. Data la natura del linguaggio di programmazione che è sempre in “ricalcolo”. Fermare quello che non deve calcolare la trovo una soluzione corretta. Avere tutti i parametri a disposizione dà una gran sensazione di libertà creativa ma spesso ci si pianta per delle ore con il computer che ricalcola. Davvero poco utile guardarlo mentre lavora.
Ci sono molti sistemi per dividere una unica definizione in parti. Dallo scrivere e leggere su un file ad Excel, ad altro ancora tipo Geometry cache. Dipende dalle situazioni.

Luca mi hai anticipato la stessa domanda che volevo fare a Giuseppe che ha già risposto:

ma aggiungo a quanto già menzionato, oltre ai gruppi ed ai cluster per suddividere una definizione,
oltre ai consigli già dati, stavo pensando a come “organizzare” al meglio una lunga definizione?
nel senso: in un canvass le porzioni le suddivido per ogni parte che ha bisogno di parametri diversi
tipo: slider ecc valori d’ingresso da inserire, ora se divisi in gruppi o in cluster credo sia la stessa cosa?

ma anche usare un metodo tipo matrioska, inserire cluster all’interno di altri cluster con i regolatori di valori tutti all’esterno del canvass e quindi che danno input nel primo cluster. sarebbe un metodo idoneo?
però in questo caso non potrei spegnere le porzioni da ricalcolare per evitare il ricalcolo di tutto. . . .

ps oltre a questo, non ho capito se, è possibile collegare più file Gh per un unico progetto?

Certo che puoi! La cosa fantastica di GH è che è multi-istanza. Puoi avviare più definizioni che facciano riferimento ad un unico file Rhino se ti serve. Come organizzare dipende dal progetto.

ciao Giuseppe, quello che intendevo era che il tutto si svolge in Gh
in pratica Rhino viene usato solo per poter visualizzare quello che è stato fatto con GH

in questo caso mica esiste un modo per collegare il risultato di “un file” ad un’altro
come succede quando collego gli (spaghetti) tra “una porzione” di definizione ad un’altra?

Non è vero. Esiste. Volendo. Come ho spiegato rispondendo a Luca.
Parzializzi i risultai. Li “fermi” e li usi come punto di partenza per altro.
Parliamo di definizioni grandi. O anche solo complesse.
Quella della mia seconda puntata di Gh di Natale, gestita nella distribuzione da Kangaroo, Non ha senso tenerla ininterrotta da inizio a fine. Perchè la fase dell’assegnazione delle sfere avviene quando tutta la parte fisica gestita da Kangaroo ha finito di convergere. In questo caso è facile perchè tutta quella parte la blocchi fermando il ricalcolo al solutore Kangaroo ma concettualmente quella è una interruzione rispetto alla seconda fase in cui piazzi le sfere, i colori…blablabla.

:heart_eyes:. ? Come si fa? Possiamo parlare anche della mia definizione, posso pubblicare foto ma non condividerla.
Con i file Excel… MH credo di aver capito: tasto destro in gh e stream?

Parliamo in generale.

Puoi leggere e scrivere su Excel usando gli ottimi componenti Lunchbox. E questo è un gran modo. A seguire altra definizione che parte da quei dati.
Oppure:
Se fai un bake a un certo punto e lo assegni a un Layer che lavora come un place-holder, una seconda definizione che usa come partenza un Pipeline che legge da quel layer si avvierà quando il dato è ricevuto dalla prima definizione. E così via.
Oppure:
Geometry Cache

1 Mi Piace

Grazie ancora Giu, penso di aver capito come implementare i primi due metodi, il geometri cache penso di non conoscerlo. Se il discorso è lungo faccio un giro in rete.

Affatto lungo! Fa un bake con un nome se lo immagini come “uscita”.
“importa” con lo stesso nome in un’ altra definizione quando lo attivi.

ma è un componente?

Yessssss. Parameter:

1 Mi Piace

Ci smanetterò. Ancora una domanda riguardo il salvataggio su file dati.
Ad oggi uso questo metodo per passare dati a Matlab, ma come si fa a passare una geometria tramite xls o csv ad un altro file gh?

Una geometria tipo una BRep non la passi… devi esportarla. Puoi con quello che definisci per punti, tipo le mesh, cui associ anche dati sulla topologia, normali etc. Se fai un semplice export di mesh in dxf e lo apri con il blocco notes vedi come è organizzato.

Potrei passare una subd trasformata in mesh (punti e altro) con xls o csv sicuro che Rhino o GH saprà ricomporre la subd? Perdona la domanda stupida, probabilmente.

Non trasformarla, basta ricavare la poligon cage che corrisponde alla mesh di controllo.
Per ricostruire la SubD devi esportare gli elementi che definiscono la mesh di controllo. Se guardi deconstruct mesh e più facile a farsi che a dirsi. Poi quando fai rientrare e ricrei la mesh è facile passare a SubD.

1 Mi Piace

Sei stato spettacolare, grazie Giu.

1 Mi Piace

Per comunicare e soprattutto fare dei bake e consigliabile il plugin elefront che permette di organizzare il lavoro su un singolo file rhino ma suddividere i processi gh su più moduli.

Alternativa è l’utilizzo dello streamer con cui è possibile scrivere geometrie e dati da uno script grasshopper e leggerli da un altro script con il vantaggio di essere RealTime.

Saluti
Gerry

Mi sbaglio o lo streamer può importare solo dati da file di testo (dat, csv,…)?

In parametri esistono due componenti (non ricordo il nome in questo momento,eh la vecchiaia) write e read, usi un write e lo associ ad un file poi puoi aggiungere un numero qualsiasi di input e connetti i dati (qualsiasi dato). Il Reader funziona in modo simmetrico leggendo dal file e ha come uscita tutti i parametri di input creati in scrittura.

Sul nome vedo e aggiorno il thread

Parametri data output e data input sono i due componenti