• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

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

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

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

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

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

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

IKompasDocument3DPtr, IPart7Ptr где найти описание данного объекта в SDK

Автор Urbanito, 15.08.22, 21:53:23

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

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

Urbanito

Всем доброго дня!
В Примерах SDK, имеется код:
if ( newKompasAPI ) // newKompasAPI - интерфейс IApplicationPtr
{
IKompasDocument3DPtr doc3D( newKompasAPI->ActiveDocument );
if ( doc3D )
{
IPart7Ptr topPart ( doc3D->TopPart );
if ( topPart )
{
long count = topPart->GetInstanceCount( NULL ); // Общее количество компонентов
Message( _bstr_t( count) );
_variant_t uniqueParts( topPart->PartsEx[( long)ksUniqueParts] );
}
}
}

В них используются объекта IKompasDocument3DPtr, IPart7Ptr про которые нигде ничего не говорится. НИ в SDK, ни в библиотеке классов Компас.
На мой уточняющий вопрос, наша дорогая и всеми горячо любимая ТП отчетила: Необходимо производить поиск описаний по следующим ключевым словам: IKompasDocument3D, IProductDataManager.
Вопрос: Подскажите пожалуйста, где найти описание для данных объектов и как применить их в коде.(так как данного класса/метода нет в библиотеке классов, то и VS ругается)

p3452

Цитата: Urbanito от 15.08.22, 21:53:23В них используются объекта IKompasDocument3DPtr, IPart7Ptr про которые нигде ничего не говорится. НИ в SDK, ни в библиотеке классов Компас.
Это "заморочки" C++...
В Справке по SDK смотреть - IKompasDocument3D и IPart7, соответственно.

Vi2

Цитата: Urbanito от 15.08.22, 21:53:23В них используются объекта IKompasDocument3DPtr, IPart7Ptr
Это не объекты, а производные типы - так называемые типы смарт-пойнтеров, упрощающие работу с интерфейсными указателями в С++. Они образуются слиянием имени интерфейса и суффикса "Ptr". Они образуется при импорте TLB и описаны примерно так:

_COM_SMARTPTR_TYPEDEF(IKompasDocument3D, __uuidof(IKompasDocument3D));

Посмотри, у тебя в заголовочных файлах проекта есть строчка

#import "kAPI7.tlb" ...

По ней создаётся файл kapi7.tlh в промежуточных папках, в котором и будет написано то, что я выше написал.
+ Благодарностей: 1

p3452

Цитата: Vi2 от 16.08.22, 10:22:00Это не объекты, а производные типы
Да "пофиг" на ЭТО автору темы, как и большинству других - ему важнее - где найти информацию...

graphdark

Смотри примеры в соответствующей ветке. В студии чудесато с апи работать. Аналогичный код в билдере работал без проблем. А в студии основная проблема была в импорте .tlb. то есть иной раз все было ок и все работало, потом все отпадывало и интерфейсы найти не мог. А в документации искать просто c++ упрощение ksPartPtr, значит в документации искать ksPart.