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

в 8:55, , рубрики: CAD/CAM, DWG, lifehack, nanoCAD, Блог компании Нанософт, векторная графика, исправление

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

Помогите: «nanoCAD видит не всё, что создано в AutoCAD» - 1

Кому интересно чуть-чуть утренней нудности, добро пожаловать под Хабракат...

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

Первым делом загружаю nanoCAD Plus 6.0, нажимаю на открыть и поднимаю чертеж. Грузится быстро, отображается явно не все:
Помогите: «nanoCAD видит не всё, что создано в AutoCAD» - 2

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

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

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

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

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

Программа проходит по всем объектам и, если у них z-координата выбивается из указанного диапазона, переносит объект целиком вверх или вниз на выбившую z-координату. Это приводит к тому, что геометрия объекта не меняется, но сам объект возвращается из космоса на землю. Даже после такой простейшей операции данные в чертеже тут же проявляются. Плюс появляется возможность взглянуть на чертеж сбоку — вот и визуализация проблемного DWG:
Помогите: «nanoCAD видит не всё, что создано в AutoCAD» - 4

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

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

Плюс я еще прошелся по DWG-документу утилитой «Проверка документа» (AUDIT) — очень часто она исправляет ошибки базы данных. И еще можно воспользоваться «Очисткой документа» (PURGE) — в текущем документе куча неиспользуемых слоев, типов линий, блоков и прочего. Но все это уже на усмотрение пользователя.

Заключение
Ну, вот… кофе таки остыл…

Автор: dows

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js