Как соединить две траектории (с учетом рыскания, тангажа и крена) в openSCAD? - PullRequest
0 голосов
/ 25 декабря 2018

Я пытаюсь создать объект в openSCAD, который определяется несколькими частями, каждая из которых имеет длину, крен, рыскание и шаг.Я нашел библиотеку, которая может помочь, но я изо всех сил в соединении частей, чтобы сформировать один объект.Как я могу соединить эти детали в правильной ориентации?

На следующем рисунке показан минималистский пример того, что я хочу: https://imgur.com/a/G0CtDSj

На изображении вы видите объект, состоящий издве части: одна идет вверх и одна перпендикулярна первой части.Обе части могут иметь рыскание, крен и тангаж.Второй объект (всегда) связан с концом первого объекта.

Я получил это частично в openSCAD с использованием scad-utils и list-comppresion-demos.Но только если первый объект имеет только один из кренов, тангажа и рыскания со значением, отличным от 0. Если два или все из них имеют другое значение, то у второго объекта не будет правильной начальной ориентации.

Вы можете найти мой код здесь: http://snippi.com/s/fao18l8.

Здесь происходит ориентация вторых объектов.С t1 - первый объект, t2 - второй объект.

skin(t1_object);

t1_top = t1_object[len(t1_object)-1][0];
translate(t1_top)   // place on top of the t1
    rotate([90,0,0]) // rotate 90 degrees
        rotate([t1Yaw,t1Roll,-t1Pitch]) // rotate to same orientation as t2
            translate([-thickness,-thickness,-thickness]) // change position to really overlap other object
                skin(t2_object);

Я думаю, что мне не хватает математики для объединения крена, тангажа и рыскания.Я также попытался изучить используемые библиотеки, но у них не так много документации, и я все время теряюсь в их реализации своего кода (много рекурсии).Может ли кто-нибудь указать мне правильное направление?

...