Benutzer-Werkzeuge

Webseiten-Werkzeuge


knowledgebase:openscad

openSCAD

Was ist openSCAD

OpenScad ist ein kostenloses 3D CAD Programm für alle Betriebssysteme von Windows über Apple bishin zu Linux.
Das Programm kann hier heruntergeladen werden. Mit openSCAD lassen sich schnell und einfach 2D und 3D Modelle erstellen, die als .stl, .dxf und einigen anderen Formaten exportiert werden können. Diese Formate können an den UNIKAT 3DDruckern und CNC-Fräsen eingesetzt werden.

Besonderheiten von openSCAD

Die große Besonderheit bei diesem Programm liegt darin, dass die Objekte im Gegensatz zu den bekannten Programmen Autodesk Inventor oder Blender nicht in einem Raum erstellt, gezogen und fixiert werden müssen. Abhängigkeiten gibt es auch keine. Stattdessen wird das Objekt mit einem Editor programmiert. Dies bietet große Vorteile, nicht nur der Übersicht wegen, sondern vereinfacht auch viele komplexe Modellierungen und Veränderungen an Objekten. Desweiteren können viele zusätzliche Programme eingebunden werden (z.B. trace2scad oder QR Code Generator für OpenSCAD) die es ermöglichen sogar Bilder Druckbar zu machen.
Desweiteren ist openSCAD einheitenlos, d.h. man programmiert nur mit Zahlenwerten, nicht mit festgelegten Einheiten. Dadurch kann man sein Objekt problemlos in verschiedene Programme einspeißen oder die Größe verändern.

Erstellen eines Objekts

Zum Erstellen eines Objekts benötigt man nicht mehr als ein paar Grundbefehle. Alle Objekte werden aus den Grundformen Kreis und Rechteck (in 3D Kugel und Kubus) gebildet. Diese Grundobjekte werden verschoben, verformt und verbunden um jedes erdenkliche Modell erstellen zu können.
Da openSCAD mit einer „programmierung“ seiner Objekte arbeitet, muss eine bestimme, C ähnliche Syntax beachtet werden:

  • Jedes erstellte Objekt muss mit einer Klammer definiert und einem Semikolon abgeschlossen werden: circle(radius);
  • alles was mit einem erstellten Objekt passiert wird vor dem Objekt festgelegt translate([x,y,z]) cube([laenge,breite,hoehe]);
  • Grundobjekte werden entweder vereint oder geschnitten: union(), intersection() oder difference()
  • Runde Klammern definieren Eigenschaften: circle(radius=5);
  • Eckige Klammern definieren X,Y und Z Achsenabschnitte/-längen: cube([15,20,30]);
  • Geschweifte Klammern fassen Objekte und Strukturen zusammen: { cube([10,20,30]); translate([10,5,0]) sphere(5); }
  • auf C basierend können Konstanten und Variablen, sowie Loops auch programmiert werden

Die gesamte Übersicht über die Befehle und Strukturen erhält man hier .

Exportieren eines Objekts

Wichtig beim Export der Modelle ist für welche Anwendungsgebiete die Dateien lesbar sein müssen. Will man fräsen exportiert man die Dateien als .dxf-Dateien. Diese .dxf-Dateien können nur aus zweidimensionalen Objekten gebildet werden. Zum 3DDrucken braucht man dagegen .stl-Dateien; diese werden aus dreidimensionalen Objekten exportiert. Für Anfänger empfiehlt es sich alle Objekte erst in zweidimensionaler Form zu erstellen und diese dann zu extruieren, so können beide Formate ohne Umstände gewählt werden.

Beispielübung zum Einstieg

In diesem kleinen Tutorial werden wir ein kleines Objekt in 2D erstellen:

  1. zuerst erstellen wir einen Kreis mit circle(r=5);
  2. diesen verschieben wir im koordinatensystem: translate([5,10]) circle(r=5);
  3. dazu kommt ein Rechteck: square([5,10]);
  4. diese beiden Objekte werden jetzt mit difference voneinander abgezogen und wir erhalten unser erstes Programm
difference() {                    //objekte voneinander differenzieren
  translate([5,10]) circle(r=5);  //erstellen und verschieben eines kreises
  square([5,10]);                 //erstellen eines rechtecks
  } \\ 
  

Ein zweiter Sketch zeigt die Anwendung im 3Dimensionalen Raum:

rotate_extrude(angle=360, convexity=30){
  translate([90,0,-10]) union(){
    translate([20,10.5,0]) scale(0.7) union(){
      difference(){
        union(){  circle(10);
                  translate([-20,-15])square([30,15]);
               }
        translate([-3,0]) square([6,15]);
        translate([-10,8]) square([20,10]);
        translate([-20,0]) circle(10);
                  }            }
                                       }      }


In einem letzten Beispiel wird eine einfache Befehlsstruktur realisiert:

for (a= [0 : 7]){
  b=45;
  c=0;
  d=40;
  rotate(a*b+c)translate([-90,0,0]) linear_extrude(4) circle(d, $fn=3);
}


Du hast Interesse an openSCAD oder willst einen Workshop bei UNIKAT dazu besuchen? Schreib uns einfach unter unikat@tu-ilmenau.de

knowledgebase/openscad.txt · Zuletzt geändert: 2017/12/20 11:49 von rolex