«Помогите! 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
и бесплатном просмотрщике (скриншот клиента)
Смотрим в AutoCAD
Ради интереса смотрим в AutoCAD 2015. Загружаем: вроде показывает больше. Смотрим сбоку: программа отображает вертикальную полосу, координаты в строке состояния не воспроизводятся. Но если панорамировать, то можно выхватить координаты в строке состояния (рис. 2) — на минуточку: там 1.284e+81 (то есть единица с 81 нулем)!
Закрываю документ — все ясно. Диагноз: в файле zкоординаты разбросаны случайным образом по огромному диапазону. AutoCAD такие файлы както отображает (все ли?), nanoCAD честно показывает только разумные координаты, намекая на проблемность документа.
Рис. 2. Исследуя документ, можно заметить, что САПР оперирует очень большими числами
Исправляем в nanoCAD
*.dwgдокумент явно испорчен, пользователь обычно в таких случаях говорит: «А что я? Я ничего — просто открыл». Виновных, конечно, не найти, остается исправлять…
В nanoCAD Plus 6.0 мы ввели команду ПРОВГЕОМ, которая позволяет обнулить координаты: заходим в Файл -> Утилиты -> Проверка геометрии, выбираем опцию Проверка zкоординаты, затем — Исправлять ошибки -> Да с допуском по умолчанию (1e+20), затем Enter… Что происходит?
Программа проходит по всем объектам и, если у них zкоордината выбивается из указанного диапазона, переносит объект целиком вверх или вниз на выбившуюся zкоординату. Это приводит к тому, что геометрия объекта не меняется, но сам объект возвращается «из космоса на землю». Даже после такой простейшей операции данные в чертеже тут же проявляются. Кроме того, появляется возможность взглянуть на чертеж сбоку — вот и визуализация проблемного *.dwg (рис. 3).
Рис. 3. Визуализация проблемного *.dwg-файла сбоку
Рис. 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-файл
Еще чутьчуть о тонкостях
Умные люди скажут, что в AutoCAD есть похожая команда FLATTEN (из Express Tools). Да, конечно, есть, но… FLATTEN меняет геометрию чертежа, делая проекцию геометрии на нулевую плоскость — этим она и опасна. Например, если в документе были 3Dобъекты (скажем, линия, один конец которой лежит на высоте 100, а второй — на 3000), FLATTEN полностью разрушит 3Dпредставление модели (то есть опустит концы точек на нулевую плоскость), а ПРОВГЕОМ перенесет в нулевую плоскость только те объекты, которые выходят за указанный диапазон! На примере с линией — у нее один конец будет лежать на нуле, а второй — на 2900. Таким образом, чертеж с 3Dданными не будет разрушен. Есть разница, и ее нужно понимать.
Кроме того, я прошелся по *.dwgдокументу утилитой Проверка документа (AUDIT) — очень часто она исправляет ошибки базы данных. И еще можно воспользоваться инструментом Очистка документа (PURGE): в текущем документе куча неиспользуемых слоев, типов линий, блоков и прочего. Но все это уже на усмотрение пользователя.
Заключение
Ну, вот… кофе таки остыл…