Mysterious Model Rejections

Discussion in 'Software and Applications' started by dbgarlisch, Jan 14, 2012.

  1. dbgarlisch
    dbgarlisch New Member
    I have added a 3D print exporter to our CFD pre processor application called Pointwise.

    This exporter converts a CFD mesh model into a "thickened" wireframe representation of the grid.

    To accomplish this, each cell's edge is converted to a small (0.9mm diam) cylinder. There are options for hiding certain area of the grid and to add walls to boundary regions. These walls are composed of tri and quad "bricks".

    The ASCII stl file produced by this approach can contain 10,000+ individual solid bodies (begin/end solid sections) that, by design, intersect to form a printable solid. Of course the binary file is all one body.

    However, I have had intermittent luck getting model accepted for printing.

    Even if a model passes the initial upload tests, it is often "rejected" at printing due to "thin" walls and other obscure errors.

    I have been in frequent contact with Shapeways support to figure this out. But alas, we have gotten nowhere. They suggested I try the forum for help.

    As best I can tell, the models are correct. Normals are correct. etc. I have loaded the models into netfabb and they pass the inspections.

    I am not very experienced in 3D printing. Any help would be greatly appreciated.

    I have attached a model that is being rejected.


    Attached Files:

  2. stonysmith
    stonysmith Well-Known Member Moderator
    I've had the same rejections. The issue in part can be expressed as a problem with Netfabb.

    Attached is an STL and a couple of images. You can see here that the red and green shapes overlap, and that both of them are solid on the inside. Inside the STL, they are two separate shells.. not one single object.

    The problem is that Netfabb measures thickness by starting at the outer face and moving inward till it finds the first face that it can. In this case, it reports the thickness of the protrusion as 1.0mm instead of the proper 5.00mm

    From what I can discern, Shapeway's MeshMedic does not actually weld the shells together, but rather it allows the separate shells to continue to exist.

    The production team then uses Netfabb for measurements, and they get invalid measurements for some areas. To their defense, there are a LOT of models that DO have invalid geometry, and since Netfabb does not have a transparent view like I've presented below, the production team can't tell if the model is actually correct, or if it has a problem.

    If your program has the option for welding the shells together, then you should attempt to do that. My frustration is that the main program I use tends to foul up when there are a large number of items protruding from a plane.. it likes to make the plane one shell, and the items all get separated into their own shells. Think of rivets on a sheet of steel. When I get to 20 or more, I end up with the plane as one shell, and all the rivets as their own shells that then won't pass the minimum walls check. The program will do this to me pretty much at any time without warning.. I spend a LOT of time correcting this error.

    It would be nice if we could work out a resolution such that a model like yours can both contain the mulitple shells and NOT get flagged incorrectly by meshlab.

    FYI.. both MeshLab and Netfabb have options to "Select Self-Intersecting Faces", but neither of them seem capable of doing anything with the faces once they're selected. I've tried many times with both programs to repair this situation and have been unsuccessful so far.

    There has been talk of an "Automated Thin Walls Check".. I'm very troubled by the prospect of an automated check that doesn't first remove interior faces. And, someone else requested an automated hollowing of models... that algorithm would have to deal with the same "overlapping shells" problem.

    If anybody has a solution for automated fixes of such overlapping shells.. I'm all ears.

    Attached Files:

    Last edited: Jan 15, 2012
  3. stonysmith
    stonysmith Well-Known Member Moderator
    First image:
    Last edited: Jan 15, 2012
  4. stonysmith
    stonysmith Well-Known Member Moderator
    Second image:Here you can see that the measurement is wrong.

  5. dbgarlisch
    dbgarlisch New Member
    Thanks for the insight. Unfortunately, due to the general complexity of the wireframe to thickened solid conversions I am doing, i do not have a good way to "boolean" all the separate bodies together.

    I have been considering a more "global" approach to the thickening that will reduce the number of individual solids in the model, but it will not eliminate all intersections.

    And, based on your example, if I reduce the number of solids, I may actually increase the number of "false" wall thickness errors!

    I will take this up with Shapeways production. Maybe I can convince them to print my model anyways and see what happens. I will pay no matter what the results. I just need to prove to myself (and them) that it prints correctly despite the "errors".

    My boss really wants to print the wing model!
  6. dbgarlisch
    dbgarlisch New Member
    You wrote:
    "The problem is that Netfabb measures thickness by starting at the outer face and moving inward till it finds the first face that it can. In this case, it reports the thickness of the protrusion as 1.0mm instead of the proper 5.00mm

    From what I can discern, Shapeway's MeshMedic does not actually weld the shells together, but rather it allows the separate shells to continue to exist."


    If this is the case, the thickness tool in netfabb should ignore any interior faces the vector crosses until it exits the current body OR exits the same interior body. I have attached a simple diagram demonstrating this approach.

    Does this make any sense? Any netfabb programmers out there reading this? ;)


    Attached Files:

  7. bartv
    bartv New Member
    Hi guys,

    sorry for these problems, we're investigating the issue.


  8. dbgarlisch
    dbgarlisch New Member

    Any progress on this issue?
  9. bartv
    bartv New Member
    I'm afraid not. It seems like your model has thousands of 'shells' and our software just runs out of memory when processing it..

  10. dbgarlisch
    dbgarlisch New Member

    Which app is crashing?

    Is it proprietary or can I download it?

    Is the app 32 or 64 bit?

    What is strange to me is that the model is not "large" in terms of facets. However, it *does* use thousands of bodies. Either way, it should not crash. It should at least fail gracefully.

    I am an experienced CAD/CAE software developer. If there is anything I can do to help, it would be a fun challenge. No charge. ;)

    If this is your internal software, is there any chance I can get my hands of the source code for debugging? I would be willing to sign an NDA if needed.

    Can you tell I am desperate to get this working? ;)
  11. dbgarlisch
    dbgarlisch New Member
    Any feedback on this Q?


    FYI... I blogged at our company website about 3D printing from our application.

  12. JACANT
    JACANT Well-Known Member
    Quote "This exporter converts a CFD mesh model into a "thickened" wireframe representation of the grid"

    Is it possible to export your model as just a wireframe with no thickness as a DXF file? If you can there may be a way to create your model by a few different programs. The commands in various programs are 'follow me' in Sketchup, 'pipe' in Rhino, and 'sweep' in Autocad. Which would follow each line and create a profile from say a circle around it, from there you could boolean the 'pipes/tubes' together.
  13. dbgarlisch
    dbgarlisch New Member
    The short answer is yes!

    Unfortunately, that defeats the whole purpose of creating the printable STL file directly from our application.

    Requiring our users to post-process the file before printing would not be acceptable.

    I again will offer my help in trying to fix this problem.

    Is the "out-of-memory" problem in your custom, in-house tools?

    Or is the "out-of-memory" problem in the software tools provided by the printing hardware vendors?

    I write engineering/CAD software as my day to day job. See my company bio.

    Please let me know if there is anything I can do to help identify and fix the memory (other) issue.

    I will sign any NDA you see fit.


    PS - I tried the Follow Me tool in sketchup. It did not let me select a curve. It wanted me to select a face.

  14. JACANT
    JACANT Well-Known Member
  15. robert
    robert New Member
    Hi David,

    I have taken a look at your model. The problem is that it consists of a collection of 7000+ individually meshes - we call them shells in 3D printing. But it represents an actual single 3D model. 3D printers get confused by this. The forget what is inside and outside when we print a file like that. Moreover it leads to inaccurate calculation of the volume. The volume is the sum of all the volumes of the individual shells. It would make the model more expensive than it actually is, because we need less material to print it.

    Our Mesh Medic software - which is proprietary - will merge these shells automatically. The only issue is that merging a large number of shells without any modification of the representation of the 3D model is very memory intensive. Our software has hard limits to several GBs.

    Any 3D printing service provider uses software like Netfabb or Magics which provide the same functionality. They have to because printers crash trying to print a model like this.

    I wonder why it is not possible to generate a valid - from 3D printing perspective - 3D model consisting of a single shell / mesh?

    Since you say that you are a 3D developer by trade, if you can build software which is capable of merging a 3D model consisting of 7000+ shells and boolean to together to make a single unified mesh / shell, I am more than willing to integrate into our processing chain.

    Let me know if you have any additional questions. You can reach me directly at robert [at] shapeways [dot] com.