Как сделать сопряжение двух деталей

Автор chaynik, 21.04.06, 13:34:58

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

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

chaynik

Как сделать сопряжение двух деталей с отверстиями под болт.
Соосность сделать получилось, а найти плоскости с отверстием не выходит. :(
Детали имеют форму параллелепипедов.
Заранее спасибо. :sun:

Gek

Программулину-то свою покажи. А то будем щас гадать на кофейной гуще  ;)

chaynik

так я создавал соосность
procedure TForm1.Button11Click(Sender: TObject);
var
  EColl, EColl1:ksEntityCollection;
  Ec1,Ec2,E1,E2:ksEntity;
  E0Def:ksFaceDefinition;
  i:Integer;
begin
//Создание соосности
  EColl:=ksEntityCollection(PartInAssm1.EntityCollection(o3d_face));
    //Поиск цилиндрической грани
  for i:=0 to 6 do
  begin
    Ec1:=ksEntity(EColl.GetByIndex(i));
    E0Def:=ksFaceDefinition(Ec1.GetDefinition);
    if (E0Def.IsCylinder) then Break;
  end;
  EColl:=ksEntityCollection(PartInAssm1.EntityCollection(o3d_face));
  Ec1:=ksEntity(EColl.GetByIndex(i));
  EColl:=ksEntityCollection(PartInAssm2.EntityCollection(o3d_face));
  Ec2:=ksEntity(EColl.GetByIndex(i));
  Assm3D.AddMateConstraint(mc_Concentric,Ec1,Ec2,0,1,0);
end;
А с сопряжением не могу разобраться

Gek

Значит, ты нашел цилиндрическую грань. Теперь ты находишь плоские грани, стыкующиеся с ней. Для этого юзаешь ConnectedFaceCollection из ksFaceDefinition. Если отверстие сквозное, для каждой детали таких граней будет 2.
Выбор из 2-х граней может быть произволен - зависит от формы деталей. Ну а дальше подставляешь грани в AddMateConstraint, где тип сопряжения Coincidence

chaynik

Огромное спасибо. Попробую сделать. :)