Benutzer-Werkzeuge

Webseiten-Werkzeuge


scad

OpenSCAD


OpenSCAD ist eine freie CAD-Software, mit einer textbasierenden Beschreibungssprache werden 3D-Modelle erzeugt. Die Objekte werden aus einfachen geometrischen Grundkörpern zusammengefügt und mit Transformationen und Modifikationen zu einem komplexen 3D-Modell vereinigt. Die Modellierung basiert auf der CSG-Technik. OpenSCAD ist für Windows, Linux, OS X, FreeBSD und OpenBSD verfügbar.

OpenSCAD erlaubt es, 3D-Objekte zu erstellen, die sich parametrisch verändern lassen. Außerdem sind prozedural erzeugte Objekte generierbar. Als Dateiformat wird eine einfache Textdatei mit der Endung .scad genutzt. Im Gegensatz zu den meisten anderen CAD-Programmen steht hier also ein komplett freies Dateiformat zur Verfügung. Es kann, neben anderen Exportformaten, auch in das .stl Format (Standard für 3D Druckprogramme) exportiert werden. Weiters lassen sich auch Bibliotheken erstellen, um benutzerdefinierte Objekte und Funktionen zur Mehrfachverwendung zu Verfügung stellen zu können. OpenSCAD ist eine funktionale/deklarative Programmiersprache. Neben 3D-Modellen kann OpenSCAD auch zum Erstellen von Animationen verwendet werden.

Informationen zum Herunterladen und Installieren von OpenSCAD finden Sie unter http://www.openscad.org/downloads.html

1 Einführung

OpenSCAD ist eine Software zum Erstellen von 3D-CAD-Objekten. Es ist freie Software und verfügbar für GNU / Linux , Microsoft Windows und Mac OS X. Im Gegensatz zu den meisten freien Software zur Erstellung von 3D-Modellen (wie die bekannte Anwendung Blender ), konzentriert sich OpenSCAD nicht auf die künstlerischen Aspekte der 3D-Modellierung, sondern konzentriert sich auf die CAD- Aspekte. Es könnte also die Anwendung sein, nach der Sie suchen, wenn Sie 3D-Modelle von Maschinenteilen erstellen möchten, aber wahrscheinlich nicht das, wonach Sie suchen, wenn Sie mehr daran interessiert sind, computeranimierte Filme oder organische, lebensechte Modelle zu erstellen.

OpenSCAD ist im Gegensatz zu vielen CAD-Produkten kein interaktiver Modellierer. Es ist vielmehr ein 2D / 3D-Compiler, der eine Programmdatei einliest, die das Objekt beschreibt und das Modell aus dieser Datei rendert. Dies gibt Ihnen (dem Designer) volle Kontrolle über den Modellierungsprozess. Auf diese Weise können Sie jeden Schritt im Modellierungsprozess problemlos ändern. Auf diese Weise können Sie Entwürfe erstellen, die durch konfigurierbare Parameter definiert sind.

OpenSCAD hat zwei Hauptbetriebsarten, Vorschau und Render. Die Vorschau ist relativ schnell und verwendet 3D-Grafiken und die GPU des Computers , ist jedoch eine Annäherung an das Modell und kann Artefakte erzeugen. Die Vorschau verwendet OpenCSG und OpenGL . Render erzeugt exakte Geometrie und ein vollständig tesselliertes Netz , es ist keine Annäherung und als solches ist es oft ein langwieriger Prozess, der für größere Designs Minuten oder Stunden benötigt; Render verwendet CGAL als Geometrie-Engine.

OpenSCAD bietet zwei Arten von 3D-Modellierung:
Konstruktive Festkörpergeometrie (CSG)
Extrusion von 2D-Primitiven in 3D-Raum.
Autocad DXF-Dateien werden als Datenaustauschformat für 2D-Konturen verwendet. Neben 2D-Wegen für die Extrusion können auch Konstruktionsparameter aus DXF-Dateien gelesen werden. Neben DXF-Dateien kann OpenSCAD 3D-Modelle in den Dateiformaten STL und OFF lesen und erstellen.
OpenSCAD kann von http://openscad.org/ heruntergeladen werden. Möglicherweise finden Sie zusätzliche Informationen in der Mailing-Liste.

1.0 Bedienung

F5 Übersetzung (Compile) und Gittermodell aktualisieren (schnelle Variante)
F6 Übersetzung (Compile) und aufwändige Version rendern (langsame Variante, für STL-Export notwendig)

Die OpenSCAD Benutzeroberfläche

Die Benutzeroberfläche von OpenSCAD besteht aus drei Teilen


Der Sichtbereich 1
Das Konsolenfenster 2
Der Texteditor 3

Sichtbereich
Vorschau und Rendering-Ausgabe geht in den Anzeigebereich. Mit dem Menüeintrag Achsen anzeigen kann ein Indikator für die Koordinatenachsen aktiviert werden.
Konsolenfenster
Statusinformationen, Warnungen und Fehler werden im Konsolenfenster angezeigt.
Texteditor
Der integrierte Texteditor bietet grundlegende Bearbeitungsfunktionen wie Textsuche und Textersetzung und unterstützt Syntax-Highlighting. Es gibt vordefinierte Farbschemata, die im Dialogfeld „Voreinstellungen“ ausgewählt werden können.

Der Ansichtsbereich wird hauptsächlich mit der Maus navigiert:

Aktion Symbole Beschreibung
Drehen der Ansicht Durch Ziehen mit der linken Maustaste wird die Ansicht entlang der Achsen des Ansichtsbereichs gedreht. Es behält die Richtung der vertikalen Achse bei.
⇧ Umschalt + Ziehen mit gedrückter linker Maustaste bei gedrückter Shift-Taste dreht die Ansicht entlang der vertikalen Achse und der Achse, die auf den Benutzer zeigt.
Verschieben des Anzeigebereichs Ziehen mit der rechten Maustaste verschiebt den Anzeigebereich.
Zoomen mit dem Scrollrad
ziehen mit der mittleren Maustaste
⇧ Umschalt+ziehen mit der rechten Maustaste und gedrückter Shift-Taste
⇧ Umschalt+ ziehen mit der mittleren Maustaste und gedrückter Shift-Taste
+ und -die Tasten + und -
Rotation zurückgesetztStrg + 0Die Rotation kann mit der Tastenkombination Strg + 0 zurückgesetzt werden
Bewegung zurückgesetztStrg + PDie Bewegung kann mit der Tastenkombination Strg + P zurückgesetzt werden

1.2 Kommentare

// Einzeiliger Kommentar
/* Kurzer Kommentar */
/* Hier sind
mehrere
Kommentarzeilen
vorhanden */ 

Kommentare können auch verwendet werden, um Teile des Quelltextes zu deaktivieren, man bezeichnet dies als Auskommentieren.

1.3 Syntax

Die Syntaxbeschreibung von OpenSCAD passt gut lesbar noch auf eine Din A4 Seite. Die kürzeste Variante zum Nachschlagen ist das aktuelle Online-Cheat Sheet: http://www.openscad.org/cheatsheet/

1.4 Geometrische Körper

1.4.0 Kugel

sphere (radius | d=diameter)
Beispiel 001

// Kugel:
sphere();

Abbildung 001:

Beispiel 002

// Kugel mit höherer Auflösung
$fn=100;
sphere();

Abbildung 002:

Beispiel 003

// Kugel mit Radius 50
$fn=100;
sphere(50);

Abbildung 003:

Beispiel 004

// Kugel mit Durchmesser 60
$fn=100;
sphere(d=60);

Abbildung 004:

Beispiel 005

// Kugel mit Durchmesser 60 verschieben um 60 nach Richtung x:
$fn=100;
translate([60,0,0]) // hier kein Semikolon [x,y,z]
sphere(60); // 60 Radius

Eine Kugel ist grundsätzlich immer zentriert!
Abbildung 005:

1.4.1 Zylinder

cylinder (h,r|d,center)([width,depth,height], center)

Beispiel 006

// Zylinder
cylinder();

Abbildung 006:

Beispiel 007

// Zylinder aus 6 Flächen (z.B. für Sechskantmutter)
$fn=6;
cylinder();

Abbildung 007:

Beispiel 008

// Zylinder mit Höhe 10 und automatischen Radius 1
$fn=100;
cylinder(10);

Abbildung 008:

Beispiel 009

// Zylinder mit Höhe 10 und Radius 10
$fn=100;
cylinder(10,10,10); // (h,r1,r2)

Abbildung 009:

Beispiel 010

// Zylinder besser Kegel
// mit Höhe 10 und Radius 10 unten Radius 3 oben
$fn=100;
cylinder(10,10,3);

Abbildung 010:

Beispiel 011

// Zylinder besser Kegel
// mit Höhe 10 und Radius 0 unten Radius 10 oben
$fn=100;
cylinder(10,0,10);

Abbildung 011:

Beispiel 012

// Zylinder mit Höhe 10 und Radius 10
// verschieben um 20 nach Richtung x:
$fn=100;
translate([0,20,0]) // hier kein Semikolon [x,y,z]
cylinder(10,10,10); // (h,r1,r2)

Abbildung 012:

Beispiel 013

// Zylinder mit Höhe 10 und Durchmesser 10
// verschieben um 30 nach Richtung z:
$fn=100;
translate([0,0,30]) // hier kein Semikolon [x,y,z]
cylinder(10,10,10); // (h,d1,d2)

Ein Zylinder / Kegel ist grundsätzlich immer zentriert ! Abbildung 013:

1.4.2 Würfel

cube (size, center) Beispiel 014

/ Würfel
cube();

Abbildung 014:

Beispiel 015

// Würfel mit Kantenlänge 15
cube(15);

Abbildung 015:

Beispiel 016

// Würfel mit Kantenlänge 15 zentriert
cube(15,center=true);

Abbildung 016:

Beispiel 017

// Würfel (Quader) mit Kantenlängen 50,20,10 zentriert
cube([50,20,10],center=true); // ([width,depth,height],center)

Abbildung 017:

2.0 Bearbeitung der Körper

2.0.0 Vereinigung

union()

Beispiel 018

// Verbindung von 2 Zylindern 1 Zylinder gedreht um 90 Grad (rotate)
$fn=100;
union()
{
cylinder(h=4,r=1,center=true);
rotate([90,0,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 018:

2.0.1 Differenz

difference() Beispiel 019

// Abziehen 1 Zylinders vom zweiten, um 90 Grad gedrehten Zylinder
$fn=100;
difference()
{
cylinder(h=4,r=1,center=true);
rotate([0,90,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 019:

2.0.2 Kreuzung

intersection()

Beispiel 020

// Kreuzung zweier Zylinder
$fn=100;
intersection()
{
cylinder(h=4,r=1,center = true);
rotate([90,0,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 020:

2.0.3 Text

Text: text(text, size, font, halign, valign, spacing, direction, language, script) Beispiel 021

// Würfel (Quader) mit Kantenlängen 80,20,3
// mit Text OpenSCAD 4,6,3
cube([80,20,3]); // ([width,depth,height])
translate([4,6,3]) //([x,y,z])
{
linear_extrude(height=1) // Texthöhe
text("OpenSCAD",font="Liberation Sans");
}

Abbildung 021:

2.0.4 Farbe

Farbe: color („colorname“,alpha)([r,g,b,a]) Beispiel 022

// Würfel (Quader) mit Kantenlängen 80,20,3
// mit Text OpenSCAD 4,6,3 in blau
cube([80,20,3]); // ([width,depth,height])
translate([4,6,3]) //([x,y,z])
{
color ("blue") // mit F5 !!
linear_extrude(height=1) // Texthöhe
text("OpenSCAD",font="Liberation Sans");
}

Abbildung 022:

2.0.5 Einblenden

! = Nur diesen Teil des Codes ausführen Beispiel 023

// Würfel (Quader) mit Kantenlängen 80,20,3
// mit Text OpenSCAD 4,6,3 in rot, nur der Text wird angezeigt
cube([80,20,3]); // ([width,depth,height])
translate([4,6,3]) //([x,y,z])
{
!color ("red") // (mit F5 ! ) nur der Text wird angezeigt
linear_extrude(height=1) // Texthöhe
text("OpenSCAD",font="Liberation Sans");
}

Abbildung 023:

2.0.6 Ausblenden

* = Diesen Teil des Codes wird ausgeblendet Beispiel 024

// Würfel (Quader) mit Kantenlängen 80,20,3
// mit Text OpenSCAD 4,6,3 in rot, der Text wird ausgeblendet
cube([80,20,3]); // ([width,depth,height])
translate([4,6,3]) //([x,y,z])
{
*color ("red") // (mit F5 ! ) der Text wird ausgeblendet
linear_extrude(height=1) // Texthöhe
text("OpenSCAD",font="Liberation Sans");
}

Abbildung 024:

2.0.7 Anzeigen

# = Dieser Teil des Codes wird rot angezeigt

Beispiel 025

// Abziehen 1 Zylinders vom zweiten, um 90 Grad gedrehten Zylinder
$fn=100;
difference()
{
cylinder(h=4,r=1,center=true);
# rotate([0,90,0]) cylinder(h=4,r=0.9,center=true); (mit F5 ! ) Teil wird rot angezeigt
}

Abbildung 025:

scad.txt · Zuletzt geändert: 2019/02/23 15:08 von Michael Metzger