Работа с dbmod
Известно, что внесение любых изменений в файл dwg моментально меняет системную переменную DBMOD. Именно это обеспечивает отмену зуммирования / панорамирования, запросы при сохранении измененных файлов и т.п. Но иногда такая тщательность становится лишней....
Вопрос - что же, собственно, можно сделать? DBMOD является системной переменной "ReadOnly", блокировать ее изменение, кажется, можно только из ObjectARX.
Разве? Ага, щщас! На theswamp.org (точнее - в теме What do they mean? How do I use them? приводятся две очень интересные lisp-функции.
Поскольку на theswamp требуется регистрация, приведу здесь полный текст (ну и вольный перевод, конечно ;))
acad-push-dbmod
The DBMOD system variable keeps track of changes to a drawing that would prompt you to save, when you close. In other words, anything that you do after issuing acad-push-dbmod will not be seen as having changed the drawing.
EDIT: In retrospect, I shouldn't say that it puts the variable on hold... what it does is store the value of the DBMOD variable. If you don't issue the acad-pop-dbmod command you'll still be prompted to save.
acad-pop-dbmod
This restores the DBMOD variable to it's state when you issued the acad-push-dbmod command.
Try it out. Open a blank drawing and type (acad-push-dbmod) and the command line, then press ENTER. It should return T. Now draw some things, zoom around, erase some things, etc. Now type (acad-pop-dbmod), press ENTER, and close AutoCAD.
No prompt for saving the drawing.
Very helpful when you're running a routine that you don't want to force the user to have to reply to a save query, such as in a script or at startup.
acad-push-dbmod
Сохраняет текущее значение DBMOD и блокирует ее от изменения.
acad-pop-dbmod
Восстанавливает стандартную обработку DBMOD.
Эта пара может оказаться чрезвычайно полезной, если при старте нового файла запускается некоторое количество кода, которое вносит изменения в файл. Если эти функции не вызывать, то при попытке закрытия пустого файла будет выводиться запрос на сохранение.
Кроме того, можно попробовать (сам я пока не пытался, так что осталось на уровне "идеи") закинуть пользовательские реакторы на команды панорамирования, зуммирования, 3dorbit и т.п. Может, тогда и удастся наконец избавиться от надоедающих отмен перемещения изображения на чертеже
А программ-то нет!? И на сайте только обращение к ним а программ нет.
Каких программ? Единственные варианты вообще из-под лиспа работать с этой переменной приведены в статье.