# Sagoma dello spazio libero

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-08eb8cd428425a923af595cea18442b7936ffbdf%2FRail_ClearanceEnvelope_Player.gif?alt=media" alt=""><figcaption></figcaption></figure>

Lo sviluppo di sagome cinematiche per la convalida dello spazio libero è una parte importante della progettazione ferroviaria. Dynamo può essere utilizzato per generare solidi per la sagoma anziché creare e gestire sottoassiemi complessi di modellatori per eseguire il processo.

## Scopo

> :dart: Utilizzare un blocco del profilo del veicolo per generare solidi 3D della sagoma dello spazio libero lungo un modellatore.

## Concetti chiave

> * Utilizzo delle linee caratteristiche del modellatore
> * Trasformazione della geometria tra sistemi di coordinate
> * Creazione di solidi tramite loft
> * Controllo del funzionamento dei nodi con le impostazioni di collegamento

## Compatibilità delle versioni

{% hint style="success" %}
Questo grafico verrà eseguito su **Civil 3D 2020** e versioni successive.
{% endhint %}

## Set di dati

Iniziare scaricando i file di esempio riportati qui sotto, quindi aprendo il file DWG e il grafico di Dynamo.

{% file src="<https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-d76a75f3270ab6bfb2f4e8ab798c5772e44f1e70%2FRail_ClearanceEnvelope%20(1).dyn?alt=media>" %}

{% file src="<https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-555200ae7db1ec786f8084e35bd0a17f3fbdc8dc%2FRail_ClearanceEnvelope.dwg?alt=media>" %}

## Soluzione

Ecco una panoramica della logica di questo grafico.

> 1. Ottenere le linee caratteristiche dalla linea base del modellatore specificata
> 2. Generare sistemi di coordinate lungo la linea caratteristica del modellatore con la spaziatura desiderata
> 3. Trasformare la geometria del blocco del profilo in sistemi di coordinate
> 4. Eseguire il loft di un solido tra i profili
> 5. Creare i solidi in Civil 3D

Procediamo!

### Recupero di dati sul modellatore

Il primo passaggio consiste nell'ottenere i dati sul modellatore. Selezionare il modello di modellatore in base al nome, ottenere una linea base specifica all'interno del modellatore e ottenere una linea caratteristica all'interno della linea base secondo il relativo codice punto.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-ac149803f2fec120b34fecefe697b2cb5598c462%2FRail_ClearanceEnvelope_GetCorridorData.png?alt=media" alt=""><figcaption><p>Selezione del modellatore, della linea base e della linea caratteristica</p></figcaption></figure>

### Generazione di sistemi di coordinate

Ora si procederà alla generazione di **sistemi di coordinate** lungo le linee caratteristiche del modellatore tra una progressiva iniziale e una progressiva finale. Questi sistemi di coordinate verranno utilizzati per allineare la geometria del blocco del profilo del veicolo al modellatore.

{% hint style="info" %}
Se non si conoscono i sistemi di coordinate, consultare la sezione [2-vectors](https://primer2.dynamobim.org/it/5_essential_nodes_and_concepts/5-2_geometry-for-computational-design/2-vectors "mention").
{% endhint %}

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-f005dd000c839530bb8e664b761d858a45c2ebe9%2FRail_ClearanceEnvelope_CreateCoordinateSystems.png?alt=media" alt=""><figcaption><p>Acquisizione di sistemi di coordinate lungo le linee caratteristiche del modellatore</p></figcaption></figure>

> 1. Notare il valore **XXX** nell'angolo inferiore destro del nodo. Ciò significa che le impostazioni di collegamento del nodo sono impostate su *Globale*, operazione che è necessaria per generare i sistemi di coordinate in corrispondenza degli stessi valori di progressiva per entrambe le linee caratteristiche.

{% hint style="info" %}
Se non si conosce il collegamento di nodi, consultare la sezione [1-whats-a-list](https://primer2.dynamobim.org/it/5_essential_nodes_and_concepts/5-4_designing-with-lists/1-whats-a-list "mention").
{% endhint %}

### Trasformazione della geometria del blocco

Ora è necessario creare in qualche modo una serie di profili di veicoli lungo le linee caratteristiche. Si procederà alla trasformazione della geometria dalla definizione di blocco del profilo del veicolo utilizzando il nodo **Geometry.Transform**. Questo è un concetto complesso da visualizzare, quindi prima di osservare i nodi, ecco un grafico che mostra cosa succederà.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-e303adc517b5bf2951a8d04ae1c2675b1842eb53%2FRail_ClearanceEnvelope_TransformAnimation.gif?alt=media" alt=""><figcaption><p>Una visualizzazione della trasformazione della geometria tra sistemi di coordinate</p></figcaption></figure>

Quindi essenzialmente si tratta di "prendere" la geometria di Dynamo da una *singola* definizione di blocco e di spostarla/ruotarla, creando al contempo una serie lungo la linea caratteristica. Forte! Ecco come appare la sequenza di nodi.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-44c2996470bb14d4a59c7a418708593d00194ab2%2FRail_ClearanceEnvelope_Transform.png?alt=media" alt=""><figcaption></figcaption></figure>

> 1. In questo modo la definizione di blocco viene ottenuta dal documento.
> 2. Questi nodi ottengono la geometria di Dynamo degli oggetti all'interno del blocco.
> 3. Questi nodi definiscono essenzialmente il sistema di coordinate *da* cui si sta trasformando la geometria.
> 4. Infine, questo nodo esegue il lavoro effettivo di trasformazione della geometria.
> 5. Notare il collegamento *Più lungo* su questo nodo.

Ed ecco cosa si ottiene in Dynamo.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-28cd3b3dcb9a5f88df9b5bf620e61e6b087f89d9%2FRail_ClearanceEnvelope_Dynamo_Profiles.png?alt=media" alt=""><figcaption><p>La geometria del blocco del profilo del veicolo dopo la trasformazione</p></figcaption></figure>

### Generazione di solidi

Buone notizie! Il lavoro duro è finito. Ora è sufficiente generare solidi tra i profili. Ciò è facilmente possibile con il nodo **Solid.ByLoft**.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-ba0723c6e309707fd12e50c89983205a4a9725be%2FRail_PlaceTies_SolidByLoft.png?alt=media" alt="" width="325"><figcaption></figcaption></figure>

Ed ecco il risultato. Tenere presente che questi sono solidi di Dynamo, ma è comunque necessario crearli in Civil 3D.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-28e91b1c436018bf6ecb7afe18ac32f11c78da6a%2FRail_ClearanceEnvelope_Dynamo_Solids.png?alt=media" alt=""><figcaption><p>I solidi di Dynamo dopo il loft</p></figcaption></figure>

### Output di solidi in Civil 3D

Il passaggio finale consiste nell'eseguire l'output dei solidi generati nello spazio modello. Verrà anche applicato del colore per renderli facilmente visibili.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-bf5954f60f7c14543cee49ee5d1eefcd4b9648d0%2FRail_ClearanceEnvelope_SolidsToC3D.png?alt=media" alt=""><figcaption><p>Output dei solidi in Civil 3D</p></figcaption></figure>

### Risultato

Di seguito è riportato un esempio di esecuzione del grafico mediante il **Lettore Dynamo**.

<figure><img src="https://977504712-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjugM499QmKp4nEs1EdU%2Fuploads%2Fgit-blob-08eb8cd428425a923af595cea18442b7936ffbdf%2FRail_ClearanceEnvelope_Player.gif?alt=media" alt=""><figcaption><p>Esecuzione del grafico mediante il Lettore Dynamo e visualizzazione dei risultati in Civil 3D</p></figcaption></figure>

{% hint style="info" %}
Se non si conosce il Lettore Dynamo, consultare la sezione [dynamo-player](https://primer2.dynamobim.org/it/dynamo-for-civil-3d/dynamo-player "mention").
{% endhint %}

> :tada: Missione compiuta!

## Idee

Ecco alcune idee su come espandere le funzionalità di questo grafico.

{% hint style="info" %}
Aggiungere la possibilità di utilizzare **intervalli di progressive differenti** separatamente per ogni binario.
{% endhint %}

{% hint style="info" %}
**Dividere i solidi** in segmenti più piccoli che possono essere analizzati singolarmente per ricercare eventuali interferenze.
{% endhint %}

{% hint style="info" %}
Verificare se i solidi della sagoma **si intersecano con gli oggetti** e colorano quelli che incontrano.
{% endhint %}
