Команда audit в автокаде
Эти файлы могут передаваться между программами, поскольку они совместимы с несколькими программами для 3D-рисования и САПР, хотя не все программы просмотра могут открывать файлы DWG каждого типа.
Это может быть ужасно, когда файл кажется безжизненным, или когда вам нужно убить его после того, как он буквально поставил вашу систему на колени.
Некоторые из симптомов поврежденного файла AutoCAD включают в себя:
- Рисунок, который кажется смешным
- Файл работает медленно
- Файл не открывается
- Файл зависает или вылетает в программе AutoCAD
- Несколько команд не будут работать
- Похоже, что есть некоторые недостающие части
- Необъяснимое увеличение размера файла
- Показать или восстановить проблемы
- Поврежденный файл AutoCAD просто не будет отображаться при попытке открыть его
Эти и другие проблемы вызваны сторонними приложениями в AutoCAD, файлами DWG, созданными или сохраненными продуктами, которые не являются Autodesk или RealDWG, программа прекращает работу при сохранении или старыми чертежами, которые используются постоянно в течение нескольких лет.
Другие причины включают в себя сбои в сети, такие как блокировка файлов, скрытая запись данных, ошибки передачи, ухудшение состояния носителя из-за плохих секторов жесткого диска, сбой/неисправность ОЗУ, проблемы с ОС, скачки напряжения и устаревшее программное обеспечение.
- Используйте команду восстановления
- Использовать функцию автосохранения
- Другие шаги, чтобы предпринять
1. Используйте команду восстановления
Команда Восстановить позволяет восстанавливать поврежденные файлы AutoCAD напрямую, если вы удалили или потеряли их. Сделать это:
- Откройте новый чертеж AutoCAD
- Выберите файл .
- Выберите Инструменты для рисования .
- Выберите Восстановление или Менеджер восстановления в зависимости от версии программного обеспечения.
- Выберите рисунок
- Нажмите ОК .
2. Используйте функцию автосохранения
Если файл открывается, сделайте следующее:
3.Другие шаги, чтобы предпринять
Метод 1
Если поврежденный файл AutoCAD сохраняется, попробуйте выполнить следующие действия:
Если это все еще сохраняется, сделайте следующее:
- Убедитесь, что все слои включены, оттаяли и разблокированы
- Отключить все внешние ссылки (внешние ссылки) и не иметь круговых вложений.
- Запись Заблокируйте всю необходимую информацию в поврежденном файле AutoCAD на новый чертеж с помощью командной строки.
- Введите WBLOCK в командной строке
- Перейдите в Источник> и выберите Объекты .
- Нажмите Выбрать объекты .
- Используйте окно выбора, чтобы выбрать только необходимые объекты из файла (не вводите ВСЕ)
- Задайте путь и имя файла> нажмите ОК .
- Откройте новый пустой файл (чертежный файл)
- Вставьте файл, который вы создали из командной строки
- Введите INSERT в командной строке и выберите файл
- Снимите флажок « Указать на экране »
- Установите флажок Разорваться и нажмите ОК.
- Введите PURGE в командной строке> нажмите Очистить все .
- Аудит и исправление ошибок
- Введите СОХРАНИТЬ КАК и создайте новое имя файла
Метод 2
- Откройте новый пустой файл AutoCAD
- В командной строке введите RECOVER
- Перейдите к поврежденному файлу AutoCAD, чтобы программа могла его восстановить.
- Введите OVERKILL в командной строке
- Выбрать все объекты
- Установите или снимите флажки для свойств, которые нужно включить/игнорировать
- Нажмите ОК
- Введите DELCON в командной строке
- Выбрать все объекты
- Введите BREP
- Выбрать все объекты
- Введите –SCALELISTEDIT
- Тип R для сброса и Y для да
- Введите ФИЛЬТРЫ
- Нажмите Удалить фильтры
Если файл неожиданно большого размера, используйте инструмент DGNPURGE.
Удалось ли вам найти решение среди перечисленных здесь? Дайте нам знать, какой из них работал для вас, оставив комментарий в разделе ниже.
На данной страничке я покажу ситуацию, когда команда purge, вызванная в AutoCAD, может приводить к возникновению ошибок (хорошо известных как total errors), выявляемых с помощью команды audit. Возможно, что обозначенная команда не корректно работает и в др. случаях, но я в данной статье буду писать о той ситуации, с которой столкнулся сам (тесты на др. ситуации не проводил за неимением времени).
Описание проблемы
Если в динамическом блоке атрибуты размещены на отдельном слое, то команда "_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:
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 отработала не корректно. Другой вариант блока выдаёт 76 ошибок. Некорректная работа _purge для приведённых выше примеров происходит в AutoCAD 2009 и 2012 (другие версии не проверял, но подозреваю, что они не исключение).
Решение проблемы
Важным моментом является то, что причиной ошибок возникают удалённые слои и удалённые атрибуты блоков (ключевое слово - "удалённые"). Это означает, что выявленные ошибки не являются опасными, поскольку они затрагивают лишь такие объекты базы данных, свойство IsErased которых равно true - они безвозвратно удаляются из базы данных при закрытии чертежа. Рассуждая логически получаем, то при очередном открытии этого файла, команда _audit уже не найдёт тех ошибок, которые были найдены в прошлой сессии работы, а если нет проблемных объектов -то не будет и ошибок связанных с ними. Я проверил своё предположение - оно оказалось верным: сохранив чертёж, закрыв и снова открыв его, запустил команду _audit и обнаружил, что ошибки исчезли.
Т.о. обозначенная проблема самоустраняется без каких либо наших усилий (по счастливому совпадению), хотя то, что команда purge работает некорректно - это плохо.
Любой желающий может самостоятельно воспроизвести эту проблему. Последовательность действий такова:
1. Создайте новый чертёж из пустого шаблона, например Acadiso.dwt
2. Создайте новый слой, к примеру Layer1
3. В чертеже создайте новое определение блока, к примеру из одной полилинии и одного определения атрибута. При этом определение атрибута поместите на любой слой, отличный от 0 - например на слой Layer1.
4. Создайте вхождение этого блока.
5. Удалите вхождение блока.
6. Выполните _purge _a
7. Выполните _audit
Вы получите 1 Total Error.
8. Внимательно посмотрите лог команды AUDIT.
9. Сохраните чертёж и закройте его.
10. Снова откройте этот чертёж и выполните audit - ошибка исчезает (по понятным причинам).
Видео, демонстрирующее баг, записанное для AutoCAD 2012:
Конечно трудно представить ситуацию по описанию. Могу только предположить, что такая ситуация похожа на то что файл открыт, и в такой ситуации сохранение не возможно. При работе в сети к примеру, кто то открыл файл на сервере. Но могу и не угадать.
Конечно трудно представить ситуацию по описанию.
Почему трудно. просто сохраняешся,а автокад не даёт сохраниться выдавая
"Для документа Е:\. .\.. выполняется команда.Нажмите ENTER для отмены или. Повторить".
. Правда какое-никакое решения я уже нашёл. Нужно закрыть этот файл, и тогда он уже сам предложит сохранить документ и сохранит его нормально. А потом откываешь файл и работаешь дальше.
Если мне не изменяет память, в автокаде есть команды _undefine и _redefine, которые позволяют "отключать" команды автокада и обратно "включать". Это позволяет, при необходимости, под именами стандартных команд автокада вызывать другие, назначенные вами. Т.е. вы вызываете команду сохранения, а по факту вызывается что-то другое. Возможно некий плагин выполнил эту операцию. Когда-то давно я пользовался этой возможностью в определённых целях.
Но "отмененную" команду всё равно можно вызвать, поставив перед её именем точку т.е.попробуйте так: ._save
П.С. не факт, что поможет в вашем случае - это всего лишь предположение.
Нужно закрыть этот файл, и тогда он уже сам предложит сохранить документ и сохранит его нормально. А потом откываешь файл и работаешь дальше
Бывало и у меня такое.Правда выходил из положения закрывая программу.Просто закрыть файл не получалось.
Задолбало ещё в 2002.
Думал, прекратится в новых версиях.
Ничего подобного. В 2008 та же песня.
Всегда спасался WBLOCKом.
Не знаю причин появления.
:(
К сожалению не могу поддержать Вас. У меня такого не было. Исключение это когда не заметил что открыл файл, а он уже открыт с другого компьютера. Тогда не сохраняется, сохраняю под другим именем без проблем. :)
Спасибо всем за ответы. А если кому интересно,то я на одной из веток форума услишал про команду _audit, и что вы думаете - при её выполнении происходит
"Для документа Е:\. .\.. выполняется команда.Нажмите ENTER для отмены или. Повторить".
Правда особой нужды в этой команде я не вижу,так что проблема это или нет,нужно ещё подумать.
Создаём четыре видовых экрана модели и назначаем ортогональные виды
Недавно пользователю понадобилось модифицировать код для создания раздельных видовых экранов в модели и установить каждому из них различные ортогональные виды. Код ниже создаёт четыре раздельных видовых экрана в модели. Для этого мы создаём новые ViewportTableRecord, которые представляют новые видовые экраны, а их параметры устанавливаем на основе текущей ViewportTableRecord. Это гарантирует, что ViewportTableRecord будет правильно настроен для установки орфографического представления. И в конечном итоге мы выполняем показ до границ. Вот скриншот результирующего расположения видовых экранов.
Имитация штриховки при помощи DrawableOverrule
Если вам нужно временно заштриховать примитив – для этой цели можно воспользоваться DrawableOverrule. Рисование шаблона штриховки в WorldDraw / ViewportDraw может быть как простым, так и сложным в зависимости от того, какой шаблон штриховки используется. Чтобы корректно заштриховать границу штриховки при помощи шаблона штриховки можно воспользоваться подрезкой по контуру, создаваемой в Overrule. Это упрощает реализацию Overrule, так как отсечка шаблона штриховки за пределами объекта обеспечивается подрезкой по заданным границам объекта.
Доступ к файлам стандартов оформления AutoCAD (.dws)
У меня появился шанс исследовать эту проблему, когда я наткнулся на запрос на форуме.
Когда пользователь вызывает команду _LAYTRANS, появляется диалоговое окно транслятора слоёв, и пользователю разрешено сопоставление из загруженного рисунка на текущий рисунок.
Слои из загруженного чертежа сопоставляются со слоями в текущем чертеже или могут быть сопоставлены пользователем.
Эта настройка может быть сохранена в качестве файла стандартов (.dws), для будущего использования, когда пользователь получает рисунок от клиента, пользователь может проверить, соответствует ли чертеж указанным файлам стандартов.
Файл стандартов оформления содержит таблицу трансляции слоёв в виде расширенных данных для каждого из слоёв, которые могут быть сопоставлены или транслированы.
Например, в этом файле есть соответствие между слоями A,B,C и 1,2,3. Тогда слои A,B,C файла стандартов (исходного) транслируются в слои 1,2,3 текущего чертежа (назначения)
Чтение dws-файлов точно такое же как и чтение dwg-файлов, только с другим расширением (спасибо Lee за подсказку).
У нас был вопрос, поднятый клиентом по поводу установки исходной точки штриховки в процессе её создания.
Было обнаружено, что исходную точку штриховки следует задавать не в той транзакции, в которой эта штриховка создаётся, для того чтобы исходная точка была установлена корректно.
Ниже код, который можно использовать для проверки :
Метод Editor.Snap для изменения режима привязки точки
При использовании метода Editor.GetEntity часто требуется получить в точности все координаты точки указания, используемые для выбора объекта.
Например, рассмотрим следующую ситуацию. Построим окружность с центром в точке point (0,0,5) и радиусом 5 в плоскости XY МСК при виде сверху.
При выборе точке на окружности с использованием Editor.GetEntity, PromptEntityResult.PickedPoint вернул : (3.50064192661003 , 3.35618169844321 , 0)
Следующий код показывает как можно расчленить группу, заданную её именем:Доступна обновленная документация AutoCAD Plant 3D SDK
Определение активного пространства и активного листа
Database.CurrentSpaceId содержит ObjectId текущего пространства (Модели или Листа). Вы можете использовать ее для идентификации активного пространства. При помощи LayoutManager мы может узнать активный лист.Как подсветить примитив внутри блока или внешней ссылки - NET Автор: Александр Ривилис
Вопрос: Для того чтобы подсветить примитив в текущем пространстве (Модели или Листа) достаточно воспользоваться методом Entity.Highlight(). А как подсветить примитив, который находится в составе блока (возможно вложенного блока) или во внешней ссылке?
Ответ: Для этой цели следует воспользоваться методом Entity.Highhlight(FullSubentPath subId), предварительно создав правильный FullSubentPath.
Ниже приведен код, который подсвечивает примитив внутри самого вложенного блока или внешней ссылки:
Вопрос:
Тоже самое касается и AutoCAD 2020.1.2 Update и AutoCAD 2021 со всеми обновлениями.
Вопрос: Можно ли запустить диалоговое окно калькулятора AutoCAD (не путать с палитрой калькулятора, вызываемой командой _QUICKCALC) и получить результаты вычисления?
Ответ: Диалоговое окно калькулятора (как и палитра калькулятора) упрятаны в сборке AcCalcUi.dll. Эта сборка не входит в состав ObjectARX SDK, так что следует сослаться на сборку в составе AutoCAD. Не забывайте указывать в свойствах сборки CopyLocal = False, чтобы не копировать эту сборку к своему приложению. Сборка содержит пространства имён:
Autodesk.AutoCAD.CalculatorUI
Autodesk.AutoCAD.CalculatorUI.CalculatorControl
Autodesk.AutoCAD.CalculatorUI.LayoutParser
Autodesk.AutoCAD.CalculatorUI.VariableParser
В простейшем случае для вызова калькулятора мы можем воспользоваться методом QCalcApplication.ShowModalCalculator. Смотрите пример использования:
Как преобразовать LineWeight в текстовую строку и обратно? Автор: Александр Ривилис
Ответ: Для этой цели можно воспользоваться классом Autodesk.AutoCAD.DatabaseServices.LineWeightConverter
Вот пример кода, который выполняет прямое и обратное преобразование:
Как скрыть командную строку без запроса к пользователю? Автор: Александр Ривилис
Как скрыть командную строку без запроса к пользователю?
Вопрос: Я использую для скрытия командной строки метод Autodesk.AutoCAD.Internal.Utils.CloseCommandLine(); При этом возникает запрос:
Можно ли как-то избавится от этого запроса, как будто в этом окне мы ответили Да?
Ответ: Это возможно при использовании HideableDialogSettings:
Как изменить цвет ПСЕВДОРАЗРЕЗА (LIVESECTION)? Автор: Александр Ривилис
RealDWG: Получение информации о цвете граней твердых тел
Используя RealDWG SDK следующий код позволяет получить цвета граней твердых тел в чертеже AutoCAD.
Для извлечения цветов из компонентов твердого тела используется BREP API, поэтому необходимо сослаться на сборку AcDbMgdBrep.dll из RealDWG SDK.
Разделение составных твердых тел на отдельные тела
Мы можем воспользоваться методом Solid3d.SeparateBody
Этот метод разделяет твердое тело на коллекцию непересекающихся твердых тел.
Вызывающее этот метод приложение должно что-то сделать с твердыми телами полученной коллекции (или добавить их в базу данных или удалить, если они больше не нужны). Когда вызывающее приложение закрывает твердое тело, результирующее твердое тело фиксируется в базе данных.
Таким образом если не добавить твердые тела из коллекции в базу данных, мы потеряем какую-то информацию.
Переопределение клавиши вызова Помощи при помощи CUI API
Существует общая потребность изменить назначение клавиши вызова Помощи с F1 на какую-нибудь другую клавишу (или сочетание клавиш), так как на клавиатуре F1 и ESC находятся рядом, а клавиша ESC используется для отмены запущенной команды или отмены выбранных объектов. Поскольку клавиша F1 соседствует с ESC - шансы нажатия этой клавиши случайно довольно высоки. F1 приводит к появлению окно справки, что в указанных случаях является контрпродуктивным.Чтобы избежать этого, мы можем присвоить F1 команде Отмена, а CTRL + ALT + H для справки.
Фильтр для выбора примитивов на разных слоях
Эта статья показывает простой способ для создания фильтра, который позволит выбрать примитив типа A на слое L и типа B на нескольких слоях L1, L2, L3…. И так далее.
Определение геометрического центра LWPOLYLINE, 2DPoly и 3DPoly
К сожалению, нет прямого API для получения геометрического центра для трех видов полилиний. Кто-то может использовать топологические библиотеки, а кто-то предпочтет простейший из возможный способов – конвертирование AcDbPolyline, AcDb2Polyline, AcDb3dPolyline в область (AcDbRegion) без добавления его в чертеж, чтобы получить геометрический центр.
Читайте также: