1. Produkty
  2.   CHAM
  3.   Python
  4.   openscad

openscad

 
 

Open Source 3D CAD Modeler dla programistów

Twórz solidne modele 3D używając CSG, ekstruzji i konfigurowalnych parametrów poprzez otwartoźródłowe darmowe API w Pythonie.

Czym jest OpenSCAD?

OpenSCAD jest darmowym i otwartym narzędziem do modelowania 3D CAD, zaprojektowanym specjalnie dla programistów i inżynierów. W przeciwieństwie do interaktywnych modelerów 3D, OpenSCAD wykorzystuje podejście oparte na skryptach do definiowania solidnych obiektów 3D przy użyciu konstruktywnej geometrii brył (CSG) oraz technik ekstruzji. Umożliwia to precyzyjne, powtarzalne i parametryczne modelowanie, idealne dla części mechanicznych, prototypów i projektów technicznych. Narzędzie obsługuje Linux, Windows i macOS oraz dobrze integruje się z przepływami pracy opartymi na Pythonie, służącymi do automatyzacji i skryptowania.

OpenSCAD odczytuje pliki skryptów opisujące obiekt i renderuje model 3D zgodnie z nimi, dając projektantom pełną kontrolę nad procesem modelowania. Obsługuje operacje takie jak union (łączenie), intersection (przecięcie), difference (różnica) oraz przekształcenia takie jak translate (przesunięcie), rotate (obrót) i scale (skalowanie). Dane można importować z plików DXF i eksportować do formatów STL, OFF i innych. Jego otwarta architektura oraz aktywna społeczność czynią go potężnym wyborem dla deweloperów poszukujących programistycznych możliwości modelowania 3D bez konieczności korzystania z interfejsu graficznego.

Previous Next

Rozpoczęcie pracy z OpenSCAD

OpenSCAD jest dostępny jako gotowe binaria dla systemów Linux, macOS i Windows na oficjalnej stronie internetowej. Dla programistów kod źródłowy jest hostowany na GitHubie i można go zbudować ze źródeł przy użyciu CMake oraz dostarczonych skryptów budowania. Oficjalne repozytorium [GitHub OpenSCAD](https://github.com/openscad/openscad) zawiera szczegółowe instrukcje kompilacji dla wszystkich głównych platform. Aby szybko rozpocząć, pobierz najnowszą wersję, zainstaluj ją i otwórz edytor, aby napisać swój pierwszy skrypt SCAD.

Zainstaluj OpenSCAD za pomocą menedżerów pakietów

# Ubuntu/Debian
sudo apt install openscad

# macOS (Homebrew)
brew install --cask openscad

# Windows (Chocolatey)
choco install openscad

Konstruktywna geometria bryłowa (CSG)

Kluczową siłą OpenSCAD jest wsparcie dla konstruktywnej geometrii brył (CSG), które umożliwia łączenie podstawowych prymitywów 3D przy użyciu operacji boolowskich, takich jak suma, przecięcie i różnica. Takie podejście zapewnia precyzyjne, nie‑manifoldowe modelowanie, odpowiednie dla inżynierii i produkcji. Na przykład możesz stworzyć cylinder z otworem, odejmując mniejszy cylinder od większego. Operacje CSG są definiowane deklaratywnie w skrypcie, co umożliwia łatwą parametryzację i rewizję. Dzięki temu OpenSCAD jest idealny do projektowania części mechanicznych, obudów i funkcjonalnych prototypów, gdzie kluczowe są dokładność i powtarzalność.

Jak stworzyć cylinder z otworem przy użyciu CSG w OpenSCAD?

difference() {
    cylinder(h = 20, r = 10);
    cylinder(h = 25, r = 4, center = true);
}

Ekstruzja konturu 2D

OpenSCAD obsługuje ekstruzję konturów 2D importowanych z plików DXF lub definiowanych bezpośrednio w kodzie SCAD. Technika ta jest niezbędna do tworzenia złożonych kształtów 3D z profili 2D, takich jak koła zębate, wsporniki lub niestandardowe obudowy. Możesz ekstruzować ścieżki liniowo lub obracać je wokół osi (poprzez rotację). Proces ekstruzji respektuje kolejność wierzchołków i obsługuje zarówno wielokąty 2D, jak i ścieżki z otworami. W połączeniu z transformacjami i modułami umożliwia parametryczne generowanie elementów takich jak rury, ramy czy elementy architektoniczne, czyniąc OpenSCAD potężnym narzędziem do projektowania technicznego i procesów wytwarzania.

Jak wyekstrahować wielokąt 2D do obiektu 3D?

linear_extrude(height = 10, center = true, convexity = 10)
  polygon(points = [[0,0], [10,0], [5,10]]);

Modelowanie parametryczne i konfiguracja

OpenSCAD wyróżnia się modelowaniem parametrycznym, w którym wymiary i kształty są definiowane przy użyciu zmiennych i funkcji. Umożliwia to łatwe dostosowywanie projektów poprzez zmianę kilku parametrów, co czyni go idealnym do iteracyjnego prototypowania i personalizacji. Na przykład możesz zdefiniować moduł, który przyjmuje parametry szerokości, wysokości i grubości, a następnie używać go w wielu projektach. Parametry mogą być również sterowane danymi zewnętrznymi, takimi jak wartości z pliku CSV lub DXF, umożliwiając integrację z pipeline'ami danych opartymi na Pythonie. Ta funkcja wspiera projektowanie generatywne, w którym modele automatycznie dostosowują się do zmieniających się wymagań lub ograniczeń.

Jak zdefiniować moduł parametryczny, który można ponownie używać?

module box(width, height, thickness) {
    difference() {
        cube([width, height, thickness]);
        translate([thickness, thickness, -1])
            cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
    }
}

box(50, 30, 3);

Integracja importu i eksportu danych

OpenSCAD zapewnia solidne wsparcie dla importowania plików 2D DXF oraz eksportowania modeli 3D do formatów STL, OFF i innych. Ułatwia to integrację z narzędziami CAD/CAM, drukarkami 3D oraz oprogramowaniem symulacyjnym. Importy DXF mogą zawierać ścieżki do ekstruzji, natomiast eksporty obsługują binarne i ASCII STL do druku 3D. Dodatkowo OpenSCAD może odczytywać parametry projektu z plików DXF, umożliwiając hybrydowe przepływy pracy, w których geometria jest definiowana w zewnętrznych narzędziach, ale udoskonalana programowo. Ta interoperacyjność, w połączeniu z charakterem opartym na skryptach, pozwala programistom automatyzować generowanie modeli i przetwarzanie wsadowe przy użyciu Pythona lub skryptów powłoki, usprawniając procesy produkcyjne.

Jak zaimportować plik DXF i wyekstrahować go do 3D?

linear_extrude(height = 5) {
    import(file = "profile.dxf", layer = "outer");
}
 Polski