How do I straighten just the inner hole of this mesh?

I'm attempting to make a combination wrench. The hole is supposed to be hexagonal, but I can't figure out how to sharpen the edges without causing pinching on the outer side of the wrench when I use a subdivision modifier. Anyone have any ideas on how to do this?

I also tried beveling the inner lines of the ring that caused an artifact:

• if I understand correctly you want the hexagonal shape to stay hexagonal even after the subd modifier? – Virgil Sisoe Nov 15 at 21:17
• Beveling the edge created ngons, these don't subdivide well. – Jaroslav Jerryno Novotny Nov 15 at 21:21

Edit: actually, a bit simpler method. First, the destructive version:

• Create a 6 vertices circle.
• Subdivide it once.
• Extrude it inwards.
• Make its external edge loop a circle with W > Looptools > Circle.
• Extrude it up on the Z axis.
• Give it a Bevel modifier / Angle mode, with an Angle low enough to smooth the internal vertical edges.
• Smooth with a Subdivision Surface modifier and a Smooth Shading.

The non-destructive version:

• Create a 6 vertices circle.
• Subdivide it once.
• Give it a Solidify modifier.
• Create a 12 vertices circle.
• Extrude inwards and merge it on its center.
• Give it a Solidify modifier.
• Give it a Boolean modifier / Difference mode with the first circle as Object.
• Give it a Bevel modifier / Angle mode, with an Angle low enough to smooth the vertical internal edges.
• Smooth with a Subdivision Surface modifier and a Smooth Shading.
• Apply the modifier if you are happy with the result.

• Your destructive approach will almost certainly have far nice topology than your nondestructive approach (due to the Boolean modifier), right? – wchargin Nov 16 at 6:03
• no, it will actually be the same, because the 12 vertical edges of the boolean object will perfectly match with the 12 edges of the main object, destructive or non-destructive is just a matter of preference in this case – moonboots Nov 16 at 6:26

creasing edges with SHIFT + E could also be a non destructive option if you don't want to modify existing geometry

Create a 6 sided mesh circle and rotate it $$30º$$

Now add a slightly larger circle with three times more sides $$3 \times 6 = 18$$ and also rotate it $$30º$$

Subdivide the inner circle with a number of cuts of 2

Bridge both circles and add the desired modifiers, like a Subsurf and Solidify

Now you can adjust the smoothness of the inner edges by selecting the two middle vertex of each edge, setting the Pivot center to 'Individual Origins', and scaling them up, outwards towards the edges.

Just add some loop cuts near the vertex of the hexagon and all the edges, it works.

if you want outer layer smooth then, you can remove the outer redundant cuts then you will get what you want.

finally, it looks like the image below after some tweaks. For this, you can scale the respective vertices and scale by setting the pivot point as individual origins