Flat surface on a cylinder

Hi guys. I’m trying to model a engine piston with subsurf on, and I ran into some subsurf problems. How would you model the flat part in a piston, has can be seen here?

I tried too, but I always get this ugly artifcats.

It would help to see the mesh verts.
My guess is that you need to crease all the edges of the flat face and the D-shaped flat where it meets the cylinder to get a good shape.

Crease with Shift-E, 1 , Enter.

Profnull is right, it would help to see how you organized your mesh vertices. Anyway, have a look at the .blend file I’m posting. I don’t have time to make it better but I think you get the idea from it. A little more work and it will be perfect.


flat_surface.blend (320 KB)

You need to look at what is Subsurf really want to do. Image A, top view: I made piston geometry using rough cylinder with Subsurf. Bevel was added to round the under cut geometry. Look how Subsurf is trying to round off the cylinder and under cut. The under cut corner get pinched because Subsurf is seeing that selected vertex in red. Subsurf around that area doesn’t know that it is suppose to follow cylinder contour! It is just following the vertex that is given. Also, Subsurf doesn’t know that cylinder got shaved off on one end either. It is just trying to smooth out the faces given.

Image B, top view: I took the same rough cylinder, applied Subsurf, and converted in to mesh. And, than made the under cut geometry. Now Subsurf knows what contour to follow and it stops pinching the geometry. But you will need to deal with gazillion meshes to do it!

Subsurf is nice tool to have for quick smoothing, minimum work. But if you really want to define the shape, you need to really define it with lots of meshes! Or to have the ability to define the boundary conditions; like defining a slope.


is there a way to show creases and how to set up creases in 2.53 ?


To show crease, enable ‘show creases’ in the transform panel’s mesh display subpanel… see screenshot. Crease is accessed via the edge menu (edit mode, ctrl-e).



Hi guys thank you for your quick replies.I think I’ll base my mesh around ptbbastos idea, as I didn’t want to add much geometry, and I didn’t want to use creases either. Thanks guys