Некорректные штриховки
#Civil3D #штриховки
1. Понятие некорректной штриховки#В результате ошибок в работе пользователя, сбоя программного обеспечения или неправильной работы модулей экспорта из сторонних программ (например ArchiCAD) в AutoCAD (Civil 3D) могут появиться штриховки, которые можно назвать некорректными.
Под этим термином в данном цикле статей мы будем иметь ввиду те штриховки, площадь которых не определяется стандартными свойствами Civil 3D (поле "Площадь" на палитре "Свойства" отсутствует).
Это влечет за собой следующие проблемы:
штриховки с неопределяемой площадью не могут быть учтены в автоматически формируемых ведомостях;
восстановленный контур некорректной штриховки также является некорректным и не может служить, например, границей нарезки поверхности, что необходимо при подготовке 3D-модели.
Корректная штриховка.png
Рис. 1. Пример корректной штриховки. Штриховка выделена, площадь отображается
Некорректная штриховка.png
Рис. 2. Пример некорректной штриховки. Штриховка выделена, поле "Площадь" отсутствует.
2. Выявление некорректных штриховок#Для того, чтобы исправить некорректные штриховки, их надо сначала найти.
Внешне они выглядят вполне нормально, пока не появляется необходимость использовать их в ведомости покрытий или для создания поверхности по определенному типу покрытия.
Более того, некоторые скрипты по автоматическому формированию ведомостей могут такую штриховку просто пропустить, проигнорировать, не выдав никакого сообщения об ошибке, и факт того, что данный участок благоустройства оказался не учтён, может вскрыться уже после выдачи документации.
Чтобы сюрприз не случился в последний момент, разработан инструмент по выявлению некорректных штриховок.
Это скрипт Dynamo Выявление штриховок с неотображаемой площадью:
C:\YandexDisk\Itemika Share\Civil 3D\04_Скрипты\01_ГП\Штриховки\01_Выявление_штриховок_с_неотображаемой_площадью.dyn
Скрипт выявление некорректных штриховок.png
Рис. 3. Скрипт в Проигрывателе Dynamo
После запуска скрипта происходит анализ всех штриховок модели, проверяется возможность подсчитать площадь каждой из них. При невозможности этого действия, штриховка считается некорректной и выделяется.
После завершения работы скрипта, мы увидим в командной строке сообщение о количестве найденных штриховок с неопределяемой площадью. Все найденные штриховки будут выделены на чертеже.
При отсутствии штриховок с неопределяемой площадью, мы также получим сообщение об этом.
Выявление некорректных штриховок. Результат работы скрипта.png
Рис. 4. Результат работы скрипта. Штриховки выделены, выведено сообщение о количестве найденных штриховок с неопределяемой площадью.
В случае найденных некорректных штриховок (с неопределяемой площадью) необходимо предпринять дальнейшие действия по исправлению ситуации. Этому посвящены следующие скрипты серии.
[!note]
Если некорректных штриховок обнаружено множество (десятки-сотни), рекомендуется перенести их в отдельный чистый файл на шаблоне ITEM_ГП и дальнейшие действия по исправлению ситуации производить в нем. После чего вернуть исправленные штриховки в исходный файл.
Скрипт по поиску штриховок с неотображаемой площадью, нашел нам все проблемные штриховки. Но причин у этой проблемы может быть несколько:
-
Наличие самопересечений и самоналожений части контура штриховки;
-
Наличие в контуре штриховки очень малых дуг, визуально выглядящих как отрезок (изгиб дуги незначителен и не заметен);
-
Штриховка может быть настолько малого размера, что Civil 3D не может посчитать ее площадь в выбранных единицах измерения чертежа.
Поиск и исправление проблем со штриховками надо выполнять именно в такой последовательности.
Этот процесс - первый в цепи исправления некорректных штриховок. Не выполняйте другие действия по исправлению штриховок до завершения этого этапа.
Выявление самопересечений штриховок.png
Рис. 5. Скрипт по выявлению самопересечений и самоналожений штриховок.
3.1. Пояснение терминов#Пояснение терминов в графике:
Штриховка с самопересечением.png
Рис. 6. Штриховка с самопересечением контура. Контур пересек сам себя в точке. Видно, что поле "Площадь" отсутствует на палитре "Свойства"
Штриховка с самоналожением.png
Рис. 7. Штриховка с самоналожением контура. Контур наложился сам на себя по отрезку. Иногда это происходит по дуге. Видно, что поле "Площадь" отсутствует на палитре "Свойства"
Самопересечения и самоналожения зачастую имеют очень маленькую величину. Найти их самостоятельно - очень сложно, особенно когда не знаешь, что проблема штриховки именно в них.
3.2. Описание работы скрипта#Написанный скрипт Dynamo полностью решает эту проблему.
C:\YandexDisk\Itemika Share\Civil 3D\04_Скрипты\01_ГП\Штриховки\02_Выявление самопересечений и самоналожений.dyn
Скрипт Выявление и исправление самопересечений и самоналожений контура штриховки делает следующее:
-
Анализирует все штриховки документа на возможность определения их площади;
-
Если найдены штриховки с неопределяемой площадью, скрипт пытается найти точки самопересечения или самоналожения контуров штриховок;
-
Если такие точки обнаруживаются, скрипт создает в этих местах точки CoGo, присваивает им понятные имена и описания вида: "Самопересечение №...", "Самоналожение №...";
-
Выводит в командную строку результаты своей работы в виде количества найденных точек самопересечения/самоналожения.
Обраруженные точки самопересечений.png
Рис. 8. Результат работы скрипта. В точках самопересечений и самоналожений контуров штриховок созданы точки CoGo (с отметкой 0.00 и стилем по умолчанию). Им присвоены уникальные имена и описания. В командную строку выведена информация о количестве найденных проблем.
3.3. Работа с результатами. Исправление проблем штриховок# 3.3.1. Самопересечения контура#После получения списка точек CoGo c указанием на проблему штриховки, выполняем следующее:
В Навигаторе в Списке точек CoGo находим точки с названием
"Самопересечение... " - ПКМ - Показать.
Экран зуммируется на выбранную точку, мы видим место проблемы.
Показать точку.png
Рис. 9. Через "Навигатор" переключаемся на точки самопересечения контура. Жмем ПКМ - Показать.
Тянем конточку штриховки на точку центра маркера точки COGO. Или на любую другую привязку в точке COGO, в зависимости от выбранного стиля точки COGO в файле.
Тянем точку.png
Рис. 10. Перетягиваем конточку штриховки на точку COGO "Самопересечение... "
После такой перетяжки точки, штриховка становится корректной (если на этом же контуре нет других проблем) и площадь начинает отображаться.
Удаляем точку COGO, контур в которой откорректирован.
3.3.2. Самоналожение контура#С самоналожением контура чаще всего проблем чуть больше.
Прежде всего, попробуйте исправить такой контур по тому же алгоритму, что и при самопересечении. Иногда это срабатывает, но чаще - нет.
В таком случае, нужно сделать следующее:
Восстановить контур штриховки (кликнуть
ПКМпо штриховке и выбрать "Сформировать границу");Саму штриховку (не контур) переместить немного в сторону, она еще послужит нам как образец при копировании стиля;
У контура штриховки инструментом "
Обрезать" срезаем участок самоналожения;Заливаем откорректированный контур штриховкой по умолчанию, не глядя на текущий слой и стиль штриховки;
Применяем стиль ранее сдвинутой в сторонку штриховки на новую штриховку в откорректированном контуре (команда
КОПИРОВАТЬСВ);Удаляем ранее отодвинутую в сторонку некорректную штриховку;
Проверяем, что у новой штриховки появилось свойство "
Площадь"Удаляем точку COGO на месте устраненной проблемы.
Этот процесс - второй в цепи исправления некорректных штриховок.
4.1. Пояснение терминов#Понятие "микродуга" - отсутствует в словаре Autodesk. Этот термин введен для пояснения проблемы, описываемой в цикле данных статей. Здесь под этим термином мы будем понимать такую дугу контура штриховки, которая имеет ничтожную в единицах чертежа длину и практически не отслеживаемую кривизну. Этот участок визуально выглядит как отрезок. Но является все же дугой.
Такая геометрия "ломает" Civil 3D в части возможности определения площади штриховки, ограниченной таким контуром. Мы будем это исправлять.
Прежде всего, определим, есть ли у нас такая проблема. Запустим скрипт "03_Выявление микродуг"
C:\YandexDisk\Itemika Share\Civil 3D\04_Скрипты\01_ГП\Штриховки\03_Выявление микродуг.dyn
Выявление микродуг.png
Рис. 11. Скрипт "Выявление микродуг"
После завершения работы скрипта в местах обнаружения микродуг на контуре штриховки строятся точки COGO c отметкой 0.00 и уникальными именем и описанием вида "Микродуга...". В командную строку выводится информация о количестве найденных микродуг.
Микродуги найдены.png
Рис. 12. Результат работы скрипта по поиску микродуг. Созданы точки COGO с уникальными именами вида "Микродуга...", в командную строку выведена информация о количестве найденных микродуг.
После обнаружения микродуг, их надо исправить.
4.3. Исправление микродуг#Для того, чтобы исправить контур штриховки, содержащий микродугу, ее надо преобразовать в отрезок.
Это микродуга.png
Рис. 13. Микродуга в составе контура. Визуально выглядит как отрезок. Но отрезок в отрезок преобразовать невозможно, а в контекстном меню этот вариант предложен. Видно, что в палитре "Свойства" нет поля "Площадь".
В списке точек COGO выберем любую точку с именем "Микродуга..." - ПКМ - Показать (точно так же, как мы зуммировали точки в прежней статье по поиску Самопересечений).
При хорошем зуме мы увидим проблему. Ту самую микродугу, внешне выглядящую как маленький отрезок в составе контура штриховки.
Подведем указатель к ее середине и в контекстном меню выберем "Преобразовать в отрезок".
Это отрезок.png
Рис. 14. Микродуга преобразована в отрезок. Теперь в контекстном меню появился вариант обратного преобразования - в дугу. Это признак того, что сейчас у нас в составе контура НЕ дуга. Видно, что в палитре "Свойства" появилось поле "Площадь".
Внимание! Контур штриховки может включать в себя несколько микродуг. Но скрипт в каждом контуре, где есть микродуги, выдает только один такой объект, игнорируя остальные. Это сделано специально, т.к. заранее нельзя предположить наверняка, какая из микродуг "ломает" для Civil 3D штриховку. Поэтому скрипт выдает в составе каждого контура с микродугами самую короткую микродугу, даже если таких объектов в данном контуре несколько. После преобразования найденной микродуги в отрезок, надо проверить, появилась ли у штриховки площадь. Если площадь не отображается, нужно запустить скрипт по поиску микродуги еще раз и скрипт подсветит следующую по длине микродугу в составе данного контура.
После того, как все штриховки с найденными микродугами обретут свойство Площадь, можно переходить к следующему (необязательному) шагу по удалению микроштриховок.
5. Выявление микроштриховок#Сама по себе эта проблема может и не сказаться на подсчете ведомостей, "нарезании" поверхностей, но наличие таких микроштриховок замусоривает файл.
Этот процесс - последний в цепи исправления некорректных штриховок.
Понятие "микроштриховка" - отсутствует в словаре Autodesk. Этот термин введен для пояснения проблемы, описываемой в цикле данных статей. Здесь под этим термином мы будем понимать такую штриховку, площадь которой ничтожно мала. Часто такая штриховка выглядит как точка.
Такая микрогеометрия "ломает" Civil 3D в части возможности определения площади штриховки и замусоривает чертеж. Самым правильным решением в таком случае является удаление таких штриховок.
Для поиска таких объектов написан скрипт
C:\YandexDisk\Itemika Share\Civil 3D\04_Скрипты\01_ГП\Штриховки\04_Выявление микроштриховок.dyn
Выявление микроштриховок.png
Рис. 15. Скрипт по поиску микроштриховок.
После завершения работы, скрипт подсвечивает штриховки с неопределяемой площадью и выводит в командную строку информацию о количестве таких штриховок. Т.к. все другие проблемы со штриховками к моменту запуска этого скрипта должны быть решены (именно поэтому этот скрипт запускается в последнюю очередь), то фактически скрипт указывает только на микроштриховки.
В отличии от предыдущих скриптов серии, данный скрипт не создает точки COGO.
После выделения штриховок, проверьте, действительно ли это ненужные штриховки (если в предыдущих скриптах вы полностью отработали все проблемы, то это будет так) и, в случае подтверждения этого, удалите их.
Цикл работы со штриховками завершен.
Содержание
- 3.1. Пояснение терминов
- 3.2. Описание работы скрипта
- 3.3. Работа с результатами. Исправление проблем штриховок
- 3.3.1. Самопересечения контура
- 3.3.2. Самоналожение контура
- 4.1. Пояснение терминов
- 4.2. Выявление микродуг
- 4.3. Исправление микродуг
- 5.1. Пояснение терминов
- 5.2. Выявление микроштриховок и их удаление