Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: avc от 15-10-2021, 18:49:31
-
Есть у меня команда, которая закрывает чертеж, чтоб скопировать файл во внешнее хранилище и потом открывает обратно. 10 лет все работало, но в новых Автокадах и виндах иногда стали появляться проблемы. Периодически метод doc.CloseAndSave(filename) закрывает чертеж, но ничего не сохраняет. Даже bak файла нет. Иногда сохраняет битый чертеж. Иногда работает нормально. Сейчас обнаружил, что проблема пропадает если выключить автоматические сохранения. Может кто-то сталкивался с такой проблемой?
Я хочу попробовать отключать автосейвы на время действия команды. Но как это сделать программно? Что-то я не найду какие системные переменные его отключают.
-
Может кто-то сталкивался с такой проблемой?
Не сталкивался.
Я хочу попробовать отключать автосейвы на время действия команды. Но как это сделать программно? Что-то я не найду какие системные переменные его отключают.
На время действия команды??? SAVETIME (https://help.autodesk.com/view/ACD/2020/RUS/?guid=GUID-AE54276F-ACF1-41A1-87EC-56E297CDB067) устанавливаешь в 0.
-
Похоже насчет автосейвов я не угадал. Зато нашел случай когда CloseAndSave не срабатывает в 100% случаев. Оказывается ему надо, чтоб в файле были хоть какие-то не сохраненные изменения. То что я даю файлу другое имя - не важно. Нет изменений - не появится новый файл. Когда я эту команду проектировал для 2012 такой проблемы не было. Не знаю с какой версии такой глюк пошел, но похоже не давно...
-
Нет изменений - не появится новый файл.
Устанавливай признак изменённости.
-
Устанавливай признак изменённости.
А его можно установить? DBMOD - переменная только для чтения
-
avc,
Два способа:
1. Что-то изменить в базе. Например, добавить в базу и потом удалить что-то. Или поменять какую-то из системных переменных (сохраняемых в базе), а затем восстановить её.
2. P/Invoke acdbSetDBMod: https://adn-cis.org/ustanovka-i-ochistka-priznaka-modifikaczii-dokumenta-v-.net.html
-
Что-то изменить в базе.
А! Ну так я и сделал. Продолжаю тестировать...