Разрушение сложного объекта на составные элементы:
// ksDocument2D ksDoc2D; // API5
// IDrawingObject iDrawingObject; // API7
if (iDrawingObject != null && ksDoc2D != null)
// Разрушить объект заданный Reference
if (ksDoc2D.ksDestroyObjects(iDrawingObject.Reference) == 0)
iDrawingObject.Update();
- мешанина из интерфейсов...
В связи с этим вопрос:
Существует ли аналог метода ksDestroyObjects (или самого действия) на API7?
я тоже искал и не нашел.
Если пишется библиотека dll(rtw), то можно использовать API экспортных функций ksDestroyObjects.
На API7 можно попробовать IApplication.ExecuteKompasCommand, но код будет длиннее.
# Разрушить макроэлемент
application.ExecuteKompasCommand(kompas6_constants.ksCMDestroyMacro, False)
Тоже думал сделать через ExecuteKompasCommand, но с первого раза не увидел нужную команду. После Вашего сообщения еще раз решил внимательно просмотреть команды и нашел. Спасибо.
Вот, уж...! :o:
Сам бы, ни за что не догадался, что Ассоциативная таблица Отчета подпадает под определения "Макро объект"!? :o
Однако - работает (на выделенном объекте):
iDrawingObject.Application.ExecuteKompasCommand((int)ksKompasCommandEnum.ksCMDestroyMacro, false);