Типы укреплений в зависимости от продольного уклона по кювету. Часть 1. SAC

Для защиты откосов от разрушения производится их укрепление засевом трав, тяжелыми грунтами, органическими вяжущими, сборными бетонными конструкциями, габионами, конструкциями с применением георешетки и так далее. САПР на то и САПР, чтобы уметь как-то более менее автоматически решать такие задачи, как, например, определение участков применения различных материалов укрепления в зависимости от продольных уклонов в кювете.

Итак, нам нужно, чтобы Civil 3D:
1. определил участки по типам укрепления

2. посчитал объемы по укреплениям

На самом деле, эту задачу с помощью Subassembly Composer решил Nick Zed, чей видео канал на YouTube я всем очень рекомендую.



Идея очень крутая, можно ее немного развить, добавив расчет материалов. 

Часть 1. Subassembly Composer (SAC)

Для того, чтобы заставить C3D определять типы укреплений откосов, нужно, чтобы элемент конструкции сравнивал уклон продольного профиля с табличными значениями: 

В стандартной библиотеке ничего такого не нашлось, поэтому делаем сами, вооружившись советом Nick Zed использовать функцию Grade для класса Baseline

1. Запускаем SAC, создаем новый файл
2. Определяем переменную CurrentCode. Берем инструмент Define Variable в группе Miscellaneous и бросаем прямо на флоучарт



Тип переменной String (строка), в поле Default вводите значение для переменной по умолчанию. Это значение будет изменяться в зависимости от условий и именно от него будут зависеть коды элементов. 

3. Добавляем проверку первого условия. Хватаем инструмент Decision из группы Workflow и добавляем в схему:



В поле Condition пишем math.abs(Baseline.Grade)>=0.01. В переводе с машинного языка на человеческий это означает: "Продольный уклон больше или равен 10‰". Так как уклон у нас может быть как положительным, так и отрицательным, мы берем значение по модулю с помощью оператора math.abs

4. Устанавливаем значение для случая, если первое условие неверно (уклон меньше). Добавляем на схему инструмент Set Variable Value и тянем к нему стрелочку из правого бока, ветка False


Программа пойдет по ветке False и присвоит переменной CurrentCode значение "Кювет - без укрепления". 

5. Если уклон больше или равен 10‰, то надо проверять, больше ли он 30‰. Поэтому по сценарию True надо ставить условие math.abs(Baseline.Grade)>=0.03



Кстати, обратите внимание, что вы можете менять метку для истины и лжи. False/True, конечно, привычный программиста синтаксис, но схему можно привести к виду, более понятному для простых смертных.

6. Для случая, когда уклон не больше 30 промилле, даем переменной CurrentCode значение "Кювет - щебень и посев трав". Если уклон больше 30, то по аналогии вставляем проверку 50‰.

7. Когда мы сделали проверку уклонов и расписали коды в зависимости от значения, можно заняться собственно кюветом. Сначала зададим следующие параметры:

- Side, это свойство всегда есть, просто задайте значение по умолчанию 
- Внутренний уклон
- Внешний улон
- Глубина кювета
- Ширина дна

Чтобы создать параметр, щелкните на текст Create parameter. Это больше похоже на статусную строку, чем на кнопку, но тем не менее это она. Обратите внимание на тип параметра. У ширины и глубины это вещественное значение Double, а у откосов - Slope. В столбце DisplayName задается, как будет выглядеть параметр уже при использовании элемента в C3D.  

8. На закладке Target Parameters определим, что у нас будет являться целевыми объектами. По моей задумке, это будет поверхность (тип surface) для звена внешнего откоса и собственный профиль кювета (тип elevation).



9. Теперь, наконец, можно нарисовать параметрическую конструкцию, не зря же возились с параметрами. Берем инструмент Sequence из группы Miscellaneous и ставим на флоучарт внизу композиции. Двойной клик на элементе и мы попадем внутрь блока, где создадим последовательность геометрических построений. Начинаем с точки - Point в группе Geometry



Затем так же добавляем вторую точку, построенную по откосу и смещению отметки (Slope and Delta Y), чтобы между ними построилось звено, ставим галочку Add Link, используем геометрические и целевые параметры, добавляем код. Все на картинке:



Для третьей точки и второго звена настройки такие:

Последнее звено конструкции должно выходить на рельеф: 




Сохраняйте файл. 

Комментарии