The part arrived in two parts - how to prevent this?

Discussion in 'My Shapeways Order Arrived' started by 331587_deleted, Apr 11, 2013.

  1. Can I share something other than excitement? Some confusion perhaps? :confused

    First part at Shapeways, so I guess I am lacking some experience with their parser that prepares 3D models for printing.

    Here is the model: https://shpws.me/nDZH (and I'll attach some pictures below)
    How come it ended up printed as two parts? (see photo, sorry for the jet black color that probably conceals small details)
    shapeways_printed.jpg
    the disk and the cylinder are clearly attached together in my 3D model (STL). And by attached I mean there's no gap between the two. On the initial model there was a "rough" region left by my subtractions of shapes from one another and the final printed model looks like someone had manually "cleaned it up" in order for it too look kinda better. In other words the "rough" region is gone but with it gone is the link between the base disk and the cone.
    making_the_part.png

    So, is there such a thing at Shapeways as a human that looks at models and "corrects" them? I mean, if this was an art piece, they would have done a great job (seriosuly, if looks was the goal, it would be super!) but I actually needed that "rough" region both for the obvious reason of attaching the two parts of the model and for not-so-obvious reason of helping to align small mirrors that were supposed to be glued to the sides of the cone.

    Can anyone suggest a solution to prevent this in the future?

    Thanks abunch!
    Polytech

     
  2. stonysmith
    stonysmith Well-Known Member Moderator
    Can you share the file that you uploaded? If you'd rather keep it private, send it to me in a PM
    It sounds like the "rough" area might have had inverted faces and would have been treated as a 'negative' space, therefore leaving two independent pieces.

    Did you check the model in NetFabb Basic? It would have warned you about such issues.

    As to a human check, I'm not sure what you are asking for. Yes, there is a human check, but the production team does nothing to "correct" models nor in this case would they necessarily have known that your model wasn't what you desired. I don't believe that they look at renders, etc that you might have in your shop, but they mainly look at your model in 3d (like what you'd see in NetFabb)
     
  3. Thanks, stonysmith. This is a public project, so no issue with sharing the model. I think it's linked from the model's Shapeways page ( https://shpws.me/nDZH ) but I'm not yet an experienced enough Shapeways user to tell what's visible to me and what's to the public, so I attach it here as well.

    As far as inverted faces, I can't tell - all of the shapes were solids before they were used for subtracting from one another, so in theory there should have been none of the inverted resulting faces.

    No, didn't check it in NetFabb Basic - didn't know it existed :blush: It was designed in FreeCAD and exported right from there. In fact, it would be very nice to have a different software to verify the output. I'm nore familiar with traditional CNC and I do check the paths in different software whenever possible just to see any errors the first software didn't catch. Don't yet have a way to independently verify STL files. If the "NetFabb Basic" does not show up on a Google search, I'll be back here asking what's that :)

    As far as humans looking at it (possibly, right? they can't look at EVERY part, can they?) - I am wondering if the fact that they are looking at two separate pieces would have alerted them to any issue. Do people submit multipart assemblies to printing as one model?

    Thanks for your suggestions, I'll go look for that viewer software.

    Polytech
     

    Attached Files:

  4. stannum
    stannum Well-Known Member
    There is software that tries to fix the most common issues. Sometimes the fix follows the design idea, sometimes it breaks it. In this case it seems it removed the rough part instead of projecting it down to touch the big base, closed the holes horizontally and the result was two separate items even if the inner zone is connected (fixer cut that).

    Maybe the FreeCAD code has some precision issues and it forgot about faces. The picture you show is not very clear, but using another software you can see the mesh lacks the edge of the rough area, there is no connection to the bottom plate, but a small gap. View the part from the side, "kerb" vertical faces are missing.

    The term for the problematic vertices is non manifold. If you use a tool that selects those, it will be pretty clear where faces are missing. Printable parts should never have those, as the fixer will do crude stitching with them.

    Other software you should look is Meshlab, Blender and OpenSCAD.
     
  5. stonysmith
    stonysmith Well-Known Member Moderator
    If you had looked at it with Netfabb Basic, you would have seen this:
    Image1.jpg
    So in the end, it was two parts. I'm not sure why the production team didn't reject this.

    But, unfortunately, I don't think that Netfabb is going to be able to fix the problems.
    You're likely going to have to try to re-do your boolean operations.

    You can download Netfabb Basic from www.netfabb.com

    Attached is a fixed copy of the model.
     

    Attached Files:

    Last edited: Apr 11, 2013
  6. Wow, stonysmith, thank you so much! Now if I could only understand what exactly you did to smooth the sides of those cuts in what I call the "rough" region...
    I installed Netfabb Basic, looked at my original model and yup, the hideous gaps are all there! I think you may be right and FreeCAD got confused by the multiple boolean operation overlaid on one another (the best I can understand what had happened and perhaps it's something more profound than that).

    I tried to do Repair -> Automatic Repair but my end result looked nothing like yours - it was still filled with dark red triangles of all manner of sizes and shapes in that questionable region. If it's not a textbook worth of knowledge :rolleyes: could you please describe the repair process that was so successful? I just know for sure that I will soon have to redo the part once again to make the sides slant at different angles, and I'll have to go through this one more time (tho this time armed with little bit more knowledge and Netfabb Basic)

    Thank you once again for your help!
    Polytech
     
  7. stonysmith
    stonysmith Well-Known Member Moderator
    I'd suggest you return to FreeCAD and see if you can make it's Booleans work.

    But, since you asked "what did you do":
    ===begin technical explanation===
    I imported the STL into TrueSpace and went into PointEdit Mode.
    There, it has a tool to add vertexes between any two points.
    After adding half a dozen vertexes between the "top" and "bottom" pieces, then the Add Face tool was able to comprehend the geometry desired, and it filled in the missing gap all the way around.
    I then used Triangulate to force in the rest of the missing vertexes, and checked to see that it had the correct geometry.
    ===end technical explanation===

    The reason I chose the repair method above is because I've spent a LOT of time with TrueSpace, and I can generally force it to do what I want it to.

    But, if had started this model from scratch, I would have done it in OpenSCAD. The code below would generate a shape very similar to yours in just a few seconds. You'd have to tweak the dimensions, but at least this gets the basic shape correct.

    ###Openscad###
    color([0,1,1])difference(){
    cylinder(r=25,h=20,center=true,$fn=32);
    cylinder(r=10,h=25,center=true,$fn=32);
    n=6;
    for (i=[0:n-1]){
    rotate([0,0,i*(360/n)])translate([25,0,4])rotate([0,-15,0])c ube([20,40,18],center=true);
    }
    }
    color([1,0,1])difference(){
    translate([0,0,-10])cylinder(r=35,h=4,center=true,$fn=32);
    cylinder(r=2,h=25,center=true,$fn=32);
    translate([32,0,-10])cube([8,8,8],center=true);
    }
     
    Last edited: Apr 12, 2013
  8. There seem to be some thin wall sections we should have caught and, for missing those we are sorry. Being in two parts happens rather often and most of the time, our designers, want the two parts separate. The best way to avoid these problems is to use Netfabb and look at your model before ordering. Netfabb is 100% "What you see is what you get" (WYSIWYG <--my favorite accronym btw :) )and wont approximate your model and possibly display things that are incorrect.
     
  9. stonysmith
    stonysmith Well-Known Member Moderator
    @Mhagan: Sorry, I wasn't specific enough. I wasn't speaking to the fact that the model was in two sections: As you well know, I've got a LOT of models that have multiple parts.

    I was a little surprised that the thin walls passed, but more by the fact that the model wasn't watertight. I thought that the automated checks would have caught the fact that it wasn't watertight.
     
  10. we run some back end checks that will close trivial holes. I am not sure on how exactly this is done as it is not my area of expertise. The non-manifold problem was probably taken care of there. Unfortunately I cannot see previous model versions to check.
     
  11. Thank you so much for the tip, stonysmith! I now OpenSCAD is awesome! It is a really tough cookie and the learning curve is steep as a Himalayan cliff :D but it does exactly what I need. Since this is not really an artistic part, I needed its shape to be very precise and I had to do the caclulations manually and then enter them into FreeCAD - and incredibly tedious and error prone process. Here I was able (with much of you help!) to enter the formula that I needed for the precise angles at which I want my mirrors to be set, and the CAD software positioned the faces properly for me.

    It took me awhile to digest your example, then modify it to my needs but I think I now have the exact part. I did away with the silly looking "rough" region, too. Hopefully will make the part look more professional and it turned out I didn't need the ridges as guides.

    Here is what came out:

    Code:
    // ###Openscad###
    // Original sample by stonysmith, modified by Polytech 
    // 04/12/2013
    
    n = 8;
    ang = -10;
    color([0,1,1])difference(){
    cylinder(r=23,h=15,center=true,$fn=32);
    cylinder(r=14,h=25,center=true,$fn=32);
    
    for (i=[0:n-1]){
    assign(ang = -10 - i/4){
    rotate([0,0,i*(360/n)])translate([30,0,3])rotate([0,ang,0])cube([25,50,22],center = true);
    } // end of assign
    }
    }
    color([1,0,1])difference(){
    translate([0,0,-8])cylinder(r=30,h=2,center=true,$fn=32);
    cylinder(r=2.4,h=25,center=true,$fn=32);
    translate([32,0,-10])cube([16,4,10],center=true);
    }
    
    And the finalized part is attached below.

    mirror_holder_open_SCAD.png

    I have yet to try OpenSCAD - exported STL in Shapeways parser but it looks fine in Netfabb, so I have high hopes!

    Thank you once again for your help!
    Polytech



     
    Last edited: Apr 12, 2013
  12. lensman
    lensman Well-Known Member
    OpenSCAD looks like my early days when I modeled and rendered in POVRay and it all had to be textually entered (no WYSIWYG, Mhagen!) - why anyone would still choose to model like that I have no idea, but, hey, each to their own...

    Glenn