не могу понять где ошибка?

Автор guest, 18.10.05, 08:33:37

« предыдущая - следующая »

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

guest

begin
  iKompasObject := KompasObject(CreateKompasObject);

  if iKompasObject  nil then
  begin

    iDocument3D := ksDocument3D(iKompasObject.ActiveDocument3D);

    While not OpenDialog1.Execute do
      Messagebox(0,’Необходимо выбрать файл c моделью поковки’,’Ошибка’,1);
    Filename := OpenDialog1.FileName;


    If iDocument3D.Open(Filename, true) then
    begin

      Part := iDocument3D.GetPart(pTop_Part) as ksPart;

        iDocument3D := ksDocument3D( iKompasObject.Document3D() );

      if iDocument3D.Create(false, true) then
      begin
        iDocument3D.author := ’’;                // Автор документа
        iDocument3D.comment := ’’; // Комментарии к документу
        iDocument3D.fileName := ’test.m3d’;    // Имя файла Документа
        iDocument3D.UpdateDocumentParam();             // Обновить параметры Документа

        if iDocument3D.SetPartFromFile(Filename, Part, False) then  //импорт модели поковки в текущий файл
        begin

          if iDocument3D  nil then
          begin
//            OperationExtrusionBar(x1, y1, z1, x2, y2, z2); //построение модели инструмента
            while not SaveDialog1.Execute do ShowMessage(’необходимо сохранить модель’);
            Filename := SaveDialog1.FileName;
            iDocument3D.SaveAs(Filename);                            // Сохранить документ}
            Form2.Close;
            iDocument3D := nil;
          end
          else ShowMessage(’error’);
        end
        else ShowMessage(’невозможно импортировать модель’);
      end
      else ShowMessage(’невозможно создать модель’);
    end
    else ShowMessage(’невозможно открыть модель’);
  end;
  iKompasObject := nil;
end;

guest

во первых не создается новая модель iDocument3D.create и не вставляется готовая модель из другого файла setpartfromfile.

333

iDocument3D := ksDocument3D(iKompasObject.ActiveDocument3D);
нужно заменить на
iDocument3D := ksDocument3D(iKompasObject.Document3D);

Но главная ошибка в том что потерена активизация сборки.
Т.к. после открытия создается новый файл модели и он становится активным.