3D Printing using Carrara models
When all you have is a hammer, everything starts to look like a nail.
I have hexagon and, despite myself, I've even learned a thing or two about it, but pretty much I don't know how to use it. Although I'm very novice when it comes to modeling, I can and do use Carrara's modeling room. So, having a 3d printer and a desire to use it I have been creating models in Carrara for printing. Along the way I've learned a couple of things.
First, I have a makerbot printer (replicator 2) and use Makerware for printing. This is important because the traditional file format for 3d printers is STL, but Makerware has support for OBJ. Other setups will have different constraints, so with that in mind:
1. Carrara's OBJ export is poor. This has been covered previously in this forum, but the short version is that some applications can't import what Carrara exports and Makerware is no exception.
2. Hexagon works as a translator. Hexagon can read Carrara's OBJ export files and is available free or cheap here at Daz. There are other recommended applications such as meshlab, but in my experience Hexagon works very simply and easily. Create new project, import the OBJ file from Carrara, then export. Easy-peasy.
3. OBJ vs STL. Because Hexagon can export STL that would seem the natural choice and it is certainly what I've been using. However, Hexagon's STL export is problematic at best. While other applications can load it, it is often bugged. One solution is to export as OBJ -- this is more compatible than Carrara's OBJ export. The issue boils down to picking your poison: you can validate the STL with netfabb, but Hexagon's OBJ is better than its STL export.
4. Detecting mesh problems. Loading a file into Makerware it is not always obvious if there is a problem. Netfabb has a free application to fix problems in STL files. On the downside it frequently can't fix what Hexagon does to STL, but on the plus side it *does* do a good job of flagging a broken file. I get the impression they want you to pay for the pro version, but it isn't clear it can fix Hexagon's broken STL either.
5. Avoiding problems. At first blush it would seem trivial to avoid mesh problems: it just has to be manifold, right? Well... it can be more complicated than that, for example you can't have n-gons either. As a final pass in Carrara use some of the Model menu options:
- Weld points: sometimes in editing duplicate points will occur and to keep the mesh manifold you need them merged.
- Remove duplicate points: I'm still not sure how these sometimes creep in, but nevertheless they have. I track the number of points before and after to see if something changed.
- Triangulate non planar faces: I've had problems with this resulting from extrude-and-modify edit sequences
- Triangulate n-gons (>4 points): I never create these intentionally, but sometimes they slip in.
Sometimes things go smoothly from Carrara through Hexagon into Makerware with a successful print. Other times not so much. One of the issues I've found with Hexagon's STL export was a very simple object that used extrusion. What the issue was is very simple: take a cube and on two (opposing) faces extrude the outermost polygons to form a ridge. There is nothing wrong with the mesh at the end, but the STL exported from Hexagon has the walls of the extrusion, but not the face -- hence the mesh is no longer manifold. Using Hexagon to export OBJ worked just fine. The caveat is I don't have a good way of validating OBJ files, just STL. And when the STL is bugged...
Now, for those who can afford a 3d printer and z-brush the ideal would be to do the modeling in z-brush and use its "export STL for 3d printing" function. Regrettably, I have not been able to test this.
Comments
nefabb will open an OBJ, have you tried that to see if it makes any difference?
It didn't when I tried earlier, but that must've been an OBJ saved by Carrara -- thanks for the tip. That certainly tips things more toward using OBJ, but earlier today I encountered a problem where the STL was fine but the OBJ from hexagon was not. It just seems to depend...