Blender, facets, and STL imports

Discussion in 'Design and Modeling' started by mcgski, Jan 25, 2012.

  1. mcgski
    mcgski New Member
    Hi. I've searched far and wide but am unable to find a solution to my problem. I've created an object in FreeCAD, exported it to an STL, imported that into Blender to scale the object correctly, and then exported again to STL to be uploaded to Shapeways. I've come to realize that what I do in FreeCAD is only setting the model up to be the exact size and proportions I need.

    The object, based on a cylinder, has facets showing on the inner and outer part of the cylinder. I've tried many of the smoothing techniques but none seem to reduce the number of facets, but rather deform the object. It doesn't have to be perfect, but needs to have more roundness to it. I know it can be done as all of these beautiful curved pieced I see in the market must have been done.

    I've attached an STL of a simple ring created in FreeCAD that I've tried to update in Blender. Any help on a technique to do this would be much appreciated. Note, I've scaled this in blender to be 22.8mm x 22.8mm x 4mm. It's pretty small.

    Thanks in advance.

    Attached Files:

  2. Fredd
    Fredd New Member
    Smoothing never effects the topology of the mesh. Its a cheap effect for renders. 3D printers idea of smoothness relies on the angle size between adjacent faces.
    In Blender subdividing the mesh helps in the final result. Smaller quads the printer likes. You could experiment with the subdivision mod in Blender
  3. mcgski
    mcgski New Member
    Thanks for your reply.

    I've tried subdividing but those facets are just divided. The angles between facets on the inner circle aren't changed which led me to believe it would be printed that way.

    So are you saying all I need to do is subdivide the model in Blender a few more times to make the final product more smooth in real life?
  4. Dragoman
    Dragoman New Member
    Simply subdividing the faces is not enough. If you subdivide a face, the two new pieces lie flat in the place where the old one was and will print the same.

    You will have to pull the new edges out a bit so that they are in the proper radius of the cylinder. This is best done by selecting them all at once (only the new edges!) and using the scale manipulators to get the right diameter.
    This can be tedious and may not be very precise.

    I find it often easier to create a new cylinder from scratch with the right number of edges.

    The rendering of the model on the Shapeways site always show sharp edges. They will print smoothly if the edges closer together than the resolution of the printer. If you make your edges less than 0.1 millimeter apart, you should get a smooth surface.

    Karl Heinz
    JACANT Well-Known Member
    If you open 'Meshes' - 'Regular Solid' you can choose the shape required. type in sizes and choose the sampling. A higher number will give you a finer mesh.
  6. mcgski
    mcgski New Member
    @JACANT, thanks for the info.

    I wasn't able to find this in the Add/Meshes menu. I was able to find a add-on for regular solids but not with the options you show. I'm using Blender 2.61 as well.

    I also am trying to modify an existing mesh that I've imported from FreeCAD as an STL. Ideally, taking what Dragoman suggested and subdividing, then pulling the new edges out is the only way I can see this working.
  7. aeron203
    aeron203 New Member
    Lots of good solutions here, but since you are using a solid modeler you can do even better. The mesh subdivision sampling parameter Jacant refers to only applies to mesh entities.

    FreeCAD has a fillet operation (for solids). For everyone elses benefit I'll describe the modeling of the ring: Start with a circle sketch at your internal radius. Use grid snap and define the relation to lock it in exactly. Draw another circle and define the radius as 2mm thicker. In my example I used 10 then 12 for just over US size 10.

    Use the Pad command to extrude the sketch to 4 or 5 mm thick, then select all four edges and use the Fillet command to round the edges with a value of around .75mm. In FreeCAD your ring will look like this:


    The output mesh will be very nice, but if you want finer facets, try running Meshlab's Midpoint Subdivision Filter with 1 iteration and a threshold of 0, then apply the HC Laplacian Smooth filter twice. Repeat those steps and you will have a mesh that screams Quality at the top of it's lungs.


    EDIT: I've attached the example ring for you.


    Attached Files:

    Last edited: Jan 28, 2012
  8. mcgski
    mcgski New Member

    This looks like exactly what I want, but....

    I'm unable to reproduce your steps. I created the ring just as you described in FreeCAD (see snapshot below). Notice I have more facets than your picture. That being said, I understand there's a difference between what's rendered and the STL file. I exported the file as an STL.


    This is the first I've used Meshlab so I'm a bit of a noob here. I brought the STL exported from FreeCAD into Meshlab (v1.30a) onto my Mac, selected the ring faces, ran the subdivide and smooth filter per your instructions and got the attached image. Not quite the same. Seems like there was no change.


    Again, I'm feeling like I'm missing something and it may be what I'm doing in FreeCAD or the export process.

    EDIT: I think I just figured out what I did wrong. Before doing a selection in Meshlab, I needed to select "Flat line" in the icon menu to show all outer edges on my ring. I then did an "Filter/Selection/Select All" before following your steps. I was able to see the subdivide and the smooth operations.

    Here's the final in Blender:


    Thanks again for your help!!

    Last edited: Jan 28, 2012