OpenSCAD:围绕特定点旋转?
OpenSCAD: Rotating around a particular point?
以下代码围绕原点旋转第二个立方体。我怎样才能绕着它的中心点 ([5,5,0]) 旋转第二个立方体?
cube([10,10,1]);
rotate([0,0,45]) cube([10,10,1]);
此模块将执行所需的旋转。
// 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();
}
如果你愿意'center'形状就容易多了:
cube(center =true,[10,10,1]);
rotate([0,0,45]) cube(center =true,[10,10,1]);
以下代码围绕原点旋转第二个立方体。我怎样才能绕着它的中心点 ([5,5,0]) 旋转第二个立方体?
cube([10,10,1]);
rotate([0,0,45]) cube([10,10,1]);
此模块将执行所需的旋转。
// 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();
}
如果你愿意'center'形状就容易多了:
cube(center =true,[10,10,1]);
rotate([0,0,45]) cube(center =true,[10,10,1]);