# Границы зазора

<figure><img src="/files/nXoHEmYt4tY5soyssZHF" alt=""><figcaption></figcaption></figure>

Разработка кинематических границ для проверки зазора — важная часть проектирования железной дороги. С помощью Dynamo можно создавать тела для определения таких границ без необходимости в создании сложных элементов конструкции коридора и управления ими.

## Цель

> :dart: Использование блока профиля транспортного средства для создания 3D-тел, определяющих границы зазора, вдоль коридора.

## Основные этапы

> * Работа с характерными линиями коридора
> * Преобразование геометрии при переходе между системами координат
> * Создание тел путем лофтинга
> * Управление поведением узла с помощью параметров переплетения.

## Совместимость версий

{% hint style="success" %}
Этот график будет работать в **Civil 3D 2020** и более поздних версиях.
{% endhint %}

## Набор данных

Сначала скачайте файлы примеров ниже, а затем откройте файл DWG и график Dynamo.

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

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

## Решение

Ниже представлен обзор логики, используемой в этом графике.

> 1. Получение характерных линий из заданной базовой линии коридора.
> 2. Создание систем координат вдоль характерной линии коридора с требуемым интервалом.
> 3. Преобразование геометрии блока профиля в соответствии с системой координат.
> 4. Лофтинг тела между профилями.
> 5. Создание тел в Civil 3D.

Приступим!

### Получение данных коридора

Сначала необходимо получить данные коридора. Выберем модель коридора по имени, получим нужную базовую линию в коридоре, а затем извлечем характерную линию в пределах базовой линии по коду точки.

<figure><img src="/files/4Udpk4YNvTfqN2mVYliK" alt=""><figcaption><p>Выбор коридора, базовой линии и характерной линии</p></figcaption></figure>

### Создание систем координат

Теперь создадим **системы координат** вдоль характерных линий коридора между заданным начальным и конечным пикетами. Эти системы координат будут использоваться для выравнивания геометрии блока профиля транспортного средства по коридору.

{% hint style="info" %}
Если вы еще не знакомы с системами координат, см. раздел [Вектор, плоскость и система координат](/ru/5_essential_nodes_and_concepts/5-2_geometry-for-computational-design/2-vectors.md).
{% endhint %}

<figure><img src="/files/tLwFah78sMRUstgT3q34" alt=""><figcaption><p>Получение систем координат, расположенных вдоль характерных линий коридора</p></figcaption></figure>

> 1. Обратите внимание на **XXX** в правом нижнем углу узла. Это означает, что для параметров переплетения узла задано значение *Векторное произведение*. Это необходимо для создания систем координат с одинаковыми значениями пикетов для обеих характерных линий.

{% hint style="info" %}
Если вы еще не знакомы с переплетением узлов, см. раздел [Что такое список](/ru/5_essential_nodes_and_concepts/5-4_designing-with-lists/1-whats-a-list.md).
{% endhint %}

### Преобразование геометрии блока

Теперь необходимо каким-то образом создать массив профилей транспортных средств вдоль характерных линий. Для этого преобразуем геометрию из определения блока профиля транспортного средства с помощью узла **Geometry.Transform**. Эту концепцию сложно представить визуально, так что прежде чем перейти к узлам, посмотрим на график, чтобы понять, что именно произойдет.

<figure><img src="/files/Tpo7GDs4RfC9ez3ldxEh" alt=""><figcaption><p>Визуализация преобразования геометрии при переходе между системами координат.</p></figcaption></figure>

По сути, мы извлекаем геометрию Dynamo из *одного* определения блока, а затем перемещаем и поворачиваем ее, в процессе создавая массив вдоль характерной линии. Неплохо, да? Ниже представлена последовательность узлов.

<figure><img src="/files/gF1DngECRtu9ygLNMxvV" alt=""><figcaption></figcaption></figure>

> 1. Здесь выполняется получение определения блока из документа.
> 2. Эти узлы извлекают геометрию Dynamo для объектов в блоке.
> 3. Эти узлы, по сути, определяют *исходную* систему координат, в которой геометрия находится до преобразования.
> 4. Наконец, в этом узле выполняется собственно преобразование геометрии.
> 5. Обратите внимание на *длинное* переплетение в этом узле.

Вот что мы получаем в Dynamo.

<figure><img src="/files/VTgChFB88JISZqDhB40b" alt=""><figcaption><p>Геометрия блока профиля транспортного средства после преобразования</p></figcaption></figure>

### Создание тел

У нас для вас хорошая новость. Самое сложное позади! Все, что осталось сделать, — создать тела между профилями. Это можно легко сделать с помощью узла **Solid.ByLoft**.

<figure><img src="/files/ebQUOJstcHu7eg8jkXvO" alt="" width="325"><figcaption></figcaption></figure>

Результат можно посмотреть здесь. Помните, что это тела Dynamo, а значит, их все еще нужно создать в Civil 3D.

<figure><img src="/files/3n8jp08bIjpM0PYOw5da" alt=""><figcaption><p>Тела Dynamo после лофтинга</p></figcaption></figure>

### Вывод тел в Civil 3D

Последний шаг — вывод сгенерированных тел в пространство модели. Кроме того, мы присвоим им цвет, чтобы сделать их более заметными.

<figure><img src="/files/NzcxlnZBikUpF5KGJwzO" alt=""><figcaption><p>Вывод тел в Civil 3D</p></figcaption></figure>

### Результат

Ниже приведен пример запуска графика с помощью **проигрывателя Dynamo**.

<figure><img src="/files/nXoHEmYt4tY5soyssZHF" alt=""><figcaption><p>Запуск графика с помощью проигрывателя Dynamo и просмотр результатов в Civil 3D</p></figcaption></figure>

{% hint style="info" %}
Если вы еще не знакомы с проигрывателем Dynamo, см. раздел [Проигрыватель Dynamo](/ru/dynamo-for-civil-3d/dynamo-player.md).
{% endhint %}

> :tada: Миссия выполнена!

## Идеи

Вот несколько вариантов того, как можно расширить возможности этого графика.

{% hint style="info" %}
Добавление возможности использования **разных диапазонов пикетов** отдельно для каждого пути.
{% endhint %}

{% hint style="info" %}
**Разбивка тел** на более мелкие сегменты, которые можно проанализировать отдельно на предмет конфликтов.
{% endhint %}

{% hint style="info" %}
Проверка того, **не пересекаются ли тела границы с элементами**, и выделение цветом тех, которые пересекаются.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/ru/dynamo-for-civil-3d/sample-workflows/rail/clearance-envelope.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
