Работа с проблемными *.dwg-файлами в среде nanoCAD

2z3tdxv6g9ujrhqnmwmt26hzcna.png

Формат *.dwg — самый популярный формат хранения электронных чертежей. Зачастую *.dwg-файлы хранятся годами, сохраняются в различных системах, используются разными пользователями и из-за этого могут накапливать различные ошибки. Чтобы обезопасить себя и свои документы, перед началом работы с файлами в nanoCAD рекомендуется выполнить ряд действий для их проверки, очистки и оптимизации. Ниже мы рассмотрим основные инструменты и методы работы с *.dwg-файлами.

Как узнать версию *.dwg-файла?


Откройте *.dwg-файл через текстовый редактор — например Блокнот. Первые символы укажут на версию, остальная часть файла будет отображаться в зашифрованном виде.

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


ha_kyb3ugkwuera68-v2asxwhgu.png

Узнать версию dwg, в которой сохранен файл, можно из списка:

AC1015 — dwg 2000
AC1018 — dwg 2004
AC1021 — dwg 2007
AC1024 — dwg 2010
AC1027 — dwg 2013
AC1032 — dwg 2018


*.dwg-файл не открывается


Если по каким-либо причинам файл не открывается, не стоит паниковать. Попробуем восстановить его с помощью утилит. При открытии чертежа такого типа вы скорее всего увидите сообщение:

f0vhpjntu4ow52hquf4rv-id0cu.png

Перезапустите программу nanoCAD и воспользуйтесь утилитой Восстановление документа.

Меню: Файл > Утилиты > Восстановление документа… Командная строка: ВОССТАН (RECOVER)


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

ahygnbsdbcvuotcc1p1ag6ayfuo.png

Если файл все равно не удается открыть, отправьте его специалистам технической поддержки, сопроводив письмо подробным описанием проблемы.

Как почистить *.dwg-файл?


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

dyn23vuxvt6fhq7axtxtuwvjw9s.png

1. Проверка документа


Меню: Файл > Утилиты > Проверка документа Командная строка: ПРОВЕРИТЬ (AUDIT)

Команда предназначена для выявления и исправления проблемных объектов чертежа, лежащих за пределами диапазона. Есть два режима:

Проверка_Z_координат — проверка координат по оси Z всех объектов чертежа; Проверка_Штриховок — проверка правильности отображения штриховок в границах контуров.


Битые Z-координаты, на мой взгляд, один из наиболее часто встречающихся недугов формата *.dwg. Они могут годами находиться в чертеже, оставаясь необнаруженными, так как чаще всего пользователи работают в плоскости. Чтобы выявить эту проблему, нужно взглянуть на чертеж с другого вида. Зажмите Shift и используйте колесо мыши для вращения чертежа в 3D-пространстве. Если ваш чертеж плоский — всё хорошо, если нет — пора его исправить. Вернуться к виду сверху можно нажав Вид сверху в меню <Вид > Виды и проекции > Сверху.

ugozc0mxoozdsa_uh1nxc87sybu.png

Симптоматика этой проблемы бывает разной. Плохо работают привязки, не отображается часть объектов, пропадает курсор в модели или чертеж медленно работает. Проблема очень актуальна при работе с большими файлами: генпланами, подложками и пр.

Начиная с 7-й версии платформа nanoCAD при запуске *.dwg-файлов проверяет Z-координаты автоматически, и если в вашем файле обнаружится проблема, вы увидите следующее окно:

adgiw8m7mqi9gsrr80najik_t4e.png

Просто нажмите Исправить, и утилита перенесет все улетевшие объекты. Важно отметить, что данная функция не делает ваш чертеж полностью плоским, а просто переносит объекты с улетевшей координатой Z ближе к нулевому значению. Если у вас есть трехмерные объекты, они не будут разрушены. После проверки геометрии осмотрите ваш чертеж в 3D — если остались какие-то дефекты, рекомендуется воспользоваться функцией Конвертация в 2D.

3. Конвертация в 2D


Меню: Файл > Утилиты > Конвертирование в 2D Командная строка: КОНВ2D (FLATTEN)


Эта функция позволяет сделать все объекты чертежа совершенно плоскими. Поэтому, если вы работаете с 3D- полилиниями, ее нужно использовать с особой осторожностью. Вот пара способов, которыми я пользуюсь при работе с такими файлами:

Способ №1
В этом случае требуется выбрать все объекты, лежащие вне нулевой плоскости. Для этого нам необходимо:

  1. Включить вид сбоку и выбрать все объекты, которые лежат выше или ниже нуля.6k4lqrymruaoebvgahvvtohjc4s.png
  2. После выделения всех объектов, которые находятся за пределами нулевой плоскости, переключаемся на вид сверху (это важно, иначе функция сплющит нам чертеж не на ту плоскость) и, не снимая селекции объектов, вызываем функцию Конвертация в 2D.2unlnsae8e6kvqqyrphbmnmw4b8.png


Способ №2
Способ более трудоемкий, но и более безопасный.

Дело в том, что конвертация в 2D разрушает объекты оформления СПДС (выноски, оси, отметки уровня и т.д.), поэтому перед началом конвертации нам необходимо исключить эти объекты из селекции.


  1. Выбираем все объекты чертежа (Ctrl+A). Переходим на функциональную панель Свойства, выбираем из выпадающего списка объекты оформления и исключаем их из выбора. Повторяем эту операцию до тех пор, пока в селекции не останется объектов оформления СПДС.ulyizuryjglmuy0magdzddz_1xq.png
  2. Не сбрасывая селекции с объектов, вызываем функцию Конвертация в 2D. Затем файл можно снова проверить на ошибки. После проверки сохраните файл под другим именем — например, Архитектура_audit_flatten.dwg. Я использую при сохранении версионность, чтобы в случае какой-либо ошибки вернуться к предыдущей версии файла и не проделывать все операции по очистке с нуля.


4. Очистка документа (purge)


Меню: Файл > Утилиты > Очистка документа… Командная строка: ОЧИСТИТЬ, ОЧ, УДАЛИ (PURGE, PU)


После запуска команда вызывает диалоговое окно Очистка документа, в котором представлен список элементов, доступных для удаления, и список элементов, удалить которые из документа нельзя. Выберите из списка элементы, которые будут удалены, либо нажмите Удалить всё.

llwqtqgfx1ly0badsfl1dyggz74.png

  • Удаление вложенных элементов — включение режима удаления всех неиспользуемых именованных объектов, содержащихся внутри других неиспользуемых именованных объектов.
  • Автоматическая очистка непривязанных данных — удаление устаревших стилей векторных данных формата DGN.
    Файлы с DGN-стилями весят больше обычного, хотя содержат мало графики. Такие файлы могут медленно работать и вызывать зависание при сохранении.
  • Удалить геометрию нулевой длины и пустые текстовые объекты — включение режима удаления графического мусора. Флажок недоступен в случае отсутствия соответствующей геометрии в документе.
    Такие объекты тяжело найти в модели. Тексты визуально отображаются только после селекции, так как не имеют содержимого.
    surjcuovywodtbndvwew2ai7wty.png


Обнаруживать их удобно через Диспетчер чертежа (меню Сервис > Диспетчер чертежа). В этой функциональной панели пустые однострочные и многострочные тексты будут отображаться как «ПУСТОЙ ТЕКСТ».

gp8crqc8c4ptjxqzlpla4htzfg4.png

После выполнения очистки сохраните файл под другим именем. Я сохраняю чертежи с постфиксом утилиты, которой его проверял. Поэтому имя нашего файла будет теперь выглядеть так: Архитектура_audit_flatten_purge.dwg.

5. Перекодировка текста


Меню: Файл > Утилиты > Перекодировка текста Командная строка: ДЕКОД (TEXTDECODER)


Наверное, любой российский пользователь хоть раз сталкивался с проблемами кодировки, когда, например, названия файлов в проводнике или текст в браузере отображаются в виде непонятных значков. Знакома эта проблема и пользователям САПР-систем.

803ennkojylltgtubmugavpcxr0.png

Утилита перекодировки текста представлена в виде отдельного выпадающего окна. Первое, что нам необходимо выбрать, это тип объектов, которые мы будет перекодировать. Такими объектами могут быть слои, стили, тексты и т.д.

5t4a1_46j7_1qm2rpqzqr7r4gdo.png

Существуют два режима декодирования: вручную и автоподбор. Первый — самый точный и очень трудозатратный, второй — быстрый, но связанный с риском появления ошибок. Давайте рассмотрим подробнее каждый из них.

Вручную

Выбираем из списка текст и назначаем ему конечную кодировку. Далее нажимаем Декодировать и смотрим результат в окне Результат декодирования. Если не угадали с кодировкой, выбираем другую и перекодируем заново.

ebdmoxl7ogov8m63vpf3n-7rqas.png

Автоподбор

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

rbm3n2jahqg9kncc4atlvi4fq8c.png

Перекодировка всех объектов

Можно перекодировать и весь массив данных. Для этого нам нажать кнопку Выбрать все, установить режим декодирования Автоподбор и нажать на кнопку Перекодировка.

bjogf63xkrsp0jj2src6wi557fg.png

Если вам предстоит перекодировать большой массив объектов, постарайтесь исключить из перекодировки те из них, которые отображаются корректно. Сделать это можно, щелкнув по элементу списка левой кнопкой мыши при зажатой клавише Ctrl (Ctrl+ЛКМ).


twmxe35ui0_vg1plqjrtf3utai0.png

После исправления кодировки сохраните файл под другим именем — например, Архитектура_audit_flatten_purge_decod.dwg

6. Вставка чертежа в новый файл


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

К этому методу стоит прибегнуть, если очистка и проверка не помогают исправить тот или иной дефект. Внимание! В чертеже пропадут все оформленные листы.


Создаем в nanoCAD новый файл (меню Файл > Создать). Далее нужно вставить проблемный чертеж в этот открытый файл как блок (Меню Вставка > Блок). В окне Вставка блока следует снять флажок Указать на экране, чтобы вставить чертеж сразу в нулевые координаты. Еще нужно установить флажок напротив пункта Разбить, чтобы вставленный чертеж после вставки не пришлось разбивать.

7l-r5bhs1hmdwbywdtwddqi4lpe.png

После вставки чертежа таким способом будет сгенерирована заново вся база данных *.dwg-файла. Таким образом вы можете исправить ряд ошибок, которые находились в ваших старых файлах. При вставке вы также потеряете все прокси-объекты вашего чертежа, так что, применяя этот метод, будьте осторожны. После вставки чертежа сохраните файл под другим именем, например, Архитектура_insert.dwg.

7. Разбивка и удаление прокси-объектов


Меню: Редактирование > Дополнительные средства > Удаление прокси-объектов Меню: Редактирование > Дополнительные средства > Разбивка прокси-объектов


*.dwg-файлы могут содержать сторонние объекты, созданные в других приложениях. Все неопознанные объекты называются прокси-объектами (они могут иметь графическое представление, а могут и не иметь). Прокси-объекты создают специализированные приложения под различными CAD-платформами. С такими объектами сталкивался, наверное, каждый проектировщик. Их нельзя редактировать, у них нет «ручек».

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

Некоторые разработчики специализированных приложений защищают свои объекты, не позволяя разбить их командой EXPLODE. Именно для таких случаев в nanoCAD реализованы специальные утилиты разбивки и удаления прокси. Работают они достаточно просто, нужно только выбрать прокси-объекты и вызвать необходимую команду (разбивка и удаление). Эти команды доступны и контекстном меню Диспетчера чертежа — специального инструмента, показывающего всю структуру *.dwg-файла.

irjmm_xm6qtuydn6fobltkohwm0.png

Заключение


После работы со всеми утилитами внимательно ознакомьтесь с финальным файлом. Иногда для сложных файлов может потребоваться 2–3 прохода утилитами. Если все нужные проектные данные целы и текущий результат вас полностью устраивает, удалите промежуточные файлы и оставьте исходный файл архитектура.dwg, а финальному присвойте имя архитектура_rec.dwg.

Используя такую маркировку, вы будете знать, какие файлы у вас уже обработаны, а какие еще только следует проверить. Всегда работайте в файлах с пометкой _rec.

Надеюсь, приведенная информация поможет вам навести порядок в ваших файлах, упростить и ускорить работу в *.dwg-среде, а также избежать критических ошибок и потери данных.

Удачного проектирования!
Сергей Спирин, mahbak
ЗАО Нанософт

© Habrahabr.ru