Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как работать с методом Close в Компас-3D v21

Автор Yahooo05, 12.04.23, 05:46:46

« предыдущая - следующая »

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

Yahooo05

Добрый день!

Условно такой код на C#
KompasObject _kompas5 = System.Runtime.InteropServices.Marshal.GetActiveObject("Kompas.Application.5") as KompasObject;
IApplication _kompas7 = _kompas5.ksGetApplication7() as IApplication;

textBox2.Clear();

textBox2.AppendText("docs in session cnt: " + _kompas7.Documents.Count.ToString() + Environment.NewLine);

textBox2.AppendText("open doc <filename>" + Environment.NewLine);
IKompasDocument doc = _kompas7.Documents.Open("filename", true, false);
textBox2.AppendText("docs in session cnt: " + _kompas7.Documents.Count.ToString() + Environment.NewLine);

textBox2.AppendText("close doc <filename>" + Environment.NewLine);
doc.Close(DocumentCloseOptions.kdPromptToSaveChanges);
textBox2.AppendText("docs in session cnt: " + _kompas7.Documents.Count.ToString() + Environment.NewLine);

System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
textBox2.AppendText("docs in session cnt: " + _kompas7.Documents.Count.ToString() + Environment.NewLine);

в Компас v20 работает нормально (до открытия 0 документов и после закрытия 0 документов). А в Компас v21 документ визуально закрывается, но ссылку на него компас держит (до открытия 0 документов, а после закрытия 1 документ).

Как закрыть документ, чтобы в Компасе и в Documnets.Count было одинаковое количество?