3 - 2015

«Помогите! nanoCAD видит не все, что создано в AutoCAD»

Денис Ожигин

Проснувшись с утра и налив чашечку кофе, заглянул на свой любимый forum.nanocad.ru и обнаружил мольбу о помощи — мол, nanoCAD не отображает чертеж из AutoCAD. Точнее отображает, но не все: «кто уже боролся с подобным явлением, подскажите рецепт»… Подозревая, в чем дело, отставил кофе в сторону и загрузил *.dwg-чертеж для исследования.
Кому интересно чуть-чуть утренней нудности, добро пожаловать...

Смотрим в nanoCAD

Итак, дан *.dwg­чертеж неизвестного происхождения, который плохо отображается в nanoCAD (можно взять на форуме forum.nanocad.ru/index.php?app=core&module=attach§ion=attach&attach_id=5451). Надо выяснить, почему не все отображается и что с этим делать…

Первым делом загружаю nanoCAD Plus 6.0, нажимаю Открыть и поднимаю чертеж. Грузится быстро, отображается явно не все (рис. 1).

Пытаюсь взглянуть на чертеж сбоку (команда View -> Стандартные виды -> Спереди): бах — поле чертежа превращается в белый экран, курсор на нем не отображается. Все понятно: выбило видеоподсистему у nanoCAD. Возвращаюсь обратно в вид сверху (команда View -> Стандартные виды -> Сверху). Закрываю документ.

Рис. 1. Отображение проблемного *.dwg-файла в nanoCAD

Рис. 1. Отображение проблемного *.dwg-файла в nanoCAD
и бесплатном просмотрщике (скриншот клиента)

Смотрим в AutoCAD

Ради интереса смотрим в AutoCAD 2015. Загружаем: вроде показывает больше. Смотрим сбоку: программа отображает вертикальную полосу, координаты в строке состояния не воспроизводятся. Но если панорамировать, то можно выхватить координаты в строке состояния (рис. 2) — на минуточку: там ­1.284e+81 (то есть единица с  81 нулем)!

Закрываю документ — все ясно. Диагноз: в файле z­координаты разбросаны случайным образом по огромному диапазону. AutoCAD такие файлы как­то отображает (все ли?), nanoCAD честно показывает только разумные координаты, намекая на проблемность документа.

Рис. 2. Исследуя документ, можно заметить, что САПР оперирует очень большими числами

Рис. 2. Исследуя документ, можно заметить, что САПР оперирует очень большими числами

Исправляем в nanoCAD

*.dwg­документ явно испорчен, пользователь обычно в таких случаях говорит: «А что я? Я ничего — просто открыл». Виновных, конечно, не найти, остается исправлять…

В nanoCAD Plus 6.0 мы ввели команду ПРОВГЕОМ, которая позволяет обнулить координаты: заходим в Файл -> Утилиты -> Проверка геометрии, выбираем опцию Проверка z­координаты, затем — Исправлять ошибки -> Да с допуском по умолчанию (1e+20), затем Enter… Что происходит?

Программа проходит по всем объектам и, если у них z­ко­ор­ди­на­та выбивается из указанного диапазона, переносит объект целиком вверх или вниз на выбившуюся z­координату. Это приводит к тому, что геометрия объекта не меняется, но сам объект возвращается «из космоса на землю». Даже после такой простейшей операции данные в чертеже тут же проявляются. Кроме того, появляется возможность взглянуть на чертеж сбоку — вот и визуализация проблемного *.dwg (рис. 3).

Рис. 3. Визуализация проблемного *.dwg-файла сбоку

Рис. 3. Визуализация проблемного *.dwg-файла сбоку

Рис. 4. Визуализация проблемного *.dwg-файла в 3D

Рис. 4. Визуализация проблемного *.dwg-файла в 3D

Еще красиво посмотреть на это в 3D (рис. 4).

Теперь объекты разбросаны по z­высоте «всего лишь» в диапазоне плюс­минус 1e+20 (то есть единица с 20 нулями). Понятно, что на таком файле не работают ни привязки, ни обрезка, ни поиск контура для штриховки, причем ни в AutoCAD, ни в nanoCAD — нигде. Что ж, повторяю операцию ПРОВГЕОМ сначала с допуском в 1000, потом в 100, затем в 10, и, наконец, в 0 — и вуаля, чертеж исправлен полностью (рис. 5) (http://forum.nanocad.ru/index.php?app=core&module=attach§ion=attach&attach_id=5455).

Рис. 5. Исправленный *.dwg-файл

Рис. 5. Исправленный *.dwg-файл

Еще чуть­чуть о тонкостях

Умные люди скажут, что в AutoCAD есть похожая команда FLATTEN (из Express Tools). Да, конечно, есть, но… FLATTEN меняет геометрию чертежа, делая проекцию геометрии на нулевую плоскость — этим она и опасна. Например, если в документе были 3D­объекты (скажем, линия, один конец которой лежит на высоте 100, а второй — на 3000), FLATTEN полностью разрушит 3D­представление модели (то есть опустит концы точек на нулевую плоскость), а ПРОВГЕОМ перенесет в нулевую плоскость только те объекты, которые выходят за указанный диапазон! На примере с линией — у нее один конец будет лежать на нуле, а второй — на 2900. Таким образом, чертеж с 3D­данными не будет разрушен. Есть разница, и ее нужно понимать.

Кроме того, я прошелся по *.dwg­документу утилитой Проверка документа (AUDIT) — очень часто она исправляет ошибки базы данных. И еще можно воспользоваться инструментом Очистка документа (PURGE): в текущем документе куча неиспользуемых слоев, типов линий, блоков и прочего. Но все это уже на усмотрение пользователя.

Заключение

Ну, вот… кофе таки остыл… 

САПР и графика 3`2015