Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Dopo aver creato alcuni nodi personalizzati, il passaggio successivo consiste nell'iniziare a organizzarli e pubblicarli tramite pacchetti, un modo pratico per memorizzare e condividere i nodi con la comunità di Dynamo.
Dynamo offre diversi metodi per la creazione di nodi personalizzati. È possibile creare nodi personalizzati da zero, da un grafico esistente o esplicitamente in C#. In questa sezione verrà descritta la creazione di un nodo personalizzato nell'interfaccia utente di Dynamo da un grafico esistente. Questo metodo è ideale per la pulizia dell'area di lavoro, nonché per la creazione di una sequenza di nodi da riutilizzare altrove.
Nell'immagine seguente, viene associato un punto da una superficie ad un'altra utilizzando le coordinate UV. Questo concetto verrà utilizzato per creare una superficie a pannelli che faccia riferimento alle curve nel piano XY. Qui verranno creati pannelli quadrangolari per la suddivisione in pannelli, ma utilizzando la stessa logica, è possibile creare una vasta gamma di pannelli con il mappaggio UV. Si tratta di un'ottima opportunità per lo sviluppo di nodi personalizzati perché si potrà ripetere più facilmente un processo simile in questo grafico o in altri workflow di Dynamo.
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
Iniziare creando un grafico che si desidera nidificare in un nodo personalizzato. In questo esempio, verrà creato un grafico che associa i poligoni da una superficie di base ad una superficie di destinazione utilizzando le coordinate UV. Questo processo di mappaggio UV è un metodo utilizzato di frequente, il che lo rende un buon candidato per un nodo personalizzato. Per ulteriori informazioni sulle superfici e sullo spazio UV, fare riferimento alla pagina Superficie . Il grafico completo è UVmapping_Custom-Node.dyn dal file .zip scaricato in precedenza.
Code Block: utilizzare questa linea per creare un intervallo di 10 numeri compreso tra -45 e 45
45..45..#10;
.Point.ByCoordinates: collegare l'output di Code Block agli input x e y e impostare il collegamento su Globale. Ora dovrebbe essere presente una griglia di punti.
Plane.ByOriginNormal: collegare l'output Point all'input origin per creare un piano in corrispondenza di ciascuno dei punti. Verrà utilizzato il vettore normale di default (0,0,1).
Rectangle.ByWidthLength: collegare i piani del passaggio precedente all'input plane e utilizzare un Code Block con un valore di 10 per specificare la larghezza e la lunghezza.
Ora dovrebbe essere visibile una griglia di rettangoli. Associare questi rettangoli ad una superficie di destinazione utilizzando le coordinate UV.
Polygon.Points: collegare l'output Rectangle.ByWidthLength del passaggio precedente all'input polygon per estrarre i punti degli angoli di ogni rettangolo. Questi sono i punti che verranno associati alla superficie di destinazione.
Rectangle.ByWidthLength: utilizzare un Code Block con un valore di 100 per specificare la larghezza e la lunghezza di un rettangolo. Sarà il contorno della superficie di base.
Surface.ByPatch: collegare l'output Rectangle.ByWidthLength del passaggio precedente all'input closedCurve per creare una superficie di base.
Surface.UVParameterAtPoint: collegare l'output Point del nodo Polygon.Points e l'output Surface del nodo Surface.ByPatch per restituire il parametro UV in ogni punto.
Ora che sono presenti una superficie di base e un gruppo di coordinate UV, è possibile importare una superficie di destinazione e associare i punti tra le superfici.
File Path: selezionare il percorso del file della superficie che si desidera importare. Il tipo di file deve essere .SAT. Fare clic sul pulsante Sfoglia... e individuare il file UVmapping_srf.sat nel file .zip scaricato in precedenza.
Geometry.ImportFromSAT: collegare il percorso del file per importare la superficie. La superficie importata dovrebbe essere visualizzata nell'anteprima della geometria.
UV: collegare l'output del parametro UV ad un nodo UV.U e UV.V.
Surface.PointAtParameter: collegare la superficie importata, nonché le coordinate u e v. Ora dovrebbe essere visualizzata una griglia di punti 3D sulla superficie di destinazione.
Il passaggio finale consiste nell'utilizzare i punti 3D per costruire superfici di chiusura rettangolari.
PolyCurve.ByPoints: collegare i punti sulla superficie per costruire una PolyCurve attraverso i punti.
Boolean: aggiungere un valore Boolean all'area di lavoro e collegarlo all'input connectLastToFirst e attivare True per chiudere le PolyCurve. Ora dovrebbero essere visualizzati i rettangoli associati alla superficie.
Surface.ByPatch: collegare le PolyCurve all'input "closedCurve" per costruire superfici di chiusura.
A questo punto, selezionare i nodi che si desidera nidificare in un nodo personalizzato, pensando agli input e agli output del nodo stesso. Si desidera che il nodo personalizzato sia il più flessibile possibile, pertanto dovrebbe essere associabile ad eventuali poligoni, non solo ai rettangoli.
Selezionare i seguenti nodi (a partire da Polygon.Points), fare clic con il pulsante destro del mouse sull'area di lavoro e selezionare Crea nodo personalizzato.
Nella finestra di dialogo Proprietà nodo personalizzato, assegnare un nome, una descrizione e una categoria al nodo personalizzato.
Nome: MapPolygonsToSurface
Descrizione: mappare i poligoni da una base ad una superficie di destinazione
Categoria di Moduli aggiuntivi: Geometry.Curve
Il nodo personalizzato ha notevolmente ripulito l'area di lavoro. Notare che gli input e gli output sono stati denominati in base ai nodi originali. Modificare il nodo personalizzato per rendere i nomi più descrittivi.
Fare doppio clic sul nodo personalizzato per modificarlo. Verrà aperta un'area di lavoro con uno sfondo giallo che rappresenta l'interno del nodo.
Input: modificare i nomi di input in baseSurface e targetSurface.
Output: aggiungere un altro output ai poligoni associati.
Salvare il nodo personalizzato e tornare all'area di lavoro iniziale. Tenere presente che il nodo MapPolygonsToSurface riflette le modifiche appena apportate.
È inoltre possibile potenziare la robustezza del nodo personalizzato mediante l'aggiunta di commenti personalizzati. I commenti possono aiutare a visualizzare suggerimenti sui tipi di input e output o spiegare le funzionalità del nodo. I commenti vengono visualizzati quando l'utente posiziona il cursore del mouse su un input o un output di un nodo personalizzato.
Fare doppio clic sul nodo personalizzato per modificarlo. Verrà riaperta l'area di lavoro con lo sfondo giallo.
Iniziare a modificare il Code Block Input. Per iniziare a scrivere un commento, digitare "//" seguito dal testo del commento. Digitare tutto ciò che potrebbe essere utile per chiarire il nodo. Qui verrà descritto l'input targetSurface.
Definire inoltre il valore di default per inputSurface impostando il tipo di input uguale ad un valore. Qui, si imposterà il valore di default sul nodo Surface.ByPatch originale impostato.
I commenti possono essere applicati anche agli output.
Modificare il testo nel Code Block Output. Digitare "//" seguito dal testo del commento. Qui verranno chiariti gli output Polygons e surfacePatches aggiungendo una descrizione più approfondita.
Posizionare il cursore del mouse sugli input del nodo personalizzato per visualizzare i commenti.
Con il valore di default impostato su inputSurface, è inoltre possibile eseguire la definizione senza un input Surface.
Dynamo offre numerose funzionalità predefinite e dispone anche di un'ampia libreria di pacchetti in grado di estendere in modo significativo le sue potenzialità. Un pacchetto è una raccolta di nodi personalizzati o funzionalità aggiuntive. Dynamo Package Manager è un portale che consente alla comunità di scaricare qualsiasi pacchetto pubblicato online. Questi set di strumenti sono stati sviluppati da terze parti per estendere le funzionalità principali di Dynamo, sono accessibili a tutti e sono pronti per il download con un semplice clic.
Un progetto open source, come Dynamo, si basa su questo tipo di coinvolgimento della comunità. Grazie a sviluppatori di terze parti dedicati, Dynamo è in grado di estendere il suo ambito di applicazione ai workflow di diversi settori. Per questo motivo, il team di Dynamo ha compiuto sforzi concertati per snellire lo sviluppo e la pubblicazione dei pacchetti (che saranno discussi in modo più dettagliato nelle sezioni seguenti).
Il modo più semplice per installare un pacchetto consiste nell'utilizzare l'opzione di menu Pacchetti nell'interfaccia di Dynamo. Adesso si può passare direttamente al pacchetto e installarne uno. In questo esempio rapido, verrà installato un comune pacchetto per la creazione di pannelli quadrangolari su una griglia.
In Dynamo, accedere a Pacchetti > Package Manager.
Sulla barra di ricerca, cercare "quads from rettangular grid". Dopo alcuni minuti, si dovrebbero vedere tutti i pacchetti che corrispondono alla query di ricerca. Si desidera selezionare il primo pacchetto con il nome corrispondente.
Fare clic su Installa per aggiungere il pacchetto alla libreria, quindi accettare la conferma. Fatto.
Notare che ora è presente un altro gruppo nella libreria di Dynamo denominato "buildz". Questo nome si riferisce allo sviluppatore del pacchetto e il nodo personalizzato viene posizionato in questo gruppo. È possibile iniziare ad utilizzarlo immediatamente.
Utilizzare Code Block per definire rapidamente una griglia rettangolare, generare il risultato in un nodo Polygon.ByPoints, quindi in un nodo Surface.ByPatch per visualizzare l'elenco di pannelli rettangolari appena creati.
L'esempio riportato sopra si concentra su un pacchetto con un nodo personalizzato, ma si utilizza lo stesso processo per il download di pacchetti con diversi nodi personalizzati e file di dati di supporto. Ora si dimostrerà ciò con un pacchetto più completo: DynamoUnfold.
Come nell'esempio precedente, iniziare selezionando Pacchetti > Package Manager.
Questa volta, si cercherà "DynamoUnfold", una parola. Quando vengono visualizzati i pacchetti, scaricarli facendo clic su Installa per aggiungere DynamoUnfold alla libreria di Dynamo.
Nella libreria di Dynamo, è presente un gruppo DynamoUnfold con più categorie e nodi personalizzati.
Ora, si può dare un'occhiata alla struttura dei file del pacchetto.
Innanzitutto, accedere a Pacchetti > Package Manager > Pacchetti installati.
Quindi, fare clic su Mostra directory principale per aprire la cartella principale per questo pacchetto.
Verrà aperta la directory principale del pacchetto. Notare che sono presenti 3 cartelle e un file.
La cartella bin contiene i file .dll. Questo pacchetto di Dynamo è stato sviluppato utilizzando la funzionalità zero-touch, pertanto i nodi personalizzati sono contenuti in questa cartella.
La cartella dyf contiene i nodi personalizzati. Questo pacchetto non è stato sviluppato utilizzando nodi personalizzati di Dynamo, pertanto questa cartella è vuota per questo pacchetto.
La cartella extra contiene tutti i file aggiuntivi, inclusi i file di esempio.
Il file pkg è un file di testo di base che definisce le impostazioni del pacchetto. Lo si può ignorare per adesso.
Aprendo la cartella "extra", si notano alcuni file di esempio scaricati con l'installazione. Non tutti i pacchetti dispongono di file di esempio, ma è possibile trovarli se fanno parte di un pacchetto.
Aprire "SphereUnfold".
Dopo aver aperto il file e aver fatto clic su "Esegui" nel risolutore, è presente una sfera spiegata. File di esempio come questi sono utili per imparare ad utilizzare un nuovo pacchetto di Dynamo.
In Package Manager, è possibile cercare i pacchetti utilizzando le opzioni di ordinamento e filtraggio disponibili nella scheda Cerca pacchetti. Sono disponibili diversi filtri per il programma host, lo stato (nuovo, obsoleto o non obsoleto) e la presenza o meno di dipendenze nel pacchetto.
Ordinando i pacchetti, è possibile identificare i pacchetti più votati o più scaricati oppure trovare i pacchetti con aggiornamenti recenti.
È inoltre possibile accedere a ulteriori dettagli su ciascun pacchetto facendo clic su Visualizza dettagli. Viene aperto un pannello laterale in Package Manager, in cui è possibile trovare informazioni quali il confronto delle versioni e le dipendenze, l'URL del sito Web o del repository, le informazioni sulla licenza e così via.
Un altro modo per scoprire i pacchetti di Dynamo consiste nell'esplorare il sito Web di Dynamo Package Manager. Qui si possono trovare le statistiche sui pacchetti e le classifiche degli autori. È inoltre possibile scaricare i file di pacchetto da Dynamo Package Manager, ma eseguire questa operazione direttamente da Dynamo è un processo più agevole.
Se si desidera vedere dove vengono mantenuti i file di pacchetto, nella parte superiore del browser fare clic su Dynamo > Preferenze > Impostazioni pacchetto > Posizioni di nodi e pacchetti; da qui è possibile trovare la directory della cartella principale corrente.
Per default, i pacchetti vengono installati in una posizione simile a questo percorso delle cartelle: C:/Utenti/[nome utente]/AppData/Roaming/Dynamo/[versione di Dynamo].
La comunità di Dynamo è in costante crescita e in continua evoluzione. Esplorando di tanto in tanto Dynamo Package Manager, si noteranno alcuni nuovi e interessanti miglioramenti. Nelle seguenti sezioni, verranno esaminati in modo più approfondito i pacchetti, dalla prospettiva dell'utente finale fino al programmatore del pacchetto di Dynamo.
Dynamo Mesh Toolkit fornisce strumenti per importare mesh da formati di file esterni, creare mesh da oggetti della geometria di Dynamo e generare manualmente mesh in base ai vertici e agli indici. La libreria fornisce inoltre strumenti per modificare e correggere mesh o estrarre sezioni orizzontali da utilizzare nella fabbricazione.
Dynamo Mesh Toolkit fa parte del costante programma di ricerca sulle mesh di Autodesk e, come tale, continuerà a crescere nei prossimi anni. Si prevede di aggiungere frequentemente nuovi metodi nel toolkit e pertanto gli utenti sono invitati a contattare il team di Dynamo per eventuali commenti, bug e suggerimenti per le nuove funzionalità.
Nel seguente esercizio sono illustrate alcune operazioni di base sulle mesh mediante Mesh Toolkit. Nell'esercizio, si interseca una mesh con una serie di piani, il che può risultare complesso dal punto di vista computazionale se si utilizzano solidi. A differenza di un solido, una mesh presenta una risoluzione impostata e non è definita matematicamente, ma topologicamente; è possibile definire questa risoluzione in base all'attività in corso. Per ulteriori dettagli sulle relazioni tra mesh e solidi, è possibile fare riferimento al capitolo Geometria per la progettazione computazionale di questa guida introduttiva. Per un esame più approfondito di Mesh Toolkit, è possibile fare riferimento alla pagina Wiki di Dynamo. Passare al pacchetto nell'esercizio riportato di seguito.
In Dynamo, accedere a Pacchetti > Package Manager... sulla barra dei menu superiore. Nel campo di ricerca, digitare MeshToolkit, tutta una parola. Fare clic su Installa e accettare le conferme per avviare il download. È semplicissimo.
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
In questo esempio, si esaminerà il nodo Intersect in Mesh Toolkit. Si importerà una mesh e la si intersecherà con una serie di piani di input per creare sezioni. Questo è il punto di partenza per la preparazione del modello per la fabbricazione su un taglierino laser, un taglierino a getto d'acqua o una fresa CNC.
Iniziare aprendo Mesh-Toolkit_Intersect-Mesh.dyn in Dynamo.
File Path: individuare il file mesh da importare (stanford_bunny_tri.obj). I tipi di file supportati sono .mix e .obj.
Mesh.ImportFile: collegare il percorso del file per importare la mesh.
Point.ByCoordinates: creare un punto, che sarà il centro di un arco.
Arc.ByCenterPointRadiusAngle: creare un arco attorno al punto. Questa curva verrà utilizzata per posizionare una serie di piani. __ Di seguito vengono descritte le impostazioni disponibili: __
radius: 40, startAngle: -90, endAngle:0
Creare una serie di piani orientati lungo l'arco.
Code Block: consente di creare 25 numeri compresi tra 0 e 1.
Curve.PointAtParameter: collegare l'arco all'input curve e l'output del blocco di codice all'input param per estrarre una serie di punti lungo la curva.
Curve.TangentAtParameter: collegare gli stessi input del nodo precedente.
Plane.ByOriginNormal: collegare i punti all'input origin e i vettori all'input normal per creare una serie di piani in corrispondenza di ogni punto.
Quindi, si utilizzeranno questi piani per intersecare la mesh.
Mesh.Intersect: intersecare i piani con la mesh importata, creando una serie di contorni di PolyCurve. Fare clic con il pulsante destro del mouse sul nodo e impostare il collegamento sul più lungo.
PolyCurve.Curves: dividere le PolyCurve nei relativi frammenti di curva.
Curve.EndPoint: estrarre i punti finali di ogni curva.
NurbsCurve.ByPoints: utilizzare i punti per costruire una curva NURBS. Utilizzare un nodo booleano impostato su True per chiudere le curve.
Prima di continuare, disattivare l'anteprima per alcuni nodi, ad esempio: Mesh.ImportFile, Curve.EndPoint, Plane.ByOriginNormal e Arc.ByCenterPointRadiusAngle per vedere meglio il risultato.
Surface.ByPatch: costruire superfici chiuse per ogni contorno per creare sezioni della mesh.
Aggiungere un secondo insieme di sezioni per un effetto di waffle/cassa delle uova.
Si potrebbe notare che le operazioni di intersezione vengono calcolate più rapidamente con una mesh rispetto ad un solido confrontabile. I workflow, come quello illustrato in questo esercizio, si prestano anche all'utilizzo delle mesh.
I nodi personalizzati vengono costruiti nidificando altri nodi e nodi personalizzati all'interno di un "nodo personalizzato di Dynamo", che è possibile immaginare concettualmente come un contenitore. Quando viene eseguito questo nodo contenitore nel grafico, tutto ciò che si trova all'interno verrà eseguito per consentire di riutilizzare e condividere una combinazione utile di nodi.
Quando nel grafico sono presenti più copie di un nodo personalizzato, è possibile aggiornarle tutte modificando il nodo personalizzato di base. Ciò consente di aggiornare il grafico in modo semplice adattandolo a eventuali modifiche che potrebbero verificarsi nel workflow o nella progettazione.
Probabilmente la migliore funzionalità dei nodi personalizzati è la loro capacità di condivisione del lavoro. Se un utente avanzato crea un grafico di Dynamo complesso e lo consegna ad un progettista che non conosce Dynamo, può condensare il grafico agli elementi essenziali per l'interazione progettuale. Il nodo personalizzato può essere aperto per modificare il grafico interno, ma il "contenitore" può essere mantenuto semplice. Con questo processo, i nodi personalizzati consentono agli utenti di Dynamo di progettare un grafico ordinato e intuitivo.
Si passerà all'ambiente dei nodi personalizzati e si creerà un nodo semplice per calcolare una percentuale. L'ambiente dei nodi personalizzati è diverso dall'ambiente dei grafici di Dynamo, ma l'interazione è fondamentalmente la stessa. Detto questo, procedere creando il primo nodo personalizzato.
Per creare un nodo personalizzato da zero, avviare Dynamo e selezionare Nodo personalizzato oppure digitare CTRL+MAIUSC+N nell'area di disegno.
Assegnare un nome, una descrizione e una categoria nella finestra di dialogo Proprietà nodo personalizzato.
Nome: Percentage
Descrizione: Calculate the percentage of one value in relation to another
Categoria: Math.Functions
Verrà aperta un'area di disegno con uno sfondo giallo, ad indicare che si sta lavorando all'interno di un nodo personalizzato. In questa area di disegno è possibile accedere a tutti i nodi di Dynamo principali, nonché ai nodi Input e Output, che etichettano il flusso di dati in entrata e in uscita nel nodo personalizzato. Sono disponibili in Input>Basic.
Input: i nodi di input creano porte di input nel nodo personalizzato. La sintassi per un nodo di input è input_name : datatype = default_value(optional).
È possibile salvare questo nodo personalizzato come file .dyf (anziché come file .dyn standard) e verrà aggiunto automaticamente alla sessione corrente e alle sessioni future. Il nodo personalizzato è reperibile nella libreria dalla sezione Add-ons.
Dopo aver creato il primo nodo personalizzato, nelle sezioni successive si approfondiranno la funzionalità dei nodi personalizzati e si spiegherà come pubblicare workflow generici. Nella seguente sezione verrà illustrato lo sviluppo di un nodo personalizzato che trasferisce la geometria da una superficie ad un'altra.
Dynamo offre diversi modi per creare un pacchetto per l'utilizzo personale o per la condivisione con la comunità di Dynamo. Nel case study riportato di seguito, si esaminerà in maniera dettagliata la configurazione di un pacchetto smontandone uno esistente. Questo case study si basa sulle lezioni del capitolo precedente, fornendo un gruppo di nodi personalizzati per il mappaggio della geometria, tramite le coordinate UV, da una superficie di Dynamo ad un'altra.
Si utilizzerà un pacchetto di esempio che mostra il mappaggio UV di punti da una superficie ad un'altra. Sono già stati illustrati i principi fondamentali dello strumento nella sezione di questa guida introduttiva. I file riportati di seguito mostrano com'è possibile prendere il concetto di mappaggio UV e sviluppare un set di strumenti per una libreria pubblicabile.
In questa immagine, si associa un punto da una superficie ad un'altra utilizzando le coordinate UV. Il pacchetto si basa su questo concetto, ma con una geometria più complessa.
Nel capitolo precedente, sono stati esaminati i metodi per la suddivisione di una superficie in pannelli in Dynamo in base alle curve definite nel piano XY. Questo case study estende questi concetti per altre quote della geometria. Si installerà questo pacchetto una volta creato per dimostrare com'è stato sviluppato. Nella sezione successiva, verrà illustrato come questo pacchetto è stato pubblicato.
In Dynamo, fare clic su Pacchetti > Package Manager e cercare il pacchetto "MapToSurface" (tutta una parola). Fare clic su Installa per avviare il download e aggiungere il pacchetto alla libreria.
Dopo l'installazione, i nodi personalizzati dovrebbero essere disponibili nella sezione Moduli aggiuntivi > DynamoPrimer.
Dopo aver installato il pacchetto, esaminarne in maniera dettagliata la configurazione.
Il pacchetto che si sta creando utilizza cinque nodi personalizzati che sono stati generati come riferimento. Si esaminerà in maniera dettagliata la funzione di ogni nodo di seguito. Alcuni nodi personalizzati si basano su altri nodi personalizzati e i grafici mostrano un layout per consentire ad altri utenti di comprendere ciò in maniera chiara.
Si tratta di un pacchetto semplice con cinque nodi personalizzati. Nei passaggi riportati di seguito, verrà descritta brevemente la configurazione di ogni nodo personalizzato.
È un nodo di base personalizzato e uno su cui sono basati tutti gli altri nodi di mappaggio. In sostanza, il nodo associa un punto da una coordinata UV della superficie di origine alla posizione della coordinata UV della superficie di destinazione. Poiché i punti sono la geometria più primitiva, dalla quale viene creata una geometria più complessa, è possibile utilizzare questa logica per associare la geometria 2D e persino 3D da una superficie ad un'altra.
La logica di estensione dei punti associati dalla geometria 1D alla geometria 2D è illustrata semplicemente con i poligoni qui. Notare che è stato nidificato il nodo PointsToSurface in questo nodo personalizzato. In questo modo è possibile associare i punti di ogni poligono alla superficie e quindi rigenerare il poligono da tali punti associati. Mantenendo la struttura dei dati appropriata (un elenco di elenchi di punti), è possibile mantenere i poligoni separati dopo averli ridotti ad un gruppo di punti.
La stessa logica si applica qui come nel nodo PolygonsToSurface. Invece di associare i punti poligonali, si stanno associando i punti di controllo di una curva NURBS.
OffsetPointsToSurface
Questo nodo risulta un po' più complesso, ma il concetto è semplice: come il nodo PointsToSurface, questo nodo associa i punti da una superficie ad un'altra. Tuttavia, considera anche i punti che non si trovano sulla superficie di origine originale, calcola la loro distanza dal parametro UV più vicino e associa questa distanza alla normale della superficie di destinazione nel punto della coordinata UV corrispondente. Ciò risulta più utile quando si esaminano i file di esempio.
Questo è un nodo semplice che crea una superficie parametrica da associare dalla griglia di origine ad una superficie ondulata nei file di esempio.
I file di esempio sono disponibili nella cartella principale del pacchetto. Fare clic su Package Manager > scheda Pacchetti installati.
Accanto a MapToSurface, fare clic sul menu con i puntini verticali > Mostra directory principale.
Quindi, aprire la cartella extra, che contiene tutti i file del pacchetto che non sono nodi personalizzati. Questo è il percorso in cui vengono memorizzati i file di esempio (se presenti) per i pacchetti di Dynamo. Nelle schermate riportate di seguito sono mostrati i concetti illustrati in ogni file di esempio.
Utilizzando un workflow simile, questo file di esercizio mostra una configurazione per il mappaggio di cerchi (o poligoni che rappresentano cerchi) da una superficie ad un'altra. Viene utilizzato il nodo "PolygonsToSurface".
Questo file di esempio aggiunge una certa complessità utilizzando il nodo NurbsCrvToSurface. Viene eseguito l'offset della superficie di destinazione ad una determinata distanza e la curva NURBS viene associata alla superficie di destinazione originale e alla superficie di offset. Da qui, viene eseguito il loft delle due curve associate per creare una superficie, che viene poi ispessita. Questo solido risultante ha un'ondulazione che è rappresentativa delle normali della superficie di destinazione.
Questo file di esempio illustra come associare una PolySurface pieghettata da una superficie di origine ad una superficie di destinazione. La superficie di origine e quella di destinazione sono rispettivamente una superficie rettangolare che si estende sulla griglia e una superficie di rivoluzione.
Indica la PolySurface di origine associata dalla superficie di origine alla superficie di destinazione.
Poiché i nodi personalizzati sono in grado di associare diversi tipi di curve, quest'ultimo file fa riferimento ad un file SVG esportato da Illustrator e associa le curve importate ad una superficie di destinazione.
Analizzando la sintassi di un file .svg, le curve vengono convertite dal formato .xml nelle PolyCurve di Dynamo.
Le curve importate vengono associate ad una superficie di destinazione. Questo consente di progettare in modo esplicito (fare clic e puntare) una suddivisione in pannelli in Illustrator, importarla in Dynamo e applicarla ad una superficie di destinazione.
Dynamo dispone di molte funzionalità incorporate, memorizzate nella libreria di nodi. Per le routine utilizzate di frequente o per il grafico speciale che si desidera condividere con la comunità, i nodi e i pacchetti personalizzati rappresentano un ottimo modo per estendere ulteriormente Dynamo.
Dynamo offre molti nodi principali per un'ampia gamma di attività di programmazione visiva. A volte una soluzione più rapida, più elegante o più facilmente condivisa consiste nella creazione di nodi personalizzati. Questi possono essere riutilizzati tra diversi progetti, rendono i grafici più chiari e più ordinati, possono essere trasmessi a Package Manager e condivisi con la comunità di Dynamo globale.
È stato appena creato un nodo personalizzato ed è stato applicato ad un processo specifico nel grafico di Dynamo. E dato che questo nodo è ben riuscito, si desidera mantenerlo nella libreria di Dynamo come riferimento in altri grafici. Per eseguire questa operazione, il nodo verrà pubblicato localmente. Questo è un processo simile alla pubblicazione di un pacchetto, che sarà esaminata più in dettaglio nel prossimo capitolo.
Se si pubblica un nodo localmente, questo sarà accessibile nella libreria di Dynamo quando si apre una nuova sessione. Senza pubblicare un nodo, un grafico di Dynamo che fa riferimento ad un nodo personalizzato deve anche contenere tale nodo personalizzato nella relativa cartella (o il nodo personalizzato deve essere importato in Dynamo utilizzando File > Importa libreria).
È possibile pubblicare nodi e pacchetti personalizzati da Dynamo Sandbox nella versione 2.17 e successive, purché non presentino dipendenze API host. Nelle versioni precedenti, la pubblicazione di nodi e pacchetti personalizzati è abilitata solo in Dynamo for Revit e Dynamo for Civil 3D.
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
Procedere con il nodo personalizzato creato nella sezione precedente. Una volta aperto il nodo personalizzato PointsToSurface, viene visualizzato il grafico nell'Editor nodi personalizzati di Dynamo. È inoltre possibile aprire un nodo personalizzato facendovi doppio clic nell'editor dei grafici di Dynamo.
Per pubblicare un nodo personalizzato localmente, è sufficiente fare clic con il pulsante destro del mouse sull'area di disegno e selezionare Pubblica questo nodo personalizzato.
Compilare le informazioni pertinenti simili a quelle mostrate nell'immagine riportata sopra e selezionare Pubblica localmente. Notare che il campo Gruppo (facoltativo) definisce l'elemento principale accessibile dal menu di Dynamo.
Scegliere una cartella in cui memorizzare tutti i nodi personalizzati che si prevede di pubblicare localmente. In Dynamo viene controllata questa cartella ad ogni caricamento del programma, quindi verificare che si trovi in una posizione permanente. Individuare la cartella e scegliere Seleziona cartella. Il nodo di Dynamo viene ora pubblicato localmente e rimarrà nella libreria di Dynamo ogni volta che si carica il programma.
Per verificare il percorso della cartella dei nodi personalizzati, accedere a Dynamo > Preferenze > Impostazioni pacchetto > Percorsi di nodi e pacchetti.
In questa finestra viene visualizzato un elenco di percorsi.
Documents\DynamoCustomNodes... si riferisce alla posizione dei nodi personalizzati pubblicati localmente.
AppData\Roaming\Dynamo... si riferisce alla posizione di default dei pacchetti di Dynamo installati in linea.
È possibile spostare il percorso della cartella locale in basso nell'ordine dell'elenco (facendo clic sul percorso sulla freccia giù a sinistra dei nomi dei percorsi). La cartella superiore è il percorso di default per le installazioni di pacchetti. Pertanto, se si mantiene il percorso di installazione di default del pacchetto di Dynamo come cartella di default, i pacchetti in linea verranno separati dai nodi pubblicati localmente.
È stato cambiato l'ordine dei nomi dei percorsi in modo da avere il percorso di default di Dynamo come posizione di installazione del pacchetto.
Accedendo a questa cartella locale, è possibile trovare il nodo personalizzato originale nella cartella dyf, che è l'estensione del file di un nodo personalizzato di Dynamo. Si può modificare il file in questa cartella e il nodo verrà aggiornato nell'interfaccia utente. È inoltre possibile aggiungere altri nodi alla cartella DynamoCustomNodes principale. In Dynamo verranno aggiunti alla libreria al riavvio.
Dynamo ora viene caricato ogni volta con PointsToSurface nel gruppo DynamoPrimer della libreria di Dynamo.
Accanto a DynamoUnfold, selezionare il menu delle opzioni .
Esistono svariati modi per creare nodi personalizzati in Dynamo. Negli esempi riportati in questo capitolo, verranno creati nodi personalizzati direttamente dall'interfaccia utente di Dynamo. Se si è programmatori e si è interessati alla formattazione C# o zero-touch, è possibile fare riferimento nella Wiki di Dynamo per una revisione più approfondita.
Output: simili agli input, creeranno e assegneranno nomi alle porte di output nel nodo personalizzato. È possibile aggiungere un commento personalizzato alle porte di input e output per inserire un suggerimento nei tipi Input e Output. Questo argomento è descritto più dettagliatamente nella sezione .
Questo file di esempio illustra com'è possibile utilizzare PointsToSurface per eseguire la suddivisione di una superficie in pannelli in base ad una griglia di rettangoli. Questo processo dovrebbe risultare familiare, poiché è stato dimostrato un workflow simile nel .
Nelle sezioni precedenti, sono stati analizzati i dettagli su come il pacchetto MapToSurface è configurato con nodi personalizzati e file di esempio. Ma com'è possibile pubblicare un pacchetto che è stato sviluppato localmente? Questo case study mostra come pubblicare un pacchetto da un gruppo di file in una cartella locale.
Esistono diversi modi per pubblicare un pacchetto. Di seguito è riportato il processo consigliato: pubblicare localmente, sviluppare localmente, quindi pubblicare in linea. Si inizierà con una cartella contenente tutti i file del pacchetto.
Prima di passare alla pubblicazione del pacchetto MapToSurface, se il pacchetto è stato installato dalla lezione precedente, disinstallarlo in modo da non utilizzare pacchetti identici.
Iniziare accedendo a Pacchetti > Package Manager > scheda Pacchetti installati > accanto a MapToSurface, fare clic sul menu con i puntini verticali > Elimina.
Quindi riavviare Dynamo. Alla riapertura, quando si seleziona la finestra Gestisci pacchetti, MapToSurface non dovrebbe più essere presente. Ora si è pronti per cominciare dall'inizio.
È possibile pubblicare nodi e pacchetti personalizzati da Dynamo Sandbox nella versione 2.17 e successive, purché non presentino dipendenze API host. Nelle versioni precedenti, la pubblicazione di nodi e pacchetti personalizzati è abilitata solo in Dynamo for Revit e Dynamo for Civil 3D.
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
Questo è il primo invio per il pacchetto e tutti i file di esempio e i nodi personalizzati sono stati inseriti in una cartella. Una volta preparata questa cartella, è possibile caricarla in Dynamo Package Manager.
Questa cartella contiene cinque nodi personalizzati (.dyf).
Contiene inoltre cinque file di esempio (.dyn) e un file vettoriale importato (.svg). Questi file fungeranno da esercizi introduttivi per mostrare all'utente come utilizzare i nodi personalizzati.
In Dynamo, iniziare facendo clic su Pacchetti > Package Manager > scheda Pubblica nuovo pacchetto.
Nella scheda Pubblica un pacchetto, compilare i campi pertinenti sul lato sinistro della finestra.
Successivamente, verranno aggiunti i file di pacchetto. È possibile aggiungere i file uno ad una o intere cartelle selezionando Aggiungi directory (1). Per aggiungere file che non sono in formato .dyf, assicurarsi di modificare il tipo di file nella finestra del browser in "Tutti i file (.)". Notare che verrà aggiunto indistintamente ogni file, il nodo personalizzato (.dyf) o il file di esempio (.dyn). Dynamo consentirà di suddividere questi elementi quando si pubblica il pacchetto.
Dopo aver selezionato la cartella MapToSurface, Package Manager ne mostra il contenuto. Se si sta caricando un pacchetto personalizzato con una struttura di cartelle complessa e non si desidera che Dynamo apporti modifiche a tale struttura, è possibile attivare il pulsante di commutazione Mantieni struttura delle cartelle. Questa opzione è destinata agli utenti avanzati; se il pacchetto non è stato appositamente impostato in un modo specifico, è consigliabile lasciare disattivato questo pulsante di commutazione e consentire a Dynamo di organizzare i file in base alle esigenze. Fare clic su Avanti per continuare.
Qui, è possibile visualizzare un'anteprima di come Dynamo organizzerà i file di pacchetto prima della pubblicazione. Fare clic su Fine per continuare.
Pubblicare facendo clic su Pubblica localmente (1). Se si sta seguendo questa procedura, assicurarsi di fare clic su Pubblica localmente e non Pubblica in linea per evitare di creare un gruppo di pacchetti duplicati in Package Manager.
Dopo la pubblicazione, i nodi personalizzati devono essere disponibili nel gruppo "DynamoPrimer" o nella libreria di Dynamo.
Ora osservare la directory principale per vedere in che modo Dynamo ha formattato il pacchetto appena creato. A tale scopo, accedere alla scheda Pacchetti installati > accanto a MapToSurface, fare clic sul menu con i puntini verticali > selezionare Mostra directory principale.
Si noti che la directory principale si trova nella posizione locale del pacchetto (tenere presente che il pacchetto è stato pubblicato "localmente"). Dynamo fa attualmente riferimento a questa cartella per la lettura di nodi personalizzati. È pertanto importante pubblicare la directory localmente in una posizione di cartella permanente (ad esempio, non sul desktop). Di seguito è riportata la suddivisione delle cartelle del pacchetto di Dynamo.
La cartella bin contiene i file .dll creati con le librerie C# o zero-touch. Non sono disponibili per questo pacchetto, pertanto questa cartella è vuota per questo esempio.
La cartella dyf contiene i nodi personalizzati. Se si apre questa finestra, verranno visualizzati tutti i nodi personalizzati (file .dyf) per questo pacchetto.
La cartella extra contiene tutti i file aggiuntivi. Questi file probabilmente saranno file di Dynamo (.dyn) o eventuali file aggiuntivi richiesti (.svg, .xls, .jpeg, .sat, ecc.).
Il file pkg è un file di testo di base che definisce le impostazioni del pacchetto. Questa opzione è automatica in Dynamo, ma può essere modificata se si desidera accedere ai dettagli.
Nota Seguire questa procedura solo se si sta effettivamente pubblicando un pacchetto personalizzato.
Quando si è pronti per la pubblicazione, nella finestra Pacchetti > Package Manager > Pacchetti installati, selezionare il pulsante a destra del pacchetto che si desidera pubblicare e scegliere Pubblica.
Se si sta aggiornando un pacchetto già pubblicato, scegliere Pubblica versione. Dynamo aggiornerà il pacchetto in linea in base ai nuovi file nella directory principale del pacchetto. È semplicissimo.
Quando si aggiornano i file nella cartella principale del pacchetto pubblicato, è anche possibile pubblicare una nuova versione del pacchetto selezionando Pubblica versione... nella finestra Pacchetti personali. Questo è un modo semplice per apportare gli aggiornamenti necessari al contenuto e condividerli con la comunità. Pubblica versione funziona solo se si è il gestore del pacchetto.
L'importazione zero-touch si riferisce a un semplice metodo di puntamento e clic per l'importazione di librerie C#. Dynamo consentirà di leggere i metodi pubblici di un file .dll e di convertirli in nodi di Dynamo. È possibile utilizzare la funzione zero-touch per sviluppare nodi e pacchetti personalizzati e per importare librerie esterne nell'ambiente di Dynamo.
File DLL
Nodi di Dynamo
Con la funzione zero-touch, è possibile infatti importare una libreria che non è stata necessariamente sviluppata per Dynamo e creare una suite di nuovi nodi. La funzionalità zero-touch corrente dimostra la mentalità multipiattaforma del progetto di Dynamo.
In questa sezione è illustrato come utilizzare la funzione zero-touch per importare una libreria di terze parti. Per informazioni sullo sviluppo della propria libreria zero-touch, fare riferimento alla pagina Wiki di Dynamo.
I pacchetti zero-touch sono un buon complemento ai nodi personalizzati definiti dall'utente. Nella tabella riportata di seguito sono elencati alcuni pacchetti che utilizzano le librerie C#. Per informazioni più dettagliate sui pacchetti, visitare la sezione dei pacchetti dell'Appendice.
In questo case study, sarà mostrato come importare la libreria AForge .dll esterna. AForge è una solida libreria che offre una vasta gamma di funzionalità, dall'elaborazione delle immagini all'intelligenza artificiale. Verrà fatto riferimento alla classe di immagini in AForge per eseguire alcuni esercizi di elaborazione delle immagini riportati di seguito.
Per iniziare, scaricare AForge. Nella pagina di download di AForge, selezionare [Download Installer] ed eseguire l'installazione dopo il completamento del download.
In Dynamo, creare un nuovo file e selezionare File > Importa libreria.
Quindi, individuare il file .dll.
Nella finestra a comparsa, accedere alla cartella Release nella directory di installazione di AForge. Probabilmente si troverà in una cartella simile a quella seguente: C:\Programmi (x86)\AForge.NET\Framework\Release.
AForge.Imaging.dll: per questo case study si desidera utilizzare solo questo file della libreria AForge. Selezionare questo file .dll e fare clic su Apri.
Tornando a Dynamo, dovrebbe essere visualizzato un gruppo di nodi AForge aggiunto alla Libreria. Ora è possibile accedere alla libreria delle immagini AForge dal programma visivo in uso.
Scaricare il file di esempio facendo clic sul collegamento seguente.
Un elenco completo di file di esempio è disponibile nell'Appendice.
Ora che la libreria è stata importata, questo primo esercizio consentirà di iniziare con facilità (01-EdgeDetection.dyn). Per mostrare come applicare i filtri alle immagini AForge, si procederà con l'elaborazione di base di un'immagine di esempio. Verrà utilizzato il nodo Watch Image per mostrare i risultati e applicare i filtri in Dynamo in modo simile a quelli in Photoshop
Aggiungere un nodo File Path all'area di disegno e selezionare "soapbubbles.jpg" dalla cartella degli esercizi scaricati (credito fotografico: flickr).
Il nodo File Path fornisce semplicemente una stringa del percorso dell'immagine selezionata. Successivamente, è necessario convertirla in un file di immagine utilizzabile in Dynamo.
Utilizzare File From Path per convertire l'elemento del percorso del file in un'immagine nell'ambiente di Dynamo.
Collegare il nodo File Path al nodo File.FromPath.
Per convertire questo file in un'immagine, utilizzare il nodo Image.ReadFromFile.
Infine, osservare il risultato. Rilasciare un nodo Watch Image nell'area di disegno e collegarlo a Image.ReadFromFile. Non è stato ancora utilizzato AForge, ma è stata importata correttamente un'immagine in Dynamo.
In AForge.Imaging.AForge.Imaging.Filters (nel menu di navigazione), si noterà che è disponibile una vasta gamma di filtri. Ora si utilizzerà uno di questi filtri per desaturare un'immagine in base ai valori soglia.
Rilasciare tre dispositivi di scorrimento nell'area di disegno, modificarne gli intervalli in modo che siano compresi tra 0 e 1 e i valori di incremento corrispondenti in modo che siano 0.01.
Aggiungere il nodo Grayscale.Grayscale all'area di disegno. Si tratta di un filtro di AForge che applica un filtro della scala di grigi ad un'immagine. Collegare i tre dispositivi di scorrimento del punto 1 a cr, cg e cb. Modificare i dispositivi di scorrimento superiore e inferiore in modo che il valore 1 e il dispositivo di scorrimento centrale abbiano un valore pari a 0.
Per applicare il filtro Grayscale, è necessario eseguire un'azione sull'immagine. Per questo, viene utilizzato BaseFilter.Apply. Collegare l'immagine all'input image e Grayscale.Grayscale all'input baseFilter.
Collegandola ad un nodo Watch Image, viene visualizzata un'immagine desaturata.
Si può avere il controllo su come desaturare questa immagine in base ai valori soglia per rosso, verde e blu. Questi vengono definiti dagli input nel nodo Grayscale.Grayscale. Notare che l'immagine risulta abbastanza attenuata perché il valore verde è impostato su 0 nel dispositivo di scorrimento.
Modificare i dispositivi di scorrimento superiore e inferiore in modo che il valore 0 e il dispositivo di scorrimento centrale abbiano un valore pari a 1. In questo modo, si ottiene un'immagine desaturata più leggibile.
Utilizzare l'immagine desaturata e applicarvi un altro filtro. L'immagine desaturata presenta un certo livello di contrasto, quindi si cercherà di verificare il rilevamento degli spigoli.
Aggiungere un nodo SobelEdgeDetector.SobelEdgeDetector all'area di disegno.
Collegarlo a BaseUsingCopyPartialFilter.Apply e collegare l'immagine desaturata all'input image di questo nodo.
SobelEdgeDetector ha evidenziato gli spigoli in una nuova immagine.
Se si esegue lo zoom avanti, il rilevamento degli spigoli ha richiamato i contorni delle bolle con i pixel. La libreria AForge dispone di strumenti per ottenere risultati simili a questi e creare la geometria di Dynamo. Verranno descritti nel prossimo esercizio.
Dopo aver introdotto alcune operazioni di base per l'elaborazione di immagini, si utilizzerà un'immagine per gestire la geometria di Dynamo. A livello elementare, in questo esercizio si intende eseguire una "traccia dal vivo" di un'immagine utilizzando AForge e Dynamo. Si tratta di un esercizio semplice in cui vengono estratti rettangoli da un'immagine di riferimento, ma sono disponibili strumenti in AForge per operazioni più complesse. Si utilizzerà 02-RectangleCreation.dyn dei file degli esercizi scaricati.
Con il nodo File Path, accedere a grid.jpg nella cartella degli esercizi.
Collegare le serie rimanenti di nodi riportati sopra per mostrare una griglia parametrica dell'itinerario.
Nel passaggio successivo, si desidera fare riferimento ai quadrati bianchi presenti nell'immagine e convertirli nella geometria di Dynamo effettiva. AForge dispone di molti potenti strumenti di visione artificiale. Si utilizzerà uno strumento particolarmente importante per la libreria chiamato BlobCounter.
Dopo aver aggiunto uno strumento BlobCounter all'area di disegno, è necessario un modo per elaborare l'immagine (simile allo strumento BaseFilter.Apply nell'esercizio precedente).
Purtroppo il nodo Process Image non è immediatamente visibile nella libreria di Dynamo. Ciò è dovuto al fatto che la funzione potrebbe non essere visibile nel codice sorgente di AForge. Per risolvere questo problema, occorrerà trovare una soluzione alternativa.
Aggiungere un nodo Python all'area di disegno e aggiungere il seguente codice al nodo Python. Questo codice importa la libreria AForge, quindi elabora l'immagine importata.
Collegando l'output image all'input del nodo Python, si ottiene un risultato AForge.Imaging.BlobCounter dal nodo Python.
Nei passaggi successivi sono illustrati alcuni suggerimenti che dimostrano familiarità con l'API di creazione delle immagini AForge. Non è necessario apprenderli tutti per far funzionare Dynamo. È qualcosa di più di una dimostrazione dell'utilizzo delle librerie esterne con tutta la flessibilità dell'ambiente Dynamo.
Collegare l'output dello script di Python a BlobCounterBase.GetObjectRectangles. In questo modo vengono letti gli oggetti in un'immagine, in base ad un valore soglia, e vengono estratti rettangoli quantificati dallo spazio in pixel.
Aggiungendo un altro nodo Python all'area di disegno, collegarlo a GetObjectRectangles e immettere il codice riportato di seguito. Così verrà creato un elenco organizzato di oggetti di Dynamo.
Trasporre l'output del nodo Python del passaggio precedente. Vengono creati quattro elenchi, ciascuno dei quali rappresenta X, Y, larghezza e altezza per ciascun rettangolo.
Utilizzando Code Block, organizzare i dati in una struttura che contiene il nodo Rectangle.ByCornerPoints (codice riportato di seguito).
È presente una serie di rettangoli che rappresentano i quadrati bianchi presenti nell'immagine. Attraverso la programmazione, è stato fatto qualcosa (all'incirca) simile a una traccia dal vivo in Illustrator.
Tuttavia, occorre ancora fare un po' di ordine. Se si esegue lo zoom avanti, è possibile vedere che sono presenti alcuni piccoli rettangoli indesiderati.
Successivamente, verranno scritti dei codici per eliminare i rettangoli indesiderati.
Inserire un nodo Python tra il nodo GetObjectRectangles e un altro nodo Python. Il codice del nodo è riportato di seguito e rimuove tutti i rettangoli che si trovano al di sotto di una determinata dimensione.
Con i rettangoli superflui eliminati, solo per divertimento, creare una superficie da questi rettangoli ed estruderli ad una distanza basata sulle loro aree.
Infine, modificare l'input both_sides in false; si ottiene un'estrusione in una direzione. Immergendo questo elemento nella resina, si ottiene un tavolo di design.
Questi sono esempi di base, ma i concetti qui delineati sono trasferibili a straordinarie applicazioni reali. La visione artificiale può essere utilizzata per un'intera serie di processi. Per citarne alcuni: lettori di codici a barre, corrispondenza della prospettiva, mappatura della proiezione e realtà aumentata. Per argomenti più avanzati su AForge correlati a questo esercizio, leggere questo articolo.
Logo/Immagine
Nome