Создание DirectShape из граней

Автор Тема: Создание DirectShape из граней  (Прочитано 2677 раз)

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

Оффлайн ivmaxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Создание DirectShape из граней
« : 18-05-2020, 10:26:26 »
Добрый день.
Есть есть скрипт в динамо, который  строит directshape.
1. список граней;
2. объединение граней в некий surface;
3. смещение (offset) surface, полученного на этапе 2;
4. построение solid;
5. создание directshape.

подскажите как повторить пункты 1-4 с помощью API.


Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создание DirectShape из граней
« Ответ #1 : 18-05-2020, 18:18:40 »
К сожалению, или к счастью ;D, я далек от динамо. Тем не менее, по пунктам

1. вариантов, видимо, три. Первый - получение геометрии из элементов модели, второй - запрос у пользователя их выбора (uidoc.Selection.PickObjects), третий - как-то описывать и генерировать данные программно.
2, 4. опять три варианта. BRepBuilder, TessellatedShapeBuilder, GeometryCreationUtilities+BooleanOperationsUtils
3. SolidUtils.CreateTransformed, например.

Оффлайн ivmaxАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 70
  • Карма: 3
Re: Создание DirectShape из граней
« Ответ #2 : 18-05-2020, 19:07:12 »
в целом с пунктом 1 все более менее ясно.

по пункту 2. я так понимаю что аналога в api нет.

по пункту 3. оффсет должен быть на как картинке слева (справа как быть не должно), каждая грань смещается на определенное расстояние и увеличивается или уменьшается, а SolidUtils.CreateTransformed принимает в качестве параметра только солид и трансформ и получу.

по пункту 4. TessellatedShapeBuilder получает список face, а вот как получить нижнюю часть фэйсов смещенную на дельту, имея верхнюю (со смещением по правилам пункта 3)?





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