如何在openSCAD中连接两个轨迹(给定的偏航,俯仰和横滚)?

时间:2018-12-25 11:54:22

标签: openscad

我正在尝试在openSCAD中创建一个对象,该对象由多个部分定义,每个部分的长度,侧倾,偏航和俯仰。我找到了一个可以提供帮助的库,但是我在连接各部分以形成一个对象方面很费力。如何以正确的方向连接这些零件?

下图显示了我想要的简约示例: https://imgur.com/a/G0CtDSj

在图像中,您看到一个由两部分组成的对象:一个部分“向上”,另一个垂直于第一部分。这两个部分都可以具有偏航,滚动和俯仰。第二个对象(始终)连接到第一个对象的末端。

我使用scad-utilslist-comprehension-demos在openSCAD中部分工作。但是只有在第一个对象的侧倾,俯仰和偏航中只有一个值不等于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);

我想我缺少一些数学知识来组合横摇,俯仰和偏航。我也尝试研究使用过的库,但是它们没有太多的文档,并且我对它们的代码实现(很多递归)感到迷惑。有人可以指出我正确的方向吗?

0 个答案:

没有答案