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

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

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

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

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

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

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

Коллекция ребер конкретной поверхности.

Автор graphdark, 27.07.21, 10:18:28

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

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

graphdark

Как найти конкретную поверхность после операции выдавливания, я понял. А как ребра получить, чтобы потом построить фаску-не понял.
EdgePartCollection := ksEntityCollection(Form1.Part.EntityCollection(6{7}));
Получаю коллекцию всех поверхностей Part
EdgePartCollection := EdgePartCollection.GetByIndex(EdgePartCollection.GetCount - 1);
По индексу нахожу нужную поверхность. Пробовал по индексу же выискивать ребра, работает только с одним вырезанием, понятно почему.


graphdark

Цитата: Sabahs от 27.07.21, 10:28:55.Owner
Искал у еджепартколлекшон такое свойство, не нашел. Есть еще идея по точке найти ребро. Но пока не нашел.


graphdark

Долго не мог придумать правильное решение, но нашел-таки.
  EntityCut.Name := 'Отверстие' + IntToStr(n);
  EntityCut.Create();
  Feat := ksFeature(part.GetFeature);
  FeatCol := ksFeatureCollection(feat.SubFeatureCollection(true,true));
  Feat := FeatCol.GetByName('Отверстие' + IntToStr(n),true,true);
  if Feat = nil then ShowMessage('Feat=nil');
  after := ksEntityCollection(feat.EntityCollection(o3d_face));
//      ShowMessage('Отверстие' + IntToStr(n));
  hole := ksEntity(after.First);
  hole.name := 'Hole' + IntToStr(n) + '_D:' + FloatToStr(D)
Для ребер будет o3d_edge естественно и либо after.first, либо after.last.