Hollow object problem

Discussion in 'Design and Modeling' started by tfschneid, Mar 14, 2013.

  1. tfschneid
    tfschneid New Member
    Hoping someone with more experience might be able to help me out on this one...

    I'm ready to print a (roughly) dome-shaped sculpture I generated via Autodesk's 123D Catch app. The model's already been hollowed out to minimize the material volume, but when I send it to Shapeways in preparation for printing, the underside of the object gets completely filled in during the file conversion process. The filled-in version is way too expensive for me to actually order. I checked the original model in Mesh Mixer to make sure it wasn't a glitch in 123D Catch, but it's just as hollow there as in the original app. So I'm clueless as to what the problem is.

    If anyone has any insight as to what's going on and how I might be able to fix it, I'd really appreciate it. Thanks!
  2. stonysmith
    stonysmith Well-Known Member Moderator
    This often happens when the inside and outside are separate shells, and it only LOOKS like they are connected.
    If you could post the STL, there are several people here that would be happy to take a look at it.
    If you'd rather keep it private, just PM it to me.
  3. tfschneid
    tfschneid New Member
    Thanks stonysmith. Really appreciate the assistance. File attached.

    Attached Files:

  4. stonysmith
    stonysmith Well-Known Member Moderator
    Okay.. I see the problem.. there are two definitions of "Hollow".

    Imagine a solid cube - it is made of six faces. If you remove one of those faces, the item is then "hollow", but the remaining walls have only a single (exterior) surface, and they have no "depth" or "structure" to them. What you are left with is a one-sided "skin" of a cube.. the walls have zero thickness because they are one-sided.

    Now imagine a coffee cup. It is also hollow, but the walls have thickness, it has both internal and an external surfaces.

    Your model is in the first category. It is a skin without any thickness to it, it has only exterior surfaces, and a big hole in the bottom. To print an item on a 3d printer, you must have some thickness to the walls. The amount of thickness for the walls depends upon which material you are trying to print in.

    So, the question becomes: which material do you want to print this in, and how large do you want to make it?
    There are a couple of methods for fixing the model. Attached is the result from one method. I closed the bottom hole, created a copy, shrunk the copy by a bit, and then subtracted the copy from the original. That leaves a model that is hollow (per the second definition), with walls that have some thickness to them. The trouble is that this will likely be rejected because it has some areas that are too thin.

    A more precise method of hollowing the item can be used, but I'd have to start with the item at near the size you want the final to be.
    If I may suggest, play with the settings on my Volume Estimator
    and pick a size and material that produces a cost you're happy with.

    More to follow in the next posting..

    Attached Files:

    Last edited: Mar 16, 2013
  5. stonysmith
    stonysmith Well-Known Member Moderator
    This model can be re-skinned very nicely if you download a copy of the free program MeshLab from http://meshlab.sourceforge.net/ and Netfabb Basic from www.netfabb.com. It may take you several attempts to get the settings correct, but I believe it will well be worth the effort.

    First, load the model into Netfabb and use Part/Scale to set the overall size that you desire, then use Export to save the STL back out.

    Then, load the model into Meshlab and select Filters / Remeshing / UniformMeshResampling.
    On the little window that pops up, pick an Abs Precision of 0.5 and an Abs Offset of 0.5 - these are the two settings you will want to tweak until you get your model to look right.

    Select the options "Clean Vertices", "MultiSample", and "Absolute Distance" - make sure you UNSELECT the option "Discretize"
    Then select "Apply".. Meshlab will go about re-sampling your mesh, and it will produce walls that have thickness.. ready for 3d printing.
    (don't forget to Export the final mesh)

    Fundamentally, the Abs Offset setting is one half of how thick your final walls will be, assuming that you started with a model of the proper size to start with.


    Attached Files:

    Last edited: Mar 16, 2013
  6. stop4stuff
    stop4stuff Well-Known Member
    To add to stony's post;

    If you have your model with mm as the units in NetFabb, when you load your model into MeshLab, the Abs Pecision and Offset values under Uniform Mesh Resampling can be treated as mm (same for inches or meters etc), e;g; your model is 80mm diameter, you want 3mm wall thickness, set the Abs Offset value to 3.00, the Precision value can be anything, the smaller the number the finer the resampled mesh will be. I find using an Abs Offset value less than the Precision value work rather well. More about the same topic here; http://www.shapeways.com/forum/index.php?t=msg&th=13175& amp;start=0&

    Also, you'll need to connect the inner & outer shells together somehow so that the model is treated as hollow and not as a filled in outer shell ;)

  7. stonysmith
    stonysmith Well-Known Member Moderator
    Paul: this particular mesh is not watertight, therefore Meshlab's Resample option does not create an inner and outer shell that have to be dealt with.. it creates a single shell that has 'thickness' to it, and the "drain hole" in this particular case is the entire bottom surface of the model.

    What I have found is that if you pick 3 units for Abs Offset and Absolute Distance, you actually get walls that are 6 units thick, because it creates a surface 3 units OUT from center of the original, and 3 units IN toward the center of the original. If you want a 3mm thick wall, you need to specify 1.5

    @tfschneid: The one thing not mentioned above is that larger values of Precision cause a degredation of your original surface, because the triangles generated are larger, and it has the effect of smoothing your mesh's surface. And, going the other way, smaller values of Precision keep a nice bumpy surface, closer to the original, but cause the number of triangles to increase quickly. That's why it's balancing act, and you have to play around with the settings a bit to get the particular results you wish.

    Paul: Thanks for the link to the other forum post. I wanted to link to and give you credit for that inspiration for my post, but my (old age) memory couldn't find a set of search terms that would bring that thread back up so I could link to it.
  8. stop4stuff
    stop4stuff Well-Known Member
    Doh, I forgot the bit about the non-watertight meshm sorry to add confusion.

  9. tfschneid
    tfschneid New Member
    Stony / Paul, thanks to both of you for the detailed and intelligent replies. I hope to be able to dive into all this soon and will keep you posted if I run into any further difficulties. Sounds like it's going to take some experimentation, but I'm grateful to both of you for helping me to understand the source of the problem and how to address it.

  10. tfschneid
    tfschneid New Member
    Hey guys, I finished the remeshing and am (finally) on the 1 yard line with this model. One last question on a slightly different aspect: Is there a simple way to plane-cut the mesh in either MeshLab or Netfabb Basic so that its base will be square to whatever surface it's standing on? I'm a little wary of how it's going to come to a rest in its current form. Updated file attached just in case it helps to see it. Thanks!

    Attached Files:

  11. stonysmith
    stonysmith Well-Known Member Moderator
    Cut by plane is very easy in Netfabb Basic.
    On the first page that opens are some sliders.. play with those, and then click on "Execute Cut"
  12. tfschneid
    tfschneid New Member
    Thanks Stony. Only problem: When I execute the plane cut it closes the bottom hole again. Is this a decent summary of how to hollow it out using the copy / shrink / delete method you mentioned earlier in the thread? I don't want to make you write out yet another step by step instruction manual for me.

    https://sites.google.com/site/3dprintfaq/workflows/hollowing -a-model

    Thanks yet again.
  13. stonysmith
    stonysmith Well-Known Member Moderator
    Here's a trick. First, use the "Close Holes" option to make sure that the geometry is clean.
    Then, don't cut it ALL the way across the model.. cut it at a point such that you leave one small gap or uneven area.
    That way Netfabb will know how to handle the geometry.

    See the small gap here? With just that little peice, it'll work fine.

    If you want a 100% completely flat bottom, you'll have to use some other editor and do a boolean. I can demonstrate that if you need me to.
  14. JACANT
    JACANT Well-Known Member
    Once you have Cut by Plane. New faces will be created.
    Click on repair, Red Cross. Do not do an 'Automatic Repair'
    You will need to delete the face or triangles just created and be left with open walls. (Red inside)
    Hover over the icons at the top till you find 'Select Triangles' or Faces. Pick triangles or faces you do not want. 'Remove selected triangles'
    Once it is open.(Red inside) Pick 'Add Triangles'
    Pick one of the edges that are yellow. It will turn blue. Pick another face over the red internal part.
    A new face will be created.
    Right click on the edge of the new face and pick 'Close Hole'.
    The internal red is covered by a new face.
    Once done. Click on Apply Repair.
    Go to Part - Export part.
    Export as STL.
    Last edited: Apr 11, 2013
  15. tfschneid
    tfschneid New Member
    Thanks Stony and JACANT. Both methods worked like a charm. Appreciate the assistance.