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

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

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

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

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

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

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

Изменение исполнения детали в сборке

Автор krugerogk, 13.05.15, 22:42:17

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

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

krugerogk

Подскажите пожалуйста как изменить исполнение детали с именем 'name' в сборке;
API5 Delphi


krugerogk

Получается надо всю библиотеку переписывать под АРI7 или будут дружно сосуществовать коды под API5 и API7 в одной библиотеке?


krugerogk

Подскажите пожалуйста, что я делаю не так. Нужно изменить исполнение детали на исполнение 1.

var 
  newKompasAPI : IApplication;
  Doc7 : iKompasDocument;
  Doc3D7 : IKompasDocument3D;
  part7:ipart7;
  pDocuments : iDocuments;
begin
  Doc7 := newKompasAPI.ActiveDocument;
  Doc3D7:=Doc7 as IKompasDocument3D;
  Part7:=Doc3D7.TopPart;
  part7.Update;
  EmbodimentsManager.SetCurrentEmbodiment(1);
end;


krugerogk

 EmbodimentsManager:=Part7; - так получить? Так тоже не работает =(

var 
  newKompasAPI : IApplication;
  Doc7 : iKompasDocument;
  Doc3D7 : IKompasDocument3D;
  part7:ipart7;
  pDocuments : iDocuments;
begin
  Doc7 := newKompasAPI.ActiveDocument;
  Doc3D7:=Doc7 as IKompasDocument3D;
  Part7:=Doc3D7.TopPart;
  EmbodimentsManager:=Part7; 
  EmbodimentsManager.SetCurrentEmbodiment(1);
part7.Update;
end;


krugerogk

ksTransferInterface - где взять?

Вопрос снят, нашел.

krugerogk

Вроде все как по ссылке http://forum.ascon.ru/index.php/topic,25319.msg183834.html#msg183834 сделал, но все равно не работает.


var
newKompasAPI : IApplication;
  doc3d : IKompasDocument3D;
  doc: IKompasDocument;
  document: IkompasApiObject;
  document3d: idocument3d;
  part7:ipart7;

begin
  Document:=newKompasAPI.ActiveDocument;
  doc3d := document As IKompasDocument3D;
   if doc3D<>nil then
    begin
      Document3d:=IUnknown(ksTransferInterface(LtDefine.PIUnknown(Doc3d),ksAPI3DCom,0)) as IDocument3D;
       part7:=doc3d.TopPart;
       if(part7<>nil)and(document3d<>nil)then
       begin
       EmbodimentsManager:=Part7 as IEmbodimentsManager;
       EmbodimentsManager.SetCurrentEmbodiment(1);
       part7.Update;
       end;
    end;
end;


1) Может ли быть дело в процедуре входа в библиотеку?
   begin
  iKompas:=KompasObject(CreateKompasObject);
  if iKompas = nil then Exit;
  Forms.Application.Handle:=iKompas.ksGetHWindow;
  iKompas.ksEnableTaskAccess(0);
  Form2:=TForm2.Create(Forms.Application);
  Form2.ShowModal;
  Form2.Free;
  iKompas.ksEnableTaskAccess(1);
  Forms.Application.Handle:=0;
  iKompas:=nil;
end;
2) Влияет ли вид исполнения модели (зависимое, независимое)?

krugerogk

Действительно влияла процедура входа в библиотеку.
Переписал - заработало. Всем спасибо!

krugerogk

Как получить деталь в сборке с индексом 0 API7 в по аналогии с API5

API 5
iPart:=ksPart(iDoc3D.GetPart(pTop_Part));
iPart:=ksPart(iDoc3D.GetPart(0));

APi7
part7:=doc3d.TopPart;
??????

part7:=doc3d.TopPart;
Parts7:=part7.IParts7;
pPart7:=Parts7.Part[0];
+ Благодарностей: 1