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

Профессиональные вопросы => Программирование приложений => Тема начата: A.n.d.r.e.w от 02.12.23, 14:41:39

Название: Как получить указатель на объект имея референс.
Отправлено: A.n.d.r.e.w от 02.12.23, 14:41:39
Привет всем. Для созданного в чертеже макрообъекта, можно через панель свойств задавать Обозначение и Наименование (при желании еще и другие свойства), эти данные отображаются в дереве, их удобно использовать для селектирования объектов или для создания отчетов. А вот как задать эти параметры программно при создании макрообъекта ума не приложу. GetObjParam и SetObjParam не канают. Есть вроде бы доступ через интерфейс IMacroObject -> IPropertyKeeper может там оно? но никак не могу получить указатель на свой создаваемый программно макрообъект.
Как получить указатель имея референс? Тупняк какой-то.

Название: Re: Как получить указатель на объект имея референс.
Отправлено: Nipal от 02.12.23, 15:02:51
Использовать Macro3D --> ksEntity.
IMacroObject, свойств хватает, но не пользовался.
Название: Re: Как получить указатель на объект имея референс.
Отправлено: A.n.d.r.e.w от 02.12.23, 17:35:34
не понял как это мне поможет
Название: Re: Как получить указатель на объект имея референс.
Отправлено: A.n.d.r.e.w от 02.12.23, 19:26:10
Короче нашел сам ) если кому понадобится.
У коллекции MacroObjects есть свойство Get_MacroObject(index) возвращает IMacroObject если передать в качестве индекса референс.
Итого:
...IKompasDocument2D->ViewsAndLayersManager->Views->(ActiveView as IDrawingContainer)->MacroObjects->Get_MacroObject(refmacro)
ну и далее as IPropertyKeeper


Название: Re: Как получить указатель на объект имея референс.
Отправлено: Nipal от 02.12.23, 20:22:16
Но, вот видите, разобрались самим, всё очень просто.
Название: Re: Как получить указатель на объект имея референс.
Отправлено: A.n.d.r.e.w от 02.12.23, 22:05:45
Цитата: Nipal от 02.12.23, 20:22:16Но, вот видите, разобрались самим, всё очень просто.

а так всегда. пол дня бьешься об стену башкой, а стоит написать в форум так через 10 минут осинит обязательно. спасибо форумам)))
Название: Re: Как получить указатель на объект имея референс.
Отправлено: msvteh от 05.12.23, 21:28:41
для задания и получения свойств макроэлемента https://forum.ascon.ru/index.php?topic=29948.20
Название: Re: Как получить указатель на объект имея референс.
Отправлено: A.n.d.r.e.w от 01.06.24, 12:49:11
для себя напоминалку добавлю.
можно использовать функцию преобразования ksTransferReference

имеем референс объекта (макроэлемента) ref: reference
хотим получить интерфейс Api7  im:IMacroObject


im:=iunknown(ksTransferReference(ref, 0)) as IMacroObject;