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

Автор New111, 26.09.17, 08:45:54

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

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

New111

В документе модели 3D выделены поверхности детали. Необходимо смещать линии и кривые, которые образуют данные  поверхности. Как узнать какой эскиз был использован при построении выделенной поверхности и далее какая линия (кривая) образует её? На данный момент код выглядит вот так:

procedure TForm1.Button2Click(Sender: TObject);
var
  //переменная – интерфейс системы КОМПАС
  iKompasObject: KompasObject;
  part: ksPart;
  iDocument3D: ksDocument3D;
  entityCollection: ksEntityCollection;
ISelect: ksSelectionMng;

begin
try
//Пытаемся подключиться к КОМПАСУ
iKompasObject:=KompasObject(GetActiveOleObject('Kompas.Application.5'));
//Получаем интерфейс документа модели
iDocument3D:=ksDocument3D(iKompasObject.ActiveDocument3D());
//Получаем интерфейс 3D-модели
//Part:= ksPart(Document3D.GetPart(pTop_Part));
if iDocument3D.IsDetail then //текущий документ - деталь
BEGIN
part := ksPart( iDocument3D.GetPart(pTop_Part) ); // верхний компонент
if part <> nil then
  begin
  entityCollection := ksEntityCollection( part.EntityCollection( o3d_face ) );
  ISelect := ksSelectionMng(iDocument3D.GetSelectionMng());
  memo1.Lines.Add('Chosen surfaces - '+inttostr(ISelect.GetCount())+' type '+inttostr(ISelect.GetObjectType(0)));
   //пишет: Chosen surfaces - 2 type 105
    end;
iKompasObject.Visible:=true;
END
ELSE
SHOWMESSAGE('Текущий документ должен быть ДЕТАЛЬЮ');
except
//Не удалось подключиться к КОМПАСУ
ShowMessage(' Не удалось подключиться к КОМПАСУ');
end;
end;

New111