Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Борис_С от 11-12-2020, 13:07:55

Название: Как игнорировать изменения
Отправлено: Борис_С от 11-12-2020, 13:07:55
Всем доброго дня!
Я работаю с чертежом. Меняю изображение элементов на экране.
При выходе из программы появляется сообщение "Сохранить изменения?"
Можно как-то проигнорировать эти действия, так, чтобы сообщение не появлялось?
Спасибо.
Название: Re: Как игнорировать изменения
Отправлено: Александр Ривилис от 11-12-2020, 17:12:53
Можно как-то проигнорировать эти действия, так, чтобы сообщение не появлялось?
Изменения должны сохранится в чертеже или нет?
Название: Re: Как игнорировать изменения
Отправлено: Борис_С от 11-12-2020, 20:58:30
Нет, не должны.
Название: Re: Как игнорировать изменения
Отправлено: Александр Ривилис от 11-12-2020, 21:24:24
Нет, не должны.
AutoCAD не рассчитан на потерю всего, что наработали в чертеже и не согласен без запроса закрываться с потерей данных. Впрочем так действуют и программы из MS Office, да и любые нормальные приложения.
Название: Re: Как игнорировать изменения
Отправлено: Борис_С от 14-12-2020, 15:18:22
Я пишу уже не первый plugin. В том числе я написал plugin для стыковки нашей программы и Компаса. Там (в Компасе) есть функция ksZoomScale для масштабирования изображений. После применения этой функции при выходе из программы программа никаких вопросов не задает.
Самым оптимальным, на мой взгляд, было бы ввести какую-то глобальную переменную булева типа. При установке значения этой переменной в true
при выходе из программы вопрос о сохранении изменений не должен был бы задаваться.
Название: Re: Как игнорировать изменения
Отправлено: Привалов Дмитрий от 14-12-2020, 15:34:19
При установке значения этой переменной в true
при выходе из программы вопрос о сохранении изменений не должен был бы задаваться.

К сожалению в AutoCAD нет такой возможности.
Существуют варианты:
1. Принудительно закрыть приложение. (Аварийное завершение).
2. Пройтись по всем чертежам и каждый закрыть без сохранения. После этого можно закрывать AutoCAD.
Название: Re: Как игнорировать изменения
Отправлено: Александр Ривилис от 14-12-2020, 15:50:21
Борис_С,
Есть переменная DBMOD: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2020/RUS/AutoCAD-Core/files/GUID-E255E808-2D48-4BDE-A760-FFEA28E5A86F-htm.html
Но она вообще-то read-only. И только при помощи недокументированной функции acdbSetDbmod (в ObjectARX) можно сбросить этот флаг, и тогда AutoCAD не будет спрашивать сохранять файл или нет.
Здесь пример её использования в .NET: https://adn-cis.org/ustanovka-i-ochistka-priznaka-modifikaczii-dokumenta-v-.net.html
Вопрос только в том, когда её вызвать.