3D Software

To print something in 3D, it presumes one has a 3D image in the computer. There is lots of software out there for 3D work, and I need to find the right pieces.

First, proper 3D software is expensive, real expensive. It can surly do lots of things with the visualization. There is also some cheap and possibly some freeware/opensource which may be less fancy but sufficient. There are a number of steps to go from the “model” to the printer. These may be handled in the same or seperate programs.

3D design

The 3D software must represent be a “solid” model. Like pictures on a 2D surface can be lines – vector graphic – which can easily be scaled and each component can easily be changed or it can be lots of dots – pixels, photographs – where the you only can manipulate it as whole, so in 3D there is CSG (Computer Solid Graphic) or Voxels (little cubes which are present/absent).

So one needs to be able to define the model, build it up from smaller shapes, and as a bare minum be able to view it from different angles on the pc screen. Sizes and angles should be definable in units and as free form drawing. Many 3D programs then let you play with colors, lighting, shadows but that is totally irrelevant for the 3D printer. We want the final shape floating in space in some boring monochrome and nothing else.

There are many formats to store a 3D shape in. The STL format is very simple and can handle all shapes, but is limited in defining other attributes than the shape (like density of material, or colour of plastic to use?). A viewer the reads STL should be easy to find.

Slicing (processing part 1)

The shape then needs to be sliced into printer slices. That is an easy transformation, inherent in the CSG (one just defines a Intersect with a thin slab), and even with voxels after a rotation one just picks each Z layers voxels.

A pre-process step is to assign the support structures, if any. This break-off walls in the same material, or with 2nd head in soluble stuff. For the latter various section of shapes need to have an attribute which material it is to be made of.

Generate print pattern (processing part 2)

Lastly, and slightly more complicated the slice is treated as a 2D shape. For good prints we need to define each edge, so the printer can print the outside, and any internal contours. The edge, or edges,  thus has to boiled down to a set of line segments. Then we need to generate a “fill pattern” for all areas that are solid. This seems to simply be diagonal lines, alternating in layers. It is possible to make the material slightly porous but having spacing on each line. Further instead of “solid”, one can define honeycomb/hexagonal pattern thus making strong yet light insides. If the support are made in a different material, there neeeds to be two passes for each layer, where the head/material is changed.

There also needs to be some scaling applied, so the printout is not too small or large for the printer. Maybe even a way to section it, if the final result is larger then the printer.

Generate and send G-code

Having now a set of line commands for the head to trace there lastly remains to ship this to the printer. This is almost trivial in comparison to the other number crunching stages. G-Code is an accepted industry standard for describing such tool movements. The G-code could be generated and stored in a file, and then spooled to the printer when convinient. (That data transfer is another piece of software to be written, but will probably be part of this component). The firmware in the printer will take the G-Code and calculate and perfom the actual head movement for that one straight (or circular) line segment. There needs to be a protocol with flow control, ie the pc sends the G-code to the printer piecewise, at the rate the printer requests.

There are free viewers that read a G-code file and show a wireframe view of the resulting motion the head will take, ie. trace out the print result, like a Print Preview. Good for avoiding wasting a 3D print due to a badly choosen scaling factor or suchlike, or for debugging the other software.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: