Как получить указатель на объект имея референс.

Автор A.n.d.r.e.w, 02.12.23, 14:41:39

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

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

A.n.d.r.e.w

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


Nipal

#1
Использовать Macro3D --> ksEntity.
IMacroObject, свойств хватает, но не пользовался.

A.n.d.r.e.w


A.n.d.r.e.w

Короче нашел сам ) если кому понадобится.
У коллекции MacroObjects есть свойство Get_MacroObject(index) возвращает IMacroObject если передать в качестве индекса референс.
Итого:
...IKompasDocument2D->ViewsAndLayersManager->Views->(ActiveView as IDrawingContainer)->MacroObjects->Get_MacroObject(refmacro)
ну и далее as IPropertyKeeper



Nipal

Но, вот видите, разобрались самим, всё очень просто.

A.n.d.r.e.w

Цитата: Nipal от 02.12.23, 20:22:16Но, вот видите, разобрались самим, всё очень просто.

а так всегда. пол дня бьешься об стену башкой, а стоит написать в форум так через 10 минут осинит обязательно. спасибо форумам)))

msvteh

+ Благодарностей: 1

A.n.d.r.e.w

для себя напоминалку добавлю.
можно использовать функцию преобразования ksTransferReference

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


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