OpenSCAD:围绕特定点旋转?

时间:2017-08-22 20:11:33

标签: openscad

以下代码围绕原点旋转第二个多维数据集。如何围绕其中心点([5,5,0])旋转第二个立方体?

cube([10,10,1]);
rotate([0,0,45]) cube([10,10,1]);

2 个答案:

答案 0 :(得分:14)

此模块将执行所需的旋转。

// rotate as per a, v, but around point pt
module rotate_about_pt(a, v, pt) {
    translate(pt)
        rotate(a,v)
            translate(-pt)
                children();   
}

cube([10,10,1]);
rotate_about_pt(45,0,[5,5,0]) cube([10,10,1]);

在较新的版本(使用2019年1月预览版测试)中,上述代码会生成警告。要解决此问题,请将参数更新为rotate

module rotate_about_pt(z, y, pt) {
    translate(pt)
        rotate([0, y, z]) // CHANGE HERE
            translate(-pt)
                children();   
}

答案 1 :(得分:1)

如果您愿意将形状“居中”,那就容易多了:

cube(center =true,[10,10,1]);
rotate([0,0,45]) cube(center =true,[10,10,1]);