Я делаю программу для просмотра 3D-моделей САПР и хотел бы построить автоматизированные разнесенные виды. Все узлы, которые будут рассматриваться, являются аксиально-симметричными. Некоторые могут не быть, но большинство из них. Я хотел бы вычислить алгоритм автоматического перемещения деталей в сборке в покомпонентную позицию представления. Вот пример того, чего я хочу достичь с помощью алгоритма (за вычетом ярлыков):
Единственное значение, с которым я должен работать, - это центр ограничивающей рамки каждой части. Если требуется больше информации, я могу рассчитать больше информации, но, похоже, ее должно быть достаточно. Грубый подход, который я имею в виду, состоит в том, чтобы вычислить вектор от начала сборки до центра каждой части вдоль оси аксиально-симметричной оси, а затем вычислить радиальный вектор по центру части относительно центральной оси. Оттуда мне нужно было бы вычислить некоторые вычисления, которые могли бы масштабировать положение каждой части вдоль некоторой комбинации этих двух векторов. Это часть, где я не совсем уверен, в каком направлении идти с этим. Изображение, которое я включил, показывает точную функциональность, которую я хотел бы, но я хочу, чтобы иметь возможность масштабировать позицию с помощью любого значения с плавающей точкой, чтобы развернуть или скомпентировать покомпонентное представление, причем 1.0 является исходной собранной моделью. Любые идеи?