Изменение системы координат эскиза

Автор Armant, 12.05.15, 23:35:59

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

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

Armant

Здравствуйте! Как можно изменить СК эскиза относительно СК детали?

Знаю что есть методы SetAxis и SetAxes у интерфейса ksPlacement но это вроде только устанавливает СК детали в сборке. Есть ли что нибудь подобное для моего случая?
Параметры у меня такие же как и для методов SetAxis и SetAxes т.е. точка и направление осей Ox, Oy.

Golovanev

Создать локальную систему координат.
+ Благодарностей: 1

Armant



Armant

Это, как я понял, в API7, а в API5 такого нету?

В API5 нет, т.к. интерфейс ILocalCoordinateSystem - появился в КОМПАС-3D V11.

Armant

#6
Выдает ошибку в строке iDocs:=IDocuments(komps.Application.Documents); что делаю не так?

var
iDoc3D:IKompasDocument3D;
idocs:IDocuments;
komps:IKompasAPIObject;
kompas: KompasObject;
Document3D: ksDocument3D; 
begin
  kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
  komps:=IKompasAPIObject(CreateOleObject('KOMPAS.Application.7'));
  Kompas.Visible := true;

  Document3D:=ksDocument3D(kompas.Document3D());
  Document3D.Create(FALSE,TRUE);
  Document3D:=ksDocument3D(kompas.ActiveDocument3D());
  iDocs:=IDocuments(komps.Application.Documents);
  iDoc3D:=IKompasDocument3D(komps.Application.ActiveDocument);
---------------------


Где можно найти информацию по работе с API7?

Armant

#7
с этим разобрался. сейчас другой вопрос:
почему в строке pPart7:=iDoc3D.TopPart выдает ошибку

  kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
  komps := Kompas.ksGetApplication7 as IApplication;;
  Kompas.Visible := true;
  Document3D:=ksDocument3D(kompas.Document3D());
  Document3D.Create(FALSE,TRUE);
  Document3D:=ksDocument3D(kompas.ActiveDocument3D());
  iDocs:=IDocuments(komps.Documents);
  iDoc3D:=IKompasDocument3D(komps.ActiveDocument);
  pPart7:=iDoc3D.TopPart;


Вроде понял почему так получается. Document3D создается так: Document3D.Create; тогда как создается iDoc3D?

Documents:=komps.Documents;
if Documents<>nil then
begin
     Document:=Documents.Add(ksDocumentPart,True);
     if Document<>nil then
      begin
         Doc3D:=Document as IKompasDocument3D;
         if Doc3D<>nil then
          begin
              Part7:=Doc3D.TopPart;
          end;
      end;
end;
+ Благодарностей: 1