ITEMIKA BIM стандарт
Войти

Некорректные штриховки

Обновлено 15 минут назад·1682 слова

#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 не может посчитать ее площадь в выбранных единицах измерения чертежа.

Внимание

Поиск и исправление проблем со штриховками надо выполнять именно в такой последовательности.

3. Выявление и исправление самопересечений и самоналожений контура штриховки#

Этот процесс - первый в цепи исправления некорректных штриховок. Не выполняйте другие действия по исправлению штриховок до завершения этого этапа.

Выявление самопересечений штриховок.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 указанием на проблему штриховки, выполняем следующее:

  1. В Навигаторе в Списке точек CoGo находим точки с названием "Самопересечение... " - ПКМ - Показать.
    Экран зуммируется на выбранную точку, мы видим место проблемы.

Показать точку.png

Рис. 9. Через "Навигатор" переключаемся на точки самопересечения контура. Жмем ПКМ - Показать.

  1. Тянем конточку штриховки на точку центра маркера точки COGO. Или на любую другую привязку в точке COGO, в зависимости от выбранного стиля точки COGO в файле.

Тянем точку.png

Рис. 10. Перетягиваем конточку штриховки на точку COGO "Самопересечение... "

После такой перетяжки точки, штриховка становится корректной (если на этом же контуре нет других проблем) и площадь начинает отображаться.

Удаляем точку COGO, контур в которой откорректирован.

3.3.2. Самоналожение контура#

С самоналожением контура чаще всего проблем чуть больше.

Прежде всего, попробуйте исправить такой контур по тому же алгоритму, что и при самопересечении. Иногда это срабатывает, но чаще - нет.

В таком случае, нужно сделать следующее:

  1. Восстановить контур штриховки (кликнуть ПКМ по штриховке и выбрать "Сформировать границу");

  2. Саму штриховку (не контур) переместить немного в сторону, она еще послужит нам как образец при копировании стиля;

  3. У контура штриховки инструментом "Обрезать" срезаем участок самоналожения;

  4. Заливаем откорректированный контур штриховкой по умолчанию, не глядя на текущий слой и стиль штриховки;

  5. Применяем стиль ранее сдвинутой в сторонку штриховки на новую штриховку в откорректированном контуре (команда КОПИРОВАТЬСВ);

  6. Удаляем ранее отодвинутую в сторонку некорректную штриховку;

  7. Проверяем, что у новой штриховки появилось свойство "Площадь"

  8. Удаляем точку COGO на месте устраненной проблемы.

4. Выявление и исправление микродуг в контуре штриховки#

Этот процесс - второй в цепи исправления некорректных штриховок.

4.1. Пояснение терминов#

Понятие "микродуга" - отсутствует в словаре Autodesk. Этот термин введен для пояснения проблемы, описываемой в цикле данных статей. Здесь под этим термином мы будем понимать такую дугу контура штриховки, которая имеет ничтожную в единицах чертежа длину и практически не отслеживаемую кривизну. Этот участок визуально выглядит как отрезок. Но является все же дугой.
Такая геометрия "ломает" Civil 3D в части возможности определения площади штриховки, ограниченной таким контуром. Мы будем это исправлять.

4.2. Выявление микродуг#

Прежде всего, определим, есть ли у нас такая проблема. Запустим скрипт "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. Выявление микроштриховок#

Сама по себе эта проблема может и не сказаться на подсчете ведомостей, "нарезании" поверхностей, но наличие таких микроштриховок замусоривает файл.
Этот процесс - последний в цепи исправления некорректных штриховок.

5.1. Пояснение терминов#

Понятие "микроштриховка" - отсутствует в словаре Autodesk. Этот термин введен для пояснения проблемы, описываемой в цикле данных статей. Здесь под этим термином мы будем понимать такую штриховку, площадь которой ничтожно мала. Часто такая штриховка выглядит как точка.
Такая микрогеометрия "ломает" Civil 3D в части возможности определения площади штриховки и замусоривает чертеж. Самым правильным решением в таком случае является удаление таких штриховок.

5.2. Выявление микроштриховок и их удаление#

Для поиска таких объектов написан скрипт

C:\YandexDisk\Itemika Share\Civil 3D\04_Скрипты\01_ГП\Штриховки\04_Выявление микроштриховок.dyn

Выявление микроштриховок.png

Рис. 15. Скрипт по поиску микроштриховок.

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

После выделения штриховок, проверьте, действительно ли это ненужные штриховки (если в предыдущих скриптах вы полностью отработали все проблемы, то это будет так) и, в случае подтверждения этого, удалите их.

Цикл работы со штриховками завершен.

Содержание