Следующий код вращает второй куб вокруг начала координат. Как вместо этого повернуть второй куб вокруг его центральной точки ([5,5,0])?
cube([10,10,1]);
rotate([0,0,45]) cube([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 г.) приведенный выше код генерирует предупреждение. Чтобы это исправить, обновите параметры до rotate
:
module rotate_about_pt(z, y, pt) {
translate(pt)
rotate([0, y, z]) // CHANGE HERE
translate(-pt)
children();
}
Если вы хотите «центрировать» форму, это намного проще:
cube(center =true,[10,10,1]);
rotate([0,0,45]) cube(center =true,[10,10,1]);