доступ к детали в сборке при помощи API 7

Автор safonoval, 25.08.14, 20:22:36

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

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

safonoval

Добрый день.
Подскажите, как получить  IPart7, имея IParts7

Есть такое
IKompasDocument3D doc3D = NULL;
IPart7 ass;
IParts7 parts;
doc3D = docs.Open(openFileDialog.GetPathName(), true, false);
ass = doc3D.GetTopPart();
AfxMessageBox(ass.GetName());
parts = ass.GetParts();
int counts = parts.GetCount();
str.Format("%d", counts);

Количество деталей вроде считает, как получить интерфейс конкретной детали?

safonoval

По логике необходима функция
Part = iObject.GetPart (Index)

Входные параметры:

Index (Variant)
VT_BSTR - имя компонента,
VT_I4 - индекс компонента.


Как получить этот вариант?





Slaviation

Как то так

по индексу
VARIANTARG index;
VariantInit(&index);
index.vt = VT_I4;
index.intVal = i //индекс парта
Part = iObject.GetPart (Index)

по имени
VARIANTARG name;
VariantInit(&name);
index.vt = VT_BSTR;
index.bstrVal = s // имя компонента
Part = iObject.GetPart (name)