Tag Archives: geometry

Preform not (yet) fully compatible with JewelCAD

The challenge

I’ve done some test prints for someone in the jewel industry. They wanted to see the Form1 quality output to maybe use it as a quick prototyping desktop station and get faster development cycles. We discovered that in some conditions JewelCAD is only capable of exporting to STL the positive geometries OR the negative geometries (holes / notch) but not the fused triangle mesh.

The only way to merge both negative and positive geometry is apparently to slice the object and export it as SLC file. This file format was created in 1994 by 3D systems and is now at the second revision. The evolution was mainly to store the data as binary to save space but the content of the file was not changed much.

Preform is unfortunately not capable of reading SLC files nor importing positive and negative bodies to form a finite model. That’s another instance where it would be handy to have the Printer protocol open or at least an API to build our own slicer for the Form1.

Workaround proposals

I can see two ways to solve this challenge:

  1. Use a 3D modeling software to apply the boolean operation
  2. Re-constuct the STL triangle mesh from the SLC slices data

The first option can be done using the free software Blender (see this video tutorial for example). Boolean operations on complex triangles mesh are some time not possible to apply. It’s especially true if the original geometries are not completely clean (holes / inverted triangles…). In the case of my test print, Blender and Netfabb were not able to apply the subtraction.

The picture under is showing that even in a very simple case, subtracting a sphere from a cube in Blender creates a lot of extra triangles. The whole difficulty is to generate precisely the cut/intersection line as explained in this paper by Biermann and Al.


So if the Boolean operation is not possible, we can only regenerate the STL triangles from the SLC data. Provided the original geometry slice thickness was at least the desired print configuration, it should not affect the output quality. Commercial software like SLC2STL or Netfabb seems to be able to perform the conversion but the licenses are expensive for a casual usage (in the $k range).

As the triangle geometry is an interesting algorithm development, I have no option but add it to my TODO list! The first step of this un-slicer is of course to read the SLC data.

Matlab SLC file reader

The SLC format is a simple collection of slices composed of a collection of boundaries. You can read the format specification [here]. Each boundary is a closed polygon (poly-line) defined by a series of [X,Y] vertices with the first point duplicated at the end to close the loop.

I’ve built an viewer in Matlab to explore the content of SLC v2 files. The archive contains 2 example ring slices SLC file. After extracting all the information, the viewer displays a 2 plot window were the user can click on any point in the 3D plot on the right to display the full slice on the left pane.



The second picture is showing that external (blue) and internal (red) boundaries are drawn in 2 colors. In the SLC format, internal boundaries are stored clockwise while external boundaries are anti-clockwise. Detect reliably the orientation of a poly-line curve is tricky as it must work for concave polygon. The easiest method is to find one point of the convex hull and use a determinant to get the local convexity…



What’s next?

So while we could dream to have Preform reading the slice directly, it’s probably easier to get one of these software to convert the SLC to STL. This operation is definitely not obvious with many steps to get it working is all circumstances so I probably won’t tackle it anytime soon…

[<<Prev. – Episode 2 : Form1 calibration]    [3D Printer articles]   [Precision VS Accuracy – Next>>]


Impossible Object 3 – Spheroforms Inventor and Matlab versions

July 2013 edit: I finaly printed the spheres see pictures [here]

Here we are back to our Impossible object series, and I promise this is the last time we are going to cover the Reuleaux polygons! Those constant witdth polygons can be extended to 3 dimensions to build non-regular spheres (I.E. spheroforms).

Here is a video of one ‘sphere’ based on a revolve of the Reuleau triangle:

Here is how to build these Reuleaux spheres:

  1. Build half of the Reuleau polygons (see here how), and define the vertical segment as a center line (optional, the revolve command will let you select it anyway). Before closing the sketch, make sure that all the loops are closed with the sketch doctor tool.
  2. Use full revolve for all the polygons and the circle (you will need to share the sketch). You can now export your spheroforms in STL and print.

The Inventor file is here, and the STL is here.

These spheroforms are relatively easy to build using Matlab. Here is a parametric script that:

  1. Build the regular polygon
  2. Build the Reuleaux polygon
  3. Rotate it through one axe of symmetry to get the cloud of points
  4. Tessellate and save the result as a STL file


Note: The Matlab  scripts are available HERE, Launch it with the start.m script. all code are copyrighted, only usable for non-commercial purpose and provided as is with no guaranty of any sort!

As a final note there are other spheroform like Meissner’s tetrahedron but I’ve covered enough the constant width solids for the moment. Maybe in the future…

[<<Prev. – Non regular Regular Reuleaux]    [3D Printer articles]   [Penrose Triangle – Next>>]

Impossible Objects 1 – How round is your wheel?

In this series of “Impossible Objects” articles we will use the magic of 3D printing to explore strange objects that are (maybe) totally useless but at the same time absolutely essential.

We will start with something that defy intuition: constant width shapes. It’s is a rather boring name for something very cool. Like circles/spheres you can roll them and they will always have the same width even if they are not “round”:

The 3 sided shape called Reuleaux Triangle has a constant width when rotated.

Every odd number of side regular polygon can be transform to fit this property by drawing arcs of constant radius as shown in the next figure:


This video shows multiple of these strange “wheels” in action:

These shapes make a perfect tutorial to start modeling in Inventor for example and play with the constraints. I’ve made a set of wheels (IPT Inventor file) and converted them to STL for your printer.

  1. Start with a standard part and create a new 2D sketch
  2. Create all the wheels shapes with parametric dimensions:
    • Create a circle and add a constraint with diameter name for the diameter
    • Create with the polygon tool the triangle/pentagon/Heptagon and fix their dimension using diameter name


  3. Switch the initial shape to construction lines and add all center-point arcs. Make sure all the construction points are ‘snapped’ to the initial geometry (in blue). If they are not snapped, they will appears in green (under-constrained)
  4. Exit the sketch and extrude the circle with parametric distance call thickness. The sketch will be “consumed” by the extrusion, to right click on the sketch in the model try and select “share sketch”. Now extrude all the shapes. If the full profile cannot be selected it’s probably because there is an open loop in the sketch. To solve it edit the sketch and in the right click menu select “sketch doctor”, search for open loop and let inventor resolve the issue. You should be able to extrude all the shape now.
  5. We are nearly there! Add a small fillet on the front and back edges for the beauty. Save your part, then select export to “CAD format” in the File menu and create the .stl file. The preview let you adjust the precision of the triangle approximation.reuleaux_step4
  6. Print your new wheels! I’m eager to get the Form1 to test…

The files for this tutorial are [here for the inventor file] and [here for the STL]

So are Reuleaux polygons really useless?
The answer seems to be mostly… Beside a few coins, guitar picks and some signage the shape is not used in many applications. The Wankel engine uses a shape that is similar but with flatter sides. Maybe the fact that you can drill a square hole with them will finish to convince you?

In a coming post we’ll see the extension of these Reuleaux polygons in volume.

[<<Prev. – STL File format]    [3D Printer articles]   [Non-Regular Reuleaux polygons – Next>>]