> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/cs/dynamo-for-civil-3d/sample-workflows/rail/clearance-envelope.md).

# Vůle obalových křivek

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

Vývoj kinematických obálek pro ověření průjezdnosti je důležitou součástí návrhu železnice. Aplikaci Dynamo lze použít k vytvoření těles pro obalovou křivku místo vytváření a správy složitých podsestav koridoru pro tuto úlohu.

## Cíl

> :dart: Pomocí bloku profilu vozidla vygenerujte 3D tělesa s volným prostorem podél koridoru.

## Klíčové koncepty

> * Práce s návrhovými liniemi koridoru
> * Transformace geometrie mezi souřadnicovými systémy
> * Vytvoření těles šablonováním
> * Řízení chování uzlu pomocí nastavení vázání

## Kompatibilita verzí

{% hint style="success" %}
Tento graf bude funkční v aplikaci \*\*Civil 3D 2020\*\* a vyšších verzích.
{% endhint %}

## Datová sada

Začněte stažením níže uvedených vzorových souborů a poté otevřete soubor DWG a graf aplikace Dynamo.

{% file src="/files/BSTCoIC1CwX4hAbkTwWO" %}

{% file src="/files/XTt63DqMjWdYof3wjglJ" %}

## Řešení

Zde je uveden přehled logiky tohoto grafu.

> 1. Získejte návrhové linie ze zadané základny koridoru.
> 2. Vytvořte souřadnicové systémy podél návrhové linie koridoru s požadovanou roztečí.
> 3. Transformujte geometrii bloku profilu do souřadnicových systémů.
> 4. Šablonujte těleso mezi profily.
> 5. Vytvořte tělesa v aplikaci Civil 3D.

Pojďme na to!

### Získání dat koridoru

Prvním krokem je získání dat koridoru. Model koridoru vybereme podle jeho názvu, v rámci koridoru vybereme konkrétní základnu a poté získáme návrhovou linii v rámci základny podle jejího kódu bodu.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-ac149803f2fec120b34fecefe697b2cb5598c462%2FRail_ClearanceEnvelope_GetCorridorData.png?alt=media" alt=""><figcaption><p>Výběr koridoru, základny a návrhové linie</p></figcaption></figure>

### Vytvoření souřadnicových systémů

Nyní vytvoříme **souřadnicové systémy** podél návrhových linií koridoru mezi daným počátečním a koncovým staničením. Tyto souřadnicové systémy se použijí k zarovnání geometrie bloku profilu vozidla s koridorem.

{% hint style="info" %}
Pokud jsou pro vás souřadnicové systémy novinkou, přečtěte si část \[2-vectors.md]\(../../../5\\\_essential\\\_nodes\\\_and\\\_concepts/5-2\\\_geometry-for-computational-design/2-vectors.md "mention") .
{% endhint %}

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-f005dd000c839530bb8e664b761d858a45c2ebe9%2FRail_ClearanceEnvelope_CreateCoordinateSystems.png?alt=media" alt=""><figcaption><p>Získání souřadnicových systémů podél návrhových linií koridoru</p></figcaption></figure>

> 1. Všimněte si malých písmen **XXX** v pravém dolním rohu uzlu. Tato písmena znamenají, že nastavení vázání uzlu je nastaveno na hodnotu *Vektorový součin*, což je nutné k vytvoření souřadnicových systémů ve stejných hodnotách staničení pro obě návrhové linie.

{% hint style="info" %}
Pokud je vázání uzlu pro vás novinkou, přečtěte si část \[1-whats-a-list.md]\(../../../5\\\_essential\\\_nodes\\\_and\\\_concepts/5-4\\\_designing-with-lists/1-whats-a-list.md "mention") .
{% endhint %}

### Transformace geometrie bloku

Nyní je třeba nějakým způsobem vytvořit pole profilů vozidel podél návrhových linií. Provedeme transformaci geometrie z definice bloku profilu vozidla pomocí uzlu **Geometry.Transform**. Tento koncept je složitý na vizualizaci, takže než se podíváme na uzly, zde je grafické znázornění toho, co se stane.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-e303adc517b5bf2951a8d04ae1c2675b1842eb53%2FRail_ClearanceEnvelope_TransformAnimation.gif?alt=media" alt=""><figcaption><p>Vizualizace transformace geometrie mezi souřadnicovými systémy.</p></figcaption></figure>

V podstatě tedy přebíráme geometrii aplikace Dynamo z *jedné* definice bloku a přesouváme/otáčíme ji, přičemž vytváříme pole podél návrhové linie. Skvělá věc! Takto vypadá posloupnost uzlů.

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

> 1. Tento uzel získá definici bloku z dokumentu.
> 2. Tyto uzly získají geometrii objektů aplikace Dynamo v rámci bloku.
> 3. Tyto uzly v podstatě definují souřadnicový systém, *ze kterého* transformujeme geometrii.
> 4. A konečně tento uzel provádí vlastní transformaci geometrie.
> 5. Všimněte, že v tomto uzlu je definováno vázání *Nejdelší*.

A tady vidíme výsledek v aplikaci Dynamo.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-28cd3b3dcb9a5f88df9b5bf620e61e6b087f89d9%2FRail_ClearanceEnvelope_Dynamo_Profiles.png?alt=media" alt=""><figcaption><p>Geometrie bloku profilu vozidla po transformaci</p></figcaption></figure>

### Vytvoření těles

Máme pro vás skvělou zprávu. To nejtěžší je za námi. Nyní je třeba pouze vygenerovat tělesa mezi profily. Toho snadno dosáhneme pomocí uzlu **Solid.ByLoft**.

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

Zde je výsledek. Nezapomeňte, že se jedná o tělesa aplikace Dynamo – musíme je ještě vytvořit v aplikaci Civil 3D.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-28e91b1c436018bf6ecb7afe18ac32f11c78da6a%2FRail_ClearanceEnvelope_Dynamo_Solids.png?alt=media" alt=""><figcaption><p>Tělesa aplikace Dynamo po šablonování</p></figcaption></figure>

### Výstup těles do aplikace Civil 3D

Posledním krokem je vytvoření vygenerovaných těles v modelovém prostoru. Také jim přiřadíme barvu, aby byly dobře viditelné.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-bf5954f60f7c14543cee49ee5d1eefcd4b9648d0%2FRail_ClearanceEnvelope_SolidsToC3D.png?alt=media" alt=""><figcaption><p>Výstup těles do aplikace Civil 3D</p></figcaption></figure>

### Výsledek

Zde je příklad spuštění grafu pomocí **Přehrávače skriptů Dynamo**.

<figure><img src="https://3694670440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVszS6grrxDyBMnEEr49a%2Fuploads%2Fgit-blob-59791312c3ed1be09fc220208f2fe40e9390f9ae%2FRail_ClearanceEnvelope_Player.gif?alt=media" alt=""><figcaption><p>Spuštění grafu pomocí Přehrávače skriptů Dynamo a zobrazení výsledků v aplikaci Civil 3D</p></figcaption></figure>

{% hint style="info" %}
Pokud je pro vás Přehrávač skriptů Dynamo novinkou, přečtěte si část \[dynamo-player.md]\(../../dynamo-player.md "mention").
{% endhint %}

> :tada: Úkol splněn!

## Nápady

Zde je několik nápadů, jak byste mohli rozšířit možnosti tohoto grafu.

{% hint style="info" %}
Přidejte možnost používat \*\*různé rozsahy staničení\*\* pro každou trasu zvlášť.
{% endhint %}

{% hint style="info" %}
\*\*Rozdělte tělesa\*\* na menší segmenty, které by bylo možné jednotlivě analyzovat z hlediska kolizí.
{% endhint %}

{% hint style="info" %}
Zkontrolujte, zda se obálka těles \*\* protíná s návrhovými liniemi\*\* a vybarvěte ty, které se střetávají.
{% endhint %}
