OpenSCAD - funkcje rysujące podstawowe obiekty 3W

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

Rysowanie prostopadłościanu

Funkcja cube umożliwia tworzenie prostopadłościanu poprzez podanie długości jego boków jako wektor trzech wartości dla osi x, y oraz z. Możliwe jest też użycie opcjonalnego parametru center, która domyślnie jest ustawiona na wartość false co skutkuje rysowaniem prostopadłościanu, którego jeden wierzchołek zaczyna się w początku układu współrzędnych a przeciwległy w punkcie podanym za pomocą wektora. W przypadku gdy zmienna center przyjmuje wartość true środek prostopadłościanu umieszczony zostaje w początku układu współrzędnych. Oto przykład użycia funkcji cube:

Listing 1
  1. cube([100, 200, 300], center = true);
OpenSCAD - wynik działania funkcji cube
Rys. 1
OpenSCAD - wynik działania funkcji cube

Rysowanie kuli

Funkcja sphere umożliwia tworzenie prostego obiektu kuli. Jako jedyny argument sterujący funkcja przyjmuje wartość promienia r lub średnicy d. Oto przykład użycia funkcji

Listing 2
  1. sphere( r = 100);
  2. sphere( d = 200);
OpenSCAD - przykład działania funkcji sphere
Rys. 2
OpenSCAD - przykład działania funkcji sphere

Standardowo można tutaj wykorzystać parametry sterujące dokładnością rysowania:

  • $fa - rozmiar fragmentu jako wartość kątowa;
  • $fs - rozmiar fragmentu jako długość mm;
  • $fn - rozdzielczość

Rysowanie walców, stożków, graniastosłupów foremnych i ostrosłupów foremnych

Funkcja cylinder umożliwia wbrew pozorom rysowanie nie tylko walców, ale również stożków, graniastosłupów foremnych i ostrosłupów foremnych. Główne parametry tej funkcji to:

  • h - wysokość walca lub stożka;
  • r - promień walca ( w takim przypadku parametr r1 = r2 = r;
  • r1 - promień dolny stożka;
  • r2 - promień górny stożka;
  • d - średnica walca (w takim przypadku r1 = r2 = d / 2);
  • d1 - średnica dolna stożka;
  • d2 - średnica górna stożka;
  • center - gdy ustawione na false (domyślnie) to środek dolnej płaszczyzny znajdzie się w początku układu współrzędnych, w przeciwnym razie płaszczyzny znajdą się w równej odległości od początku układu wpsółrzędnych

Jak widać nie ma wśród powyższych parametrów żadnego, który umożliwiałby utworzenie graniastosłupa czy ostrosłupa foremnego, do tego celu należy posłużyć się zmiennymi określającymi dokładność rysowania:

  • $fa - minimalny kąt pojedynczego segmentu;
  • $fs - minimalna cięciwa pojedynczego segmentu;
  • $fn - liczba segmentów przypadających na 360°
a)OpenSCAD - przykład użycia funkcji cylinder do narysowania walcab)OpenSCAD - przykład użycia funkcji cylinder do narysowania stożkac)OpenSCAD - przykład użycia funkcji cylinder do narysowania stożka ściętegod)OpenSCAD - przykłąd użycia funkcji cylinder do narysowania graniastosłupa o podstawie pięciokąta foremnegoa)OpenSCAD - przykłąd użycia funkcji cylinder do narysowania ostrosłupa o podstawie pięciokąta foremnego
Rys. 3
OpenSCAD - przykłady użycia funkcji cylinder:
  1. do narysowania walca:

    Listing 3
    1. cylinder(d = 20, h = 30);
  2. do narysowania stożka:

    Listing 4
    1. cylinder(r1 = 0, r2 = 20, h = 30);
  3. do narysowania stożka ściętego:

    Listing 5
    1. cylinder(r1 = 10, r2 = 20, h = 30);
  4. do narysowania graniastosłupa o podstawie pięciokąta foremnego

    Listing 6
    1. cylinder(d = 20, h = 30, $fn = 5);
  5. do narysowania ostrosłupa o podstawie pięciokąta foremnego

    Listing 7
    1. cylinder(r1 = 0, r2 = 10, h = 30, $fn = 5);

Rysowanie wielościanów

OpenSCAD udostępnia również funkcję polyhedron, która służy do rysowania dowolnych wielościanów. Parametry, jakie owa funkcja przyjmuje to zbiór punktów opisujących położenie wierzchołków wieloboku oraz zbiór powierzchni płaskich opisanych poprzez indeksowe odwołanie się do współrzędnych wierzchołków z tablicy punktów. Poniżej można zobaczyć przykład użycia tej funkcji.

OpenSCAD - przykład wykorzystania funkcji poyhedron
Rys. 4

OpenSCAD - przykład wykorzystania funkcji poyhedron

Listing 8
  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. polyhedron( points, surfaces);

Komentarze