3D Printing and Scanning

As guru, right here at the top, I've compiled a list of things to keep in mind with 3D printing and scanning.  They're not all rules, some are more like personal and shared class observations.  Feel free to edit if something is flat out wrong. 

Scanning:

- STL files do not save color.  If you want color i.e. for the Zcorp printer, save as vrml2.
- The ideal object is matte white.  The worst object is shiny black.  Objects with combinations are going to have holes, especially on the NextEngine, where it makes an attempt to account for object color and finish, but uniformly. 
- Each scanner is not going to be able to fill the bottom and possibly the top of your object.  You're going to have to do this manually (easier if the top and bottom are flat).
- It is likely you are going to have holes in your part when you are done scanning, and you need to figure out the most effective way to fill them in.  This can either be done automatically in Geomagic, with varying degrees of success depending on the number, size, and type of holes, or by hand, as in Rhino.
- Solidworks Premium has a plugin called ScanTo3D, which converts an .stl file into a part, from which it can be edited, cut, extruded, etc. like any other SW part. Once this is done, there is a macro called ModelRescaler, which can rescale your part by any factor, or your parts can be rescaled by the InVision Preview software.
- Neither the NextEngine nor the Minolta do overly great jobs with complicated parts.  It pays to experiment, but I will illustrate with my results for scanning a PCB later.
- Sometimes the Minolta doesn't like it when you do a bunch of scans sequentially.  This may be due to some component heating up somewhat.  If you get Laser Autofocus failed errors, you might resist the temptation to do it manually (my scans ended up being poor this way), wait 10 minutes for things to cool down, then try to Autofocus scan again. 
- The NextEngine requires a fair bit of memory when it's processing its scans.  As of Oct 2008, I couldn't do any more than 6 Fine scans without it complaining about insufficient RAM, or more than 8 Standard scans (in a single scan family i.e. continuous operation).  This is not the case if you stitch separate single scans, though things slow somewhat even then.

Printing:

- The Invision takes only somewhat more time for increased print surface area on any given Z layer, meaning no matter how many parts you have on the print surface, the single greatest constraining factor on time is the number of z layers to be printed (height of the tallest object).  So its best to make your parts somewhat flat in at least one dimension if you don't want the print job to take forever.
- Just because you got a good surface for a complicated part does not necessarily mean you got a printable volume.  Make sure all your surfaces have thicknesses, otherwise your model will collapse when the wax melts away.
- The Invision doesn't have a built in method of testing whether your STL files are alright to print i.e. if you've got inverted normals.  The Zcorp does this, so you can just drag your STL file into the Zcorp software icon, it will open it, fix it if it needs to, and you can then export it to stl and rewrite your old file.
- The Invision likes the units of all the parts to be uniform.  If some STL is off, you open it in the Zcorp software, reexport in the correct units, and it should be fine.
- The support material for the Invision is just a loosely structured wax that crumbles away pretty easily.  Try to remove as much of it manually as possible, then go melt off the rest in the oven at 175-200F (5-60min)
- An unverified internet source lists the cost for the InVision print material at $250/kg, and for the filler at $150/kg.  These are likely good ballpark figures.  Be careful how much material you use. 


My Projects


I messed around with both the NextEngine and Minolta scanners, using a variety of objects.  My ostensible project was to scan the Arduino Diecimila, but I didn't have much success.  I am going to pursue stitching multiple orientations of point clouds together to see if I can't get something better.   This is done pretty easily in the NextEngine software with the Align interface, but with the Minolta, it is probably more difficult.  Updates will be appended at the bottom (if successful).

Here are some workflow pictures from the Arduino scans, first for the Minolta, which is what I ended up using, then for the NextEngine, which I figured was going to be hopeless.

Minolta

Arduino
This is the scan I got before I started cleaning things up.  I used the telephoto lens and went in 30 degree increments

Arduino
This has been cleared of noise and extraneous points have been manually deleted.

Arduino
This is what I get once points have been merged and things have been smoothed out a bit, before holes have been patched.  A lot has been lost

Patching holes in the GeoMagic causes it to crash, because there are so many, some open-ended and indeterminate.  I tried filling things in manually but that was lame.  Importing into Solidworks I was able to clear things up in Scanto3D, but it pretty much murdered my part the same as GeoMagic.  I had high hopes for importing into SW as a point cloud and letting it do all the processing steps, but that didn't turn out so great.  Below is the (encouraging) result of importing the point cloud into SW.

Arduino

However, the mesh prep wizard output this:

Arduino

Trying to import each of the Minolta scans as separate point clouds (.iges format) kept more intact after processing, but it still turned out as modern art.

Arduino

And after the Surface Wizard got a hold of it:

wtf

So I basically said the hell with it, I'll have a wacky part which followed the prescribed workflow but ends up indeterminate.  Here is what I got:

Faux_Arduino



NextEngine

The NextEngine is in theory an awesome piece of equipment, considering the cost at only like $2500.  It's scans aren't as great as the Minolta, but you can manually stitch multiple scans together using a slick UI involving placing pins on corresponding locations.  Sometimes this aligns things properly, sometimes it freaks and you have to split alignment, then drag to realign, and it might crash.  This got to be annoying.  However, it has an excellent wiki if you click on Help which explains what all the functions are and examples of how to use them.  It's quite probably I just haven't learned how to use it properly yet.  I started trying the Arduino on a Standard scan, but it got next to nothing.  I proceeded to fine scans of a tennis ball, a mug, and my camera. 

Arduino
Not so great.

TennisBall
It likes the matte surfaces much better, but you're going to have to rescan and then stitch together the top and the bottom with what it got of this scan.  This is difficult to do on objects like tennis balls where you have few common easily distinguishable references (i.e. letters, spots, etc).

Mug
Here's a 360 scan I did of a mug (which was actually not bad considering it was quite shiny).

Mug
The alignment process.  Those frames to the left in green have been aligned.  Those to the right have yet to be aligned.

Mug
Finished product.  Still quite a few holes.  Supposedly the fuse process takes care of this, but I had trouble getting that to work properly.

Camera
Here's where I see the real worth of a scanner if you can get it to work the way you want.  This is a complicated part that would take forever with the calipers and CAD feature sets to model.  It does a pretty decent job of getting the outline.  Stitching together multiple individual scans was proving to be promising until the software started crashing and automatically aligning in very weird ways.  A powder brush helped quite a bit in places to matte the shiny finish.  The NextEgine especially, with its weaker graphics, has trouble with shiny (even though you can account for it in the software).


Printing

Pretty much everyone did their printing on the InVision.  There isn't much to it.  You basically open up the client and preview the printspace.  This preview client is actually quite full-featured and can be used to reorient and scale objects, which may be easier than doing this in Solidworks for stl files.  Below is a screenshot of the preview client with some parts arranged (it also autoarranges for maximum efficiency).  It's important to remember that the single most important constraint for total print time is the number of z layers.  Adding a whole bunch of flat parts doesn't as markedly increase the print time over one flat part as adding one tall part.  So try and manually orient as efficiently as possible (the autoarrange will not rotate an object, merely translate it).  There has been some speculation as to cost.  An online search found someone referencing the visijet print material as ~ $250/kg and the support material as ~$150/kg.  Parts don't float in water, so density >1, I'm going to guess maybe 1.1-1.4 depending on how conservative you want to be.  It's a proprietary plastic so I'm not really sure. 

Invision

Here are some pictures of the InVision print workflow:

InVision
Parts being built up layer by layer in the InVision machine.  The amount of time the tray slides out while the printhead adjusts to the next z position is greater than the amount of time spent printing an individual layer of the material. 

Parts
Parts as they look when they come out of the printer.  The layered surface material is the wax filler, which can be crumbled and melted away (there is also supposedly a chemical bath to remove what's left, but I didn't personally find this necessary). 

Parts
Use a razor to get underneath at the support wax.  All parts get placed on the print surface with a 1/8-1/4" cushion of support material which you can scrape away to free your part.  The support material comes away fairly easily.

Oven
Parts melting in the oven.  RIP Chris' rose in the foreground.  Surfaces with insufficient thicknesses do not come through the melt process intact, collapsing as the support material is removed.