(изменено: Александр Макаров, 16 октября 2009г. 09:17:49)

Тема: не работает пример appContextNewDocument

Добрый день.
Проблема с созданием документа по своему шаблону.

AutoCAD 2008, ObjectARX 2008. Windows XP SP 3.

Попробовал пример из samples\editor\docman.
В функции newSyncDoc() в pData указал свой шаблон (с полным путем), откомпилировал, загрузил в дебаге.
Сохранил текущий документ. Скомандовал newsyncdoc.

newSyncDocHelper вызывается, но
Acad::ErrorStatus er = acDocManager->appContextNewDocument((const TCHAR *)pData);
возвращает er == eNotApplicable
Новый документ не создается (остается открытым текущий документ).

Из командной строки _new путь\шаблон.dwt выполняется успешно (получаю новый документ с моими блоками и слоями), то есть шаблон в порядке.

Как быть? Какие-то настройки? Может быть есть другой способ?

Re: не работает пример appContextNewDocument

Какое значение системной переменной SDI?

Re: не работает пример appContextNewDocument

SDI = 1 (нам так надо)

Выходит, алгоритм такой будет: поставить  SDI 0, создать новый документ, закрыть предыдущий, вернуть SDI 1.

Так?

Re: не работает пример appContextNewDocument

Лучше так не делать. Тем более, что 100% уверенности нет, что можно переключить SDI (например, загружено приложение, которое не позволяет переключать SDI). Если SDI == 1, пользуйся функцией acedSyncFileOpen

Re: не работает пример appContextNewDocument

Александр Ривилис пишет:

например,загружено приложение, которое не позволяет переключать SDI

Да, как раз наш случай.

Если пользоваться acedSyncFileOpen, то забыть про .dwt ?

Re: не работает пример appContextNewDocument

Александр Макаров пишет:

Если пользоваться acedSyncFileOpen, то забыть про .dwt ?

Просто копируешь .dwt в .dwg и открываешь его.

Re: не работает пример appContextNewDocument

Смысл использования именно шаблона был в том, что создавался документ с заголовком типа "Чертеж1.dwg", а при закрытии документа Автокад непременно спрашивал об имени, под которым следует сохранить файл. Соответственно, при закрытии без сохранения в папке пользователя ничего нового не создавалось (это важно).
Теперь придется за этим следить самим - выкрутиться через временный каталог, ограничение прав на изменение "шаблона", или еще как-то...

В любом случае - спасибо за помощь!