OpenSCAD User Manual/STL Import and Export
[edit] STL Import and Export
A prime ingredient of any 3D design flow is the ability to import from and export to other tools. The STL file format is currently the most common format used.
[edit] STL Import
The text in its current form is incomplete.
[edit] import_stl
Imports an STL file for use in the current OpenSCAD model
Parameters
- "<file name>"
- A string containing the path to the STL file to include. Double-quotes are required.
- convexity
- Integer. The convexity parameter specifies the maximum number of front sides (back sides) a ray intersecting the object might penetrate. This parameter is only needed for correctly displaying the object in OpenCSG preview mode and has no effect on the polyhedron rendering.
Usage examples:
import_stl("example012.stl", convexity = 5);
[edit] STL Export
The text in its current form is incomplete.
[edit] STL Export
To export your design, select "Export as STL..." from the "Design" menu, then enter a filename in the ensuing dialog box. Don't forget to add the ".stl" extension.
Trouble shooting:
After compile and render GCAL (F6), you may see that your design is simple: no. That's bad news.
See line 8 in the following output from OpenSCAD 2010.02:
Parsing design (AST generation)... Compiling design (CSG Tree generation)... Compilation finished. Rendering Polygon Mesh using CGAL... Number of vertices currently in CGAL cache: 732 Number of objects currently in CGAL cache: 12 Top level object is a 3D object: Simple: no Valid: yes Vertices: 22 Halfedges: 70 Edges: 35 Halffacets: 32 Facets: 16 Volumes: 2 Total rendering time: 0 hours, 0 minutes, 0 seconds Rendering finished.
When you try to export this to .STL you will get a message like:
Object isn't a valid 2-manifold! Modify your design..
"Manifold" means that it is "water tight" and that there are no holes in the geometry. In a valid 2-manifold each edge must connect exactly two facets. That means that the program must be able to connect a face with an object. E.g. if you use a cube of height 10 to carve out something from a wider of cube of height 10, it is not clear to which cube the top or the bottom belongs. So make the small extracting cube a bit "longer" (or "shorter"):
difference() { // original cube (size = [2,2,2]); // object that carves out # translate ([0.5,0.5,-0.5]) { cube (size = [1,1,3]); } }
Here is a more tricky little example taken from the OpenSCAD Forum (retrieved 15:13, 22 March 2010 (UTC)):
module example1() { cube([20, 20, 20]); translate([-20, -20, 0]) cube([20, 20, 20]); cube([50, 50, 5], center = true); } module example2() { cube([20.1, 20.1, 20]); translate([-20, -20, 0]) cube([20.1, 20.1, 20]); cube([50, 50, 5], center = true); }
Example1 would render like this:
The example1 module is not a valid 2-manifold because both cubes are sharing one edge. They touch each other but do not intersect.
Example2 is a valid 2-manifold because there is an intersection. Now the each edge must connect exactly two facets constraints of 2-manifolds is is met.
Pieces you are subtracting must extend past the original part. (OpenSCAD Tip: Manifold Space and Time, retrieved 18:40, 22 March 2010 (UTC)).
This page may need to be 
