вторник, 30 марта 2010 г.

Civil 3D 2010 road signs table или голь на выдумки хитра. Оформление ведомости дорожных знаков в AutoCAD Civil 3D 2010


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


По идее, не мешало бы иметь такой объект сивила – знак, но нет его и будет ли-не известно, поэтому пользуемся тем, что есть – сетью. На мой взгляд потенциал инструмента СЕТИ в сивиле гораздо больше, чем проектирование канализции и ливнёвки. Почему именно сети? Потому, что их можно привязать к трассе, поверхности и прочим объектам сивила. Кроме этого, есть возможность задавать пользовательские свойства. А нам того и надо.
1)    При помощу part builder’а (конструктора элементов) создаём элемент который в последующем будет нам давать нужные параметры в таблицу, выглядеть как знак на плане, профиле и разрезе.



Дальше больше. Задаём параметры которые будут показывать тип знака (прдупреждающий, запрещающий и т.д.).
Если мы попробуем его создать через параметры модели или параметры размеров, то скорее всего у нас ничего не выйдет, поэтому  делаем следующее: (за метод благодарю некоего
Anonymous http://blog.civil3dreminders.com/2009/04/pipe-network-custom-parameters.html) Открываем файл AeccPartParamCfg.xml (C:\ProgramData\Autodesk\C3D 2010\rus\Pipes Catalog\Aecc Shared Content), и добавляем необходимые параметры.




Я задавал следующие параметры: Количество стоек (список), Тип стойки (список), Значение переменной для каждого типа знака (Предупреждающие, Запрещающие и т.д.), Количество (список/константа…), Размер знака по вертикали , Размер знака по горизонтали.
Почему я создал для каждой категории знака свой параметр, со своим списком- потому, что мне так было легче получать информацию в таблицу.
Теперь при создании нового параметра размера, наши переменные появятся в списке доступных.
 

Далее задаём списки значений и константы для созданных  нами переменных.



Здесь может быть множество вариантов, всё зависит от того, на сколько универсальным будет ваш элемент.
2)    Пришло время работы в плане. Начнём с внешнего вида. Я создал сеть в которую включил свой элемент знака, а уж затем редактировал метки и стиль.
Создаём сеть наших знаков так же, как и обычную сеть, не забывая в списке элементов указать наш знак.


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


3)    Теперь создаём стиль для отображения в плане – используем стандартный блок.


Если необходимо, настраиваем вид на модели, профиле и сечении (ведь не зря же мы конструировали знак похожим на реальный)
Настраиваем стиль меток колодца таким образом, чтобы он отображал тип знака. Здесь я ещё не всё продумал, если в метке ставить сразу все свойства знака, то будет каша.


В принципе, можно и из нескольких компонентов сформировать метку.


4)    Ну и завершающий этап – создание своего стиля таблицы для отображения всей нужной инфы по знакам. Для этого создаём стиль таблицы для колодцев.


Обратите внимание, первый столбец мы никуда деть не можем, да нам, в принципе, и не надо. Следующие два столбца показывают пикет. Если знак справа – в крайней левой колонке нули, а в правой, пикет, и наоборот. Открываем построитель выражений и создаём условия по которым программа будет ставить нули в ячейку, в которой получается отрицательное значение смещение колодца (думаю, тут всё понятно)


5)    Заключительный момент – построение таблицы: внешний вид придётся доводить вручную.


Для того, чтобы привести таблицу в стандартный вид, достаточно её взорвать и удалить лишнее. Т.е. это следует делать уже на этапе оформления проектной документации, т.к. получаем просто набор кадовских элементов – никакой динамики.


В принципе, можно подсчитать кол-во знаков руками из таблицы, но можно сделать это проще. На этапе создания сети нужно задать для знака т.н. статью расхода.



Итак, мы создали динамический объект ДОРОЖНЫЙ ЗНАК, можем вывести таблицу по сети состоящей из знаков и подсчитать общее количество. При этом мы можем перемещать знаки без необходимости отслеживать изменение пикета, получать таблицу и кол-во знаков по отдельным трассам.
Если кто, то использует более простой и эффектиный метод, пишите, буду рад.

3 комментария:

  1. I'd use a blocks for the signs and utilize the EATTEXT command to compile the table for the signs. You could even use Multiview blocks to get the 3D view of the signs.

    ОтветитьУдалить
  2. I missed you needed the station, I'd write a small program to add the station to an attribute in the sign block. I thought I did a post on that, but I guess I didn't. Maybe I'll do it.

    ОтветитьУдалить
  3. If You do that, It'll be best solution, especially for tables w/ different headers (w/ a lot of cells).

    ОтветитьУдалить