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

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

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

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

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

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

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

Как получить габаритные размеры сборки?

Автор А8208, 14.12.11, 10:20:45

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

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

А8208

Добрый день!
KV12
Возможно получить габариты сборки (3D) средствами API7?
Если возможно подскажите через какой интерфейс это сделать.
В SDK getgabarit в API7 я нашёл только у интерфейса Body/ Cборку к этому интерфейсу привести невозможно? так как это насколько я понял это есть интерфейс тела.
Помогите, пожалуйста!

333


А8208

это в API5, а в API7 имеется возможность?

А8208

Покажите на  примере использование функции Transferinterface при переводе из API7 в API5.

Пример SDK Step2_API7_3D_1.pas.
// Преобразовать интерфейс документа 3D из API7 в API5
doc3D := IUnknown( ksTransferInterface(PIUnknown(doc), ksAPI3DCom, 0{любой документ}) ) As IDocument3D;

А8208

VB 2010 утверждает, что он не знает функции ksTransferInterface.


chelkar

В крайнем случае возьмите интерфейс документа еще раз, уже в API5. От него TopPart и определите габарит сборки.

ainis

Пример использования TransferInterface (VB.Net 2010 Express):

Dim iKompas As Kompas6API5.KompasObject = Marshal.GetActiveObject("KOMPAS.Application.5")
Dim Doc3D As Kompas6API5.ksDocument3D = iKompas.ActiveDocument3D
IPart5 = Doc3D.GetPart(Kompas6Constants3D.Part_Type.pTop_Part)
Dim IPart7 As KompasAPI7.IPart7 = iKompas.TransferInterface(IPart5, Kompas6Constants.ksAPITypeEnum.ksAPI7Dual, Kompas6Constants3D.ksObj3dTypeEnum.o3d_part)' преобразуем IPart5 в IPart7

А8208

Спасибо!
Обратный переход я смог выполнить только так
Dim iKompas As Kompas6API5.KompasObject = Marshal.GetActiveObject("KOMPAS.Application.5")
                    Dim iDoc3D As Kompas6API5.ksDocument3D = iKompas.ActiveDocument3D
                    Dim iTopPart_5 As Kompas6API5.ksPart = iDoc3D.GetPart(Kompas6Constants3D.Part_Type.pTop_Part)