OpenSCAD - przemieszczanie, obracanie i skalowanie obiektów

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 1786 razy

Przemieszczanie rysowanych obiektów

OpenSCAD udostępnia funkcję transltate do przemieszczania rysowanych obiektów czy to płaskich czy bryłowych. Jedynym argumentem tej funkcji jest wektor przemieszczenia. Przykład przemieszczenia obiektu bryłowego pokazany został poniżej.

OpenSCAD przykład użycia funkcji translate do  przemieszczenia obiektu rysowanego
Rys. 1

OpenSCAD przykład użycia funkcji translate do przemieszczenia obiektu rysowanego

points = [ [0, 0, 0], // 0 [4, 0, 0], // 1 [4, 4, 0], // 2 [2, 4, 0], // 3 [2, 2, 0], // 4 [0, 2, 0], // 5 [1, 1, 1], // 6 [3, 1, 1], // 7 [3, 3, 1], // 8 ]; surfaces = [ [0, 1, 2 , 3, 4, 5], [0, 1, 7, 6], [1, 2, 8, 7], [2, 3, 8], [3, 8, 7, 4], [4, 7, 6, 5], [5, 6, 0] ]; translate([0, 0, 2]) // przesunięcie rysowanego obiektu polyhedron( points, surfaces);

Obracanie rysowanych obiektów

Obracanie jest realizowane za pomocą funkcji rotate, która przyjmuje jako argument wektor trzech liczb określających kąt obrotu wyrażony w ° kąta. Przykład użycia tej funkcji pokazany został poniżej.

OpenSCAD przykład użycia funkcji rotate do obrotu obiektu względem osi z
Rys. 2

OpenSCAD przykład użycia funkcji rotate do obrotu obiektu względem osi z

points = [ [0, 0, 0], // 0 [4, 0, 0], // 1 [4, 4, 0], // 2 [2, 4, 0], // 3 [2, 2, 0], // 4 [0, 2, 0], // 5 [1, 1, 1], // 6 [3, 1, 1], // 7 [3, 3, 1], // 8 ]; surfaces = [ [0, 1, 2 , 3, 4, 5], [0, 1, 7, 6], [1, 2, 8, 7], [2, 3, 8], [3, 8, 7, 4], [4, 7, 6, 5], [5, 6, 0] ]; rotate([0, 0, -45]) translate([0, 0, 2]) polyhedron( points, surfaces);

Skalowanie obiektu

Skalowanie obiektu możliwe jest za pomocą funkcji scale, która jako argument przyjmuje wektor wartości skalowania dla poszczególnych osi.

OpenSCAD przykład użycia funkcji scale
Rys. 3

OpenSCAD przykład użycia funkcji scale

points = [ [0, 0, 0], // 0 [4, 0, 0], // 1 [4, 4, 0], // 2 [2, 4, 0], // 3 [2, 2, 0], // 4 [0, 2, 0], // 5 [1, 1, 1], // 6 [3, 1, 1], // 7 [3, 3, 1], // 8 ]; surfaces = [ [0, 1, 2 , 3, 4, 5], [0, 1, 7, 6], [1, 2, 8, 7], [2, 3, 8], [3, 8, 7, 4], [4, 7, 6, 5], [5, 6, 0] ]; scale([1, 0.5, 1.5]) translate([0, 0, 2]) polyhedron( points, surfaces);