I'm fairly new to Blender and I'm trying to create a mesh that smoothly transitions from cylindrical endcaps to a flattened hexagonal midbody.


I'm able to make one pair of faces easily enough by selecting verts and doing a normal z scale operation of 0. You can see one of the faces generated this way on the right side of the mesh. However, this doesn't work on subsequent faces since the scaling operation moves the verts that border the neighboring hexagon faces, distorting them.

I've highlighted the next face I'd like to flatten. How can I do this while keeping the verts on the far right and left side of the face stationary? I've seen people using vertex hiding to hold geometry in place but I can't do that since I need to have all of the verts in the face selected when I do the scale transform.

Alternately, it there a better way to do this than distorting a cylinder mesh primitive?


2 Answers 2


Perhaps you may want to try from the opposite approach: Start with a cylinder with exactly six sides. In edit mode, hit W, then subdivide. Repeat this three (maybe four) times until you have a nicely subdivided hexagonal prism.

Enter Edge Select mode and select the very top loop around the circumference. Hit Shift+S, then Cursor to Selected, then hit Shift+Alt+S to perform a Transform To Sphere. With the keypad, enter 1.0. This top loop will now be a perfect circle.

Select the next edge loop below the top one, and repeat the above steps, except enter 0.8 when performing the Transform To Sphere. This loop will now be a slightly hexagonal circle.

Continue selecting lower and lower edge loops, using values of 0.6, 0.4 then finally 0.2. You will then have something very close to what you want.


You can use the Bridge Edge Loop, an operator available since 2.63 version, to connect two different profiles (obiuvsly works best if they have the same amount of vertices):

enter image description here

A similar function can be found in the LoopTools Add-on, but has fewer options (it's where the Bridge Edge loop operator came from):

enter image description here

A possible result:

enter image description here

  • $\begingroup$ This is a great solution. I went with the other answer mainly because it didn't require an external library but this answer seems to be more powerful. Thanks for bringing LoopTools to my attention. $\endgroup$
    – DanHeidel
    Oct 1, 2015 at 21:31
  • 1
    $\begingroup$ Don't worry! Anyway, the second option (Bridge Edge Loop operator) doesn't require an external add-on. I'll switch the two options. $\endgroup$
    – Carlo
    Oct 1, 2015 at 22:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .