"_purge _a" + _audit = Total errors found...
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "_purge _a" + _audit = Total errors found...

"_purge _a" + _audit = Total errors found...

Ответ
Поиск в этой теме
Непрочитано 31.10.2011, 16:48 #1
"_purge _a" + _audit = Total errors found...
hwd
 
C, C++, C#
 
С-Пб.
Регистрация: 07.10.2009
Сообщений: 2,762

Если в динамическом блоке атрибуты размещены на отдельном слое, то команда "_purge _a" может спровоцировать появление хорошо известных "Total errors", которые будут выявлены с помощью команды _audit...
Покажу пример...
В прикреплённом чертеже имеется два определения блока:
- Рамка листа (вариант 1 - доп. текст на слое PlotInfo)
- Рамка листа (вариант 2 - всё на одном слое)

Причём вариант 2 - это модифицированный вариант 1, с той лишь разницей, что все определения атрибутов размещены на слое 0.

Открываем файл PurgeProblem.dwg, а так же создаём новый чертёж на основе шаблона acadiso.dwt. Нажимаем Ctrl + 2 и с помощью DesignCenter копируем в новый файл определение блока "Рамка листа (вариант 2 - всё на одном слое)" (перетаскиваем мышью и бросаем в модель нового чертежа).
В пространстве модели нового чертежа появляется вхождение блока. Удаляем это вхождение, после чего "отпуржить" слои, либо вызвать "_purge _a", и затем запускаем _audit.
Результат: Total errors found 0 fixed 0.

Теперь выполняем те же действия, но с блоком "Рамка листа (вариант 1 - доп. текст на слое PlotInfo)".
Результат: Total errors found 6 fixed 0.

Смотрим лог команды _audit:
[quote]
Command: _audit
Fix any errors detected? [Yes/No] <N>:
Auditing Header
Auditing Tables
Auditing Entities Pass 1
Pass 1 200 objects audited
Auditing Entities Pass 2
Pass 2 100 objects auditedAcDbAttribute(245) Invalid layer eWasErased
$AUDIT-BAD-LAYER
AcDbAttribute(245) was not repaired.
AcDbAttribute(256) Invalid layer eWasErased $AUDIT-BAD-LAYER
AcDbAttribute(256) was not repaired.
Pass 2 200 objects auditedAcDbAttribute(25E) Invalid layer eWasErased
$AUDIT-BAD-LAYER
AcDbAttribute(25E) was not repaired.
AcDbAttribute(26D) Invalid layer eWasErased $AUDIT-BAD-LAYER
AcDbAttribute(26D) was not repaired.
AcDbAttribute(27E) Invalid layer eWasErased $AUDIT-BAD-LAYER
AcDbAttribute(27E) was not repaired.
AcDbAttribute(286) Invalid layer eWasErased $AUDIT-BAD-LAYER
AcDbAttribute(286) was not repaired.
Auditing Blocks
1 Blocks audited
Total errors found 6 fixed 0
Erased 0 objects

Как видим, "_purge _a" удалила слои, на которые ссылаются некоторые, опять же удалённые объекты базы данных. Вывод: команда "_purge _a" работает не корректно. Другой вариант блока выдаёт 76 ошибок. Некорректная работа "_purge _a" происходит в AutoCAD 2009 и 2012 (другие версии не проверял, но подозреваю, что они не исключение).

К счастью, данные ошибки не являются опасными, поскольку они затрагивают лишь удалённые объекты, т.е. такие объекты базы данных, свойство IsErased которых равно true - они исчезают после закрытия чертежа, поэтому при последующем открытии файла, команда _audit уже не найдёт тех ошибок, которые были найдены в прошлой сессии работы, т.к. в ней этих объектов уже не будет, а если нет проблемных объектов, то не будет и ошибок.

Вложения
Тип файла: zip PurgeProblem.zip (32.9 Кб, 67 просмотров)

__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 01.11.2011 в 12:19.
Просмотров: 3478
 
Непрочитано 08.02.2013, 11:23
#2
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


hwd, Заметил странность. Поэкспериментировал с твоими блоками. Если делать как ты написал, вставлять блок через Центр, то находит 6 ошибок.
Есть вставлять через копипасту - находит 8 ошибок.
Если вставлять через с палитры инструментов - находит 9 ошибок.

У меня есть два блока, они не динамические. В одном текст, а в другом только линии. Но все равно после аудита - куча ошибок.
Вложения
Тип файла: dwg
DWG 2007
Странные блоки.dwg (55.3 Кб, 924 просмотров)
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Автор темы   Непрочитано 08.02.2013, 11:33
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Astartes Посмотреть сообщение
Заметил странность.
Ничего странного. Более подробно - здесь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 08.02.2013, 13:35
#4
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


По ходу экспериментов. Выяснил, что такая проблема возникает не только с динамическими блоками и атрибутами. Выше выложил примеры. Так же обнаружил что этот баг распространяется и на таблицы, которые запихиваются в блок, чтобы можно было поместить их на палитру. Если таблица в 0, то все нормально. В другом слое – ошибки.
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "_purge _a" + _audit = Total errors found...



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как грамотно чистить файл чертежа от всякого шлака? (порядок команд) maximus_m_13 AutoCAD 16 27.12.2015 14:37