OpenSCAD - przemieszczanie, obracanie i skalowanie obiektów

Stronę tą wyświetlono już: 27 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

Listing 1
  1. points = [
  2. [0, 0, 0], // 0
  3. [4, 0, 0], // 1
  4. [4, 4, 0], // 2
  5. [2, 4, 0], // 3
  6. [2, 2, 0], // 4
  7. [0, 2, 0], // 5
  8. [1, 1, 1], // 6
  9. [3, 1, 1], // 7
  10. [3, 3, 1], // 8
  11. ];
  12. surfaces = [
  13. [0, 1, 2 , 3, 4, 5],
  14. [0, 1, 7, 6],
  15. [1, 2, 8, 7],
  16. [2, 3, 8],
  17. [3, 8, 7, 4],
  18. [4, 7, 6, 5],
  19. [5, 6, 0]
  20. ];
  21. translate([0, 0, 2]) // przesunięcie rysowanego obiektu
  22. 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

Listing 2
  1. points = [
  2. [0, 0, 0], // 0
  3. [4, 0, 0], // 1
  4. [4, 4, 0], // 2
  5. [2, 4, 0], // 3
  6. [2, 2, 0], // 4
  7. [0, 2, 0], // 5
  8. [1, 1, 1], // 6
  9. [3, 1, 1], // 7
  10. [3, 3, 1], // 8
  11. ];
  12. surfaces = [
  13. [0, 1, 2 , 3, 4, 5],
  14. [0, 1, 7, 6],
  15. [1, 2, 8, 7],
  16. [2, 3, 8],
  17. [3, 8, 7, 4],
  18. [4, 7, 6, 5],
  19. [5, 6, 0]
  20. ];
  21. rotate([0, 0, -45])
  22. translate([0, 0, 2])
  23. 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

Listing 3
  1. points = [
  2. [0, 0, 0], // 0
  3. [4, 0, 0], // 1
  4. [4, 4, 0], // 2
  5. [2, 4, 0], // 3
  6. [2, 2, 0], // 4
  7. [0, 2, 0], // 5
  8. [1, 1, 1], // 6
  9. [3, 1, 1], // 7
  10. [3, 3, 1], // 8
  11. ];
  12. surfaces = [
  13. [0, 1, 2 , 3, 4, 5],
  14. [0, 1, 7, 6],
  15. [1, 2, 8, 7],
  16. [2, 3, 8],
  17. [3, 8, 7, 4],
  18. [4, 7, 6, 5],
  19. [5, 6, 0]
  20. ];
  21. scale([1, 0.5, 1.5])
  22. translate([0, 0, 2])
  23. polyhedron( points, surfaces);

Komentarze