Вставка модели в активную сборку C++ Builder

Автор andoskek, 21.07.17, 12:25:12

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

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

andoskek

21.07.17, 12:25:12 Последнее редактирование: 21.07.17, 14:38:54 от andoskek
 В Delphi делаю следующим образом: 
//Получаем интерфейс документа модели
  kompas:=KompasObject(GetActiveOleObject('Kompas.Application.5'));
  Document3D:=ksDocument3D(kompas.ActiveDocument3D());
  //Получаем интерфейс модели
  Part:=ksPart(Document3D.GetPart(-1));       
  Document3D.SetPartFromFile(path,Part,TRUE);
Все работает.
Как переделать этот код под Builder?
Пытаюсь так:
           wchar_t ObjectName[] = L"KOMPAS.Application.5";
   if(! IsKOMPASInstalled())
   {
    ShowMessage("КОМПАС не установлен");
    return;
   }
   KompasObjectPtr kompas;
   if(IsKOMPASRun())
      kompas.ActiveInstance(ObjectName);
   else
      kompas.CreateInstance(ObjectName);
   Document3DPtr Document3D;
        Document3D = (Document3DPtr)kompas->ActiveDocument3D();
   ksPart *part;
   part = (ksPart)Document3D.GetPart(-1);
   ругается:
       'GetPart' is not a member of 'ksDocument3DPtr'


Исправил на:
ksPart *part;
part = (ksPart*)Document3D->GetPart(false);
AnsiString path;
path = "C:\Library\ERMETO DIN-fittings\DA\DA06SCF.m3d";
wchar_t wstr[100];
Document3D->SetPartFromFile(path.WideChar(wstr,100),part,1);
Ошибки пропали, но модель  все равно не вставляет