Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: p3452 от 14.02.22, 22:56:23

Название: Существует ли аналог метода ksDestroyObjects на API7?
Отправлено: p3452 от 14.02.22, 22:56:23
Разрушение сложного объекта на составные элементы:
// ksDocument2D ksDoc2D;    // API5
// IDrawingObject iDrawingObject;   // API7
if (iDrawingObject != null && ksDoc2D != null)
// Разрушить объект заданный Reference
if (ksDoc2D.ksDestroyObjects(iDrawingObject.Reference) == 0)
iDrawingObject.Update();
- мешанина из интерфейсов...

В связи с этим вопрос:
Существует ли аналог метода ksDestroyObjects (или самого действия) на API7?
Название: Re: Существует ли аналог метода ksDestroyObjects на API7?
Отправлено: Михаил88 от 15.02.22, 08:29:46
я тоже искал и не нашел.
Название: Re: Существует ли аналог метода ksDestroyObjects на API7?
Отправлено: Sabahs от 15.02.22, 09:08:47
Если пишется библиотека dll(rtw), то можно использовать API экспортных функций ksDestroyObjects.
На API7 можно попробовать IApplication.ExecuteKompasCommand, но код будет длиннее.
Название: Re: Существует ли аналог метода ksDestroyObjects на API7?
Отправлено: Михаил88 от 15.02.22, 09:38:17
# Разрушить макроэлемент
application.ExecuteKompasCommand(kompas6_constants.ksCMDestroyMacro, False)

Тоже думал сделать через ExecuteKompasCommand, но с первого раза не увидел нужную команду. После Вашего сообщения еще раз решил внимательно просмотреть команды и нашел. Спасибо.
Название: Re: Существует ли аналог метода ksDestroyObjects на API7?
Отправлено: p3452 от 15.02.22, 12:51:36
Вот, уж...! :o: 
Сам бы, ни за что не догадался, что Ассоциативная таблица Отчета подпадает под определения "Макро объект"!? :o
Однако - работает (на выделенном объекте):
iDrawingObject.Application.ExecuteKompasCommand((int)ksKompasCommandEnum.ksCMDestroyMacro, false);