Выполняется регенерация модели автокад зависает
Весьма актуальным является вопрос восстановления чертежей после системного сбоя, аварийного завершения работы программы и др. возможных причин. В данной статье уделим особое внимание проверке файлов AutoCAD на наличие ошибок, а также рассмотрим “Диспетчер восстановления чертежей” AutoCAD. Не зная, как выполнить восстановление файла Автокад, можно потратить уйму времени на создание чертежа заново.
Как происходит исправление ошибок в AutoCAD?
Разработчики AutoCAD предусмотрели возможность программных сбоев и учли это. Поэтому при возникновении такой ситуации, в рабочем чертеже стараются сохранить последние внесенные изменения, а сам файл помечается как поврежденный. Когда программа запускается после неполадки, то автоматически запускается процедура проверки файлов на наличие в них ошибок. Так же автоматически происходит их восстановление. При этом происходит восстановление сохраненной базы изменений.
Бывает такой вариант, что файл AutoCAD открывается без проблем, однако в нем пропадает часть информации, или чертеж вообще пустой, хотя вы уверены, что объекты из него не удаляли. Тогда необходимо вручную проверить чертеж. Для этого переходим в “Файл” → “Утилиты” и выбираем команду “Проверить” (см. рис).
Диспетчер восстановления чертежей AutoCAD.
В Автокад восстановление файлов можно выполнять через более мощный инструмент, так называемый “Диспетчер восстановления чертежей”. При запуске программы после сбоя он открывается по умолчанию. Однако его можно вызвать принудительно через “Утилиты” (см. рис. выше). Благодаря Диспетчеру восстановлению подлежит максимально возможное количество изменений, которые были внесены в чертеж с момента последнего сохранения и до «вылета» программы.
Как видно из рис. ниже, Диспетчер содержит файлы архива, которые удалось сохранить до сбоя, а также все подробности, в частности, название файлов, место их хранение и время их последнего сохранения. Давайте более подробно рассмотрим с какими файлами предстоит работать.
Диспетчер восстановления чертежей AutoCAD содержит список файлов в порядке их последнего сохранения , т.е. файл автосохранения (. *sv$ ), стоящий на первом месте, предоставляет больший интерес, т.к. он имеет последние изменения, которые были внесены в чертеже (см. дату сохранения на рис.).
В Диспетчере файл с расширением *.dwg содержит внесенные в него изменения на тот момент, когда вы вручную сохранили файл AutoCAD. В «Подробностях» эту информацию можно посмотреть.
Что касается файла *.bak, то это резервная копия, которая появляется во время сохранения вами чертежа, т.е. когда выполняется действие “Меню” – “Сохранить” или Ctrl+S. Важно то, что при каждом сохранении этот файл перезаписывается, но при этом в документе хранится версия проекта на момент предыдущего сохранения. Как правило, он бывает полезен, если вы испортили файл, например, что-то удалили или внесли нежелательные поправки, после чего сохранили файл, и возможности «откатить» последние действия нет.
Итак, для восстановления файла нужно дважды щелкнуть ЛКМ по проекту с расширением ( .*sv$ ), он откроется в AutoCAD. Этот чертеж будет содержать данные, которые были внесены на момент последнего автосохранения, но при этом утеряны изменения, сделанные в интервале автосохранения. После этого, перейдите в “Меню” и выберите «Сохранить как…». Задайте новое имя и место сохранения файла. Все, можете продолжать работу!
Ну, что ж, теперь вы знаете, что делать, если в AutoCAD файл чертежа испорчен. Ознакомьтесь также с материалом, в котором рассказывается про временные файлы AutoCAD и их отличие от файлов Автосохранения.
Восстановление Автокад. Сброс пользовательских настроек
Работая в любой программе, всегда хочется ее настроить и оптимизировать под себя. Однако очень часто бывает, что можно случайно закрыть какую-то панель или, еще хуже, изменить доступ к важным системным папкам. Это может сильно затруднит работу. Поэтому важно знать, как восстановить Автокад по умолчанию .
Стоит отметить, что не обязательно полностью сбрасывать все настройки и возвращать программу в первоначальный вид. Можно попробовать решить проблему локально! В этом вам поможет следующий материал:
Но, если ваша проблема более глобальная, то придется сбросить все настройки.
AutoCAD: сброс настроек
Чтобы восстановить настройки рабочего пространства в Автокаде нажмите меню «Пуск» на панели задач вашего компьютера, затем найдите папку «AutoCAD», как показано на рис.
Нажмите «Восстановить параметры по умолчанию». При этом сама программа Автокад должна быть обязательно закрыта . Появится диалоговое окно восстановления.
Здесь следует выбрать второй вариант «Сброс пользовательских настроек» . Буквально через 30 сек. программа Автокад автоматически примет все настройки, которые заложены разработчиками по умолчанию.
Вот такие нехитрые действия позволят вам избежать неприятных ситуаций и в любой момент вернуть прежний вид программы.
Причина подтормаживаний и зависаний может крыться:
- в слабом железе
- в замусоренной ОС
- настройках Автокада
- большом размере файла .dwg
В данной статье рассмотрим третий пункт. Все примеры, скриншоты и консольные команды будут браться из Автокад 2015. Поэтому в более ранних версиях или поздних, возможно отсутствие этих параметров. Так что вам придется самим проводить поиск и анализ, где расположены эти функции и как они называются в вашей версии. И так, поехали.
Проблемы в Автокад
Сервис - Настройка - вкладка Система - Производительность графики
При переключении между окнами может быть задержка в отображении изображения
Причина может быть в используемой панели диспетчере слоев.
Решение: просто убрать из боковой панели данный диспетчер
Так же проверьте, что у вас отключена и эта настройка. Она повысит производительность, если в чертеже используется много слоев.
Диспетчер свойств слоев – Параметры – Показать используемые слои (либо в командной строке прописать SHOWLAYERUSAGE 0)
Беда может проявляться и при работе с линиями, точнее при наведении курсора мыши на перекрывающиеся объекты и тут может помочь отключение циклического выбора
Пункт меню Сервис – Режимы рисования – вкладка Циклический выбор – Выключаем
Либо на панели адаптации опять же выключаем данный режим, либо в командной строке SELECTIONCYCLING 0
При плавающем окне Командной строки, могут так же наблюдаться подтормаживания и небольшие рывки.
Лечится это отключением ctrl+9 или пункт меню Вид – Палитры – Командная строка
Выключить во время черчения все плавающие панели (Сочетания клавиш Ctrl + 1 - Ctrl + 9)
И опять тормоза в Автокаде, но теперь при наведении курсора мыши на объекты. Поможет отключение предварительного просмотра объектов.
Сервис – Настройка – вкладка Выбор – раздел Просмотр или SELECTIONPREVIEW 0
Очень тормозит анимация при построении отрезков, полилиний и т.п.
В AutoCAD в командной строке введите _vtoptions. Снять все галочки в выпавшем окне.
Автокад начинает беспощадно тормозить при работе с листами. При переключении с листа на лист зависает и отжирает всю оперативную память.
Возможно поможет использование команды ANNOALLVISIBLE 0
Здесь приведены примеры настроек, которые могут изменить ваши привычные и удобные мелочи, которыми пользуетесь повседневно в работе. Но поиграв с этими параметрами, можно добиться того, чтобы Автокад больше не тормозил. Вторая часть статьи.
И в заключении очень короткое, но наглядное видео как решить проблему с тормозами в несколько кликов:
Разрабатывая различные коды для AutoCAD, я обнаружил, что зачастую самым емким по времени и ресурсам становится обновление чертежа. Регенерация, проще говоря.
Идея, казалось бы, проста и незатейлива: отключаем REGENMODE, выполняем что хотим и потом восстанавливаем значение переменной. Ну, для гарантии выполняем обновление - хоть командой _.regenall, хоть функцией (redraw), хоть через (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acactiveviewport).
Но, к сожалению, не все так просто и прозрачно, как хотелось бы.
Регенерация чертежа, насколько я понял, в обязательном порядке производится при использовании командных методов. Команда завершена - чертеж обновлен. Особенно это касается использования команд редактирования блоков и внешних ссылок. REGENMODE в таком случае игнорируется.
Допустим, мы добавляем в чертеж примитив. И добавляем в текущее пространство, используя entmake или entmakex. В таком случае регенерация, как правило, не выполняется, но примитив отображается сразу. При добавлении примитива в описание какого-либо блока (т.е. указывается группа 330) по окончании обновления блока, насколько я помню, регенерация будет выполняться обязательно. Ставил подобные эксперименты уже очень давно, да и ActiveX мне нравится больше - поэтому здесь могу ошибаться.
Если нам надо добавлять большое количество примитивов в чертеж, то entmake внутри текущего пространства в данном случае может сыграть плохую шутку: AutoCAD будет понимать, что база все обновляется, обновляется, обновляется. А регенерации все нет и нет. В один не самый прекрасный момент ACAD может решить, что "все, парни, с меня хватит" - и начать регенерацию.
Если надо менять большое количество примитивов, то entmod тоже не самое лучшее решение, как мне кажется. Насколько я помню, после entmod использование entupd практически обязательно - в противном случае примитив может быть "полностью обновлен" только после перезапуска чертежа. То есть - здравствуй, регенерация по примитиву. Опять же, могу ошибаться.
Добавление примитива в чертеж через ActiveX не вызывает регенерацию по каждому чиху. Но если выполняется добавление нескольких сотен примитивов, то регенерация может быть вызвана в любой момент. То же самое касается и изменения примитивов. И на REGENMODE в подавляющем большинстве случаев AutoCAD'у плевать.
Если задача состоит именно в том, чтобы в текущий чертеж добавить сотни или тысячи примитивов, или выполнить многократное изменение какого-либо примитива (например, надо подогнать высоту и ширину многострочного текста так, чтобы он вписывался в определенные рамки), то наиболее быстрым вариантом, с моей точки зрения, является реализация примерно следующего алгоритма:
- Создание большого количества примитивов
- Создание описания анонимного блока
- Создание внутри этого анонимного блока всех нужных примитивов
- Вставка анонимного блока, его разбитие и уничтожение вхождения
Вариант плох тем, что база чертежа становится достаточно сильно фрагментированной: хендл описания блока, хендлы объектов внутри описания блока, хендл вхождения блока - и все это на выброс. Теоретически можно превысить предел хендлов (он хотя и велик, но не бесконечен). Но метод хорош тем, что вся работа выполняется абсолютно не затрагивая графическую область чертежа. И лишь в самом конце - вставка и разбитие.
- Создание описания анонимного блока
- Создание внутри этого анонимного блока нового примитива или копирование в него существующего
- Изменение созданного (или скопированного) примитива
- Получение нужных характеристик из созданного (скопированного) примитива
- Необязательное отключение REGENMODE
- Изменение реального примитива на основе полученных данных
- Восстановление REGENMODE
-
Этот вариант тоже не без недостатков. И они те же, что и у первого: ненужная фрагментация базы чертежа, хотя и не такая глобальная.
Конечно, можно выкрутиться: создать новый документ (чтобы в него не переключиться, создавать наверняка придется через ObjectDBX), в нем все делать, а потом просто импортировать соответствующие элементы. Но на моей практике такого пока еще не требовалось.
Читайте также: