ksRebuildDocument не перестраивает чертёж

Автор HellFox, 18.11.15, 14:01:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

HellFox

Всем доброго дня, столкнулся с проблемой, обозначенной в теме. Имеется файл с 3Д моделью и файл с ассоциативным чертежом на основе модели. Программно изменяю деталь, сохраняю, закрываю модель, далее если открываю файл чертежа в видимом режиме, то компас предлагает мне перестроить чертёж. Соглашаюсь, он перестраивается и далее по коду сохраняет чертёж. Если отказываюсь от перестроения, то перестроение не происходит, файл сохраняется и т.д.
если открываю чертёж в невидимом режиме, то просто чертёж не перестраивается, а сохраняется и т.д.

код использую такой

...
Document2D:=ksDocument2D(kompas.Document2D());
Document2D.ksOpenDocument(filename,false);
document2d.ksRebuildDocument;
Document2D.ksSaveDocument(filename);
...

Можно попробовать установить флаг HideMessage в ksHideMessageYes, после использования ksRebuildDocument вернуть в исходное состояние, но не факт, что поможет.

IApplication.HideMessage:=ksHideMessageYes;
Document2d.ksRebuildDocument;
IApplication.HideMessage:=ksShowMessage;

HellFox

18.11.15, 20:46:20 #2 Последнее редактирование: 18.11.15, 21:00:04 от HellFox
не помогло, в невидимом режиме документ не перестраивается при помощи Document2d.ksRebuildDocument;
а в видимом режиме по вашему методу Document2d.ksRebuildDocument; и не нужен совсем.

спасибо, для меня проблема решена путём

KompasApi:=GetActiveOleObject('Kompas.Application.7') as IApplication;
KompasApi.HideMessage:=ksHideMessageYes;
Document2D.ksOpenDocument(filename,false);
KompasApi.HideMessage:=ksShowMessage;
Document2D.ksSaveDocument(filename);
где KompasApi: IAplication;