Как с помощью API Компас получить из ksDocument2D ссылку на модель...

Автор alexokt, 10.08.09, 10:47:02

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

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

alexokt

Как с помощью API Компас получить из ksDocument2D ссылку на модель, чертеж создан с помощью "Создать новый чертеж из модели", в ksDocument3D есть коллекция Part, а в ksDocument2D ничего подобного не могу найти. Помогите пожалуйста.

alexokt

что никто не знает как программно вытащить "Внешние ссылки" из 2Д чертежа  :(((

Maxagg


alexokt

Цитата: Максимилиан от 11.08.09, 08:15:01
как насчет этого?

а что я должен там был увидеть?, точней можно мысль выразить?
меня интересует не готовая прога, а с помощью каких методов этого добится

Maxagg

посмотреть никак, там работающая программа ссылки показывает и код и ехе

alexokt

Цитата: Максимилиан от 11.08.09, 11:22:12
посмотреть никак, там работающая программа ссылки показывает и код и ехе

а мне необходимы как раз исходники как получить путь к модели (название файла модели) по которому сделан 2Д чертеж

Maxagg

ЗАГЛЯНИ В UNIT1.PAS

procedure TForm1.Button1Click(Sender: TObject);
var
  d2d:ksDocument2D;
  iter:ksiterator;
  obj1:reference;
  ksAVP:ksAssociationViewParam;
begin
  StartKompas;
  d2d:=ksDocument2D(Kompas.ActiveDocument2D);
  iter:=ksiterator(kompas.GetIterator);
  iter.ksCreateIterator(VIEW_OBJ,0);
  obj1:=iter.ksMoveIterator('F');
  while obj1<>0  do
  begin
    ksAVP:=ksAssociationViewParam(kompas.GetParamStruct(ko_AssociationViewParam));
    ksavp.Init;
    d2d.ksGetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
    memo1.Lines.Add('//'+ksavp.fileName);
    obj1:=iter.ksMoveIterator('N');
  end;
  iter.ksDeleteIterator;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  closekompas;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  d2d:ksDocument2D;
  obj1:reference;
  ksAVP:ksAssociationViewParam;
begin
  StartKompas;
  d2d:=ksDocument2D(Kompas.ActiveDocument2D);
  obj1:=d2d.ksGetReferenceDocumentPart(3);
  ksAVP:=ksAssociationViewParam(kompas.GetParamStruct(ko_AssociationViewParam));
  ksavp.Init;
  d2d.ksGetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
  memo1.Lines.Add(ksavp.fileName);
end;

alexokt

да спасибо нашел уже и уже изменил под себя вот это
procedure TForm1.Button1Click(Sender: TObject);
var
  d2d:ksDocument2D;
  iter:ksiterator;
  obj1:reference;
  ksAVP:ksAssociationViewParam;
begin
  StartKompas;
  d2d:=ksDocument2D(Kompas.ActiveDocument2D);
  iter:=ksiterator(kompas.GetIterator);
  iter.ksCreateIterator(VIEW_OBJ,0);
  obj1:=iter.ksMoveIterator('F');
  while obj1<>0  do
  begin
    ksAVP:=ksAssociationViewParam(kompas.GetParamStruct(ko_AssociationViewParam));
    ksavp.Init;
    d2d.ksGetObjParam(obj1,ksAVP,ASSOCIATION_VIEW_PARAM);
    memo1.Lines.Add('//'+ksavp.fileName);
    obj1:=iter.ksMoveIterator('N');
  end;
  iter.ksDeleteIterator;
end;