Алгоритм покомпонентного изображения для САПР

Я делаю программу для просмотра 3D-моделей САПР и хочу создавать автоматизированные разнесенные виды. Все сборки, которые будут рассматриваться, являются осесимметричными. Некоторых может и не быть, но большинство. Я хотел бы придумать алгоритм для автоматического перемещения деталей в сборке в положение разнесенного вида. Вот пример того, чего я хочу достичь с помощью алгоритма (без меток, конечно):

Exploded view

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

13
задан Adaline Simonian 13 August 2017 в 09:23
поделиться