Benutzer-Werkzeuge

Webseiten-Werkzeuge


scad

OpenSCAD

Foto: www.openscad.orgFoto: www.fotodiaz-vintage.com
OpenSCAD ist eine freie, open Source CAD-Software (GPLv2 Lizenz), 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 wurde von Clifford Wolf programmiert, aktuell wird das Projekt gewartet und betreut von Marius Kintel

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

Foto: www.roboterfabrik.at
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 Foto: www.roboterfabrik.at 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 + Foto: www.roboterfabrik.atZiehen 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 Foto: www.roboterfabrik.at Ziehen mit der rechten Maustaste verschiebt den Anzeigebereich.
Zoomen Foto: www.roboterfabrik.at mit dem Scrollrad
Foto: www.roboterfabrik.at ziehen mit der mittleren Maustaste
⇧ Umschalt+Foto: www.roboterfabrik.atziehen mit der rechten Maustaste und gedrückter Shift-Taste
⇧ Umschalt+ Foto: www.roboterfabrik.atziehen 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

beispiel001.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kugel mit voreingestellter Auflösung - Beispiel001 (Version 1.0)
sphere();

Abbildung 001:
Foto: www.roboterfabrik.at

Beispiel 002

beispiel002.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kugel mit hoher Auflösung - Beispiel002 (Version 1.0)
$fn=100;
sphere();

Abbildung 002:
Foto: www.roboterfabrik.at

Beispiel 003

beispiel003.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kugel mit Radius 50 und hoher Auflösung - Beispiel003 (Version 1.0)
$fn=100;
sphere(50);

Abbildung 003:
Foto: www.roboterfabrik.at

Beispiel 004

beispiel004.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kugel mit Durchmesser 60 und hoher Auflösung - Beispiel004 (Version 1.0)
$fn=100;
sphere(d=60);

Abbildung 004:
Foto: www.roboterfabrik.at

Beispiel 005

beispiel005.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kugel mit Durchmesser 60 verschieben um 60 nach Richtung x - Beispiel005 (Version 1.0)
$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:
Foto: www.roboterfabrik.at

1.4.1 Zylinder

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

Beispiel 006

beispiel006.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder - Beispiel006 (Version 1.0)
cylinder();

Abbildung 006:
Foto: www.roboterfabrik.at

Beispiel 007

beispiel007.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder aus 6 Flächen (z.B. für Sechskantmutter) - Beispiel007 (Version 1.0)
$fn=6;
cylinder();

Abbildung 007:
Foto: www.roboterfabrik.at

Beispiel 008

beispiel008.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder mit Höhe 10 und automatischen Radius 1 - Beispiel008 (Version 1.0)
$fn=100;
cylinder(10);

Abbildung 008:
Foto: www.roboterfabrik.at

Beispiel 009

beispiel009.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder mit Höhe 10 und Radius 10 - Beispiel009 (Version 1.0)
$fn=100;
cylinder(10,10,10); // (h,r1,r2)

Abbildung 009:
Foto: www.roboterfabrik.at

Beispiel 010

beispiel010.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder besser Kegel mit Höhe 10 und Radius 10 unten, Radius 3 oben - Beispiel010 (Version 1.0)
$fn=100;
cylinder(10,10,3);

Abbildung 010:
Foto: www.roboterfabrik.at

Beispiel 011

beispiel011.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder besser Kegel mit Höhe 10 und Radius 0 unten, Radius 10 oben - Beispiel011 (Version 1.0)
$fn=100;
cylinder(10,0,10);

Abbildung 011:
Foto: www.roboterfabrik.at

Beispiel 012

beispiel012.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder mit Höhe 10 und Radius 10, verschieben um 20 nach Richtung x - Beispiel012 (Version 1.0)
$fn=100;
translate([0,20,0]) // hier kein Semikolon [x,y,z]
cylinder(10,10,10); // (h,r1,r2)

Abbildung 012:
Foto: www.roboterfabrik.at

Beispiel 013

beispiel013.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Zylinder mit Höhe 10 und Durchmesser 10, verschieben um 30 nach Richtung z - Beispiel013 (Version 1.0)
$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:
Foto: www.roboterfabrik.at

1.4.2 Würfel

cube (size, center) Beispiel 014

beispiel014.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel - Beispiel014 (Version 1.0)
cube();

Abbildung 014:
Foto: www.roboterfabrik.at

Beispiel 015

beispiel015.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel mit Kantenlänge 15 - Beispiel015 (Version 1.0)
cube(15);

Abbildung 015:
Foto: www.roboterfabrik.at

Beispiel 016

beispiel016.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel mit Kantenlänge 15 zentriert - Beispiel016 (Version 1.0)
cube(15,center=true);

Abbildung 016:
Foto: www.roboterfabrik.at

Beispiel 017

beispiel017.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel (Quader) mit Kantenlängen 50,20,10 zentriert - Beispiel017 (Version 1.0)
cube([50,20,10],center=true); // ([width,depth,height],center)

Abbildung 017:
Foto: www.roboterfabrik.at

2.0 Bearbeitung der Körper

2.0.0 Vereinigung

union()

Beispiel 018

beispiel018.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Verbindung von 2 Zylindern 1 Zylinder gedreht um 90 Grad (rotate) - Beispiel018 (Version 1.0)
$fn=100;
union()
{
cylinder(h=4,r=1,center=true);
rotate([90,0,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 018:
Foto: www.roboterfabrik.at

2.0.1 Differenz

difference() Beispiel 019

beispiel019.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Abziehen 1 Zylinders vom zweiten, um 90 Grad gedrehten Zylinder - Beispiel019 (Version 1.0)
$fn=100;
difference()
{
cylinder(h=4,r=1,center=true);
rotate([0,90,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 019:
Foto: www.roboterfabrik.at

2.0.2 Kreuzung

intersection()

Beispiel 020

beispiel020.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Kreuzung zweier Zylinder - Beispiel020 (Version 1.0)
$fn=100;
intersection()
{
cylinder(h=4,r=1,center = true);
rotate([90,0,0]) cylinder(h=4,r=0.9,center=true);
}

Abbildung 020:
Foto: www.roboterfabrik.at

2.0.3 Text

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

beispiel021.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel (Quader) mit Kantenlängen 80,20,3 mit Text OpenSCAD 4,6,3 - Beispiel021 (Version 1.0)
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:
Foto: www.roboterfabrik.at

2.0.4 Farbe

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

beispiel022.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel (Quader) mit Kantenlängen 80,20,3 mit Text OpenSCAD 4,6,3 in blau - Beispiel022 (Version 1.0)
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:
Foto: www.roboterfabrik.at

2.0.5 Einblenden

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

beispiel023.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel (Quader) mit Kantenlängen 80,20,3 mit Text OpenSCAD 4,6,3 in rot, nur der Text wird angezeigt - Beispiel023 (Version 1.0)
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:
Foto: www.roboterfabrik.at

2.0.6 Ausblenden

* = Diesen Teil des Codes wird ausgeblendet Beispiel 024

beispiel024.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Würfel (Quader) mit Kantenlängen 80,20,3 mit Text OpenSCAD 4,6,3 in rot, der Text wird ausgeblendet - Beispiel024 (Version 1.0)
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:
Foto: www.roboterfabrik.at

2.0.7 Anzeigen

# = Dieser Teil des Codes wird rot angezeigt

Beispiel 025

beispiel025.scad
// OpenSCAD Schulungsdatei © Michael Metzger - www.roboterfabrik.at - 2019
// Abziehen 1 Zylinders vom zweiten, um 90 Grad gedrehten Zylinder - Beispiel025 (Version 1.0)
$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:
Foto: www.roboterfabrik.at

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