# Weird behavior when using bevel and subsurf

I'm trying to make a simple LEGO brick with smooth corners. I modeled the basic shaped and made it a little bit smoother by using the bevel modifier and to make the stud rounder I applied a subsurf modifier, everything went well except for the bottom part

The faces are getting all messed up at this point, I realized it was because of the subsurf modifier and topology of the model, I tried several methods to fix it.

# Adding loop cuts to the problematic areas

This solves the issue but adds a lot more of useless geometry, specially when you consider the subsurface modifier.

Somehow it makes the problem even worse

I'm not a complete beginner to modelling but this got me stumped. I'm trying my best to make a non-destructive workflow so I can layout the basic shape and leave detailing to modifiers.

EDIT: The bottom hole has to be squared

Here's the model without any modifiers:

If the problem is bad topology what would a good topology be for this workflow?

Thanks in advance if anyone can help me!

I would do this slightly differently. Rather than manually beveling the edges, I would use a bevel modifier. Here's a step by step with a 1x1 brick, not to scale.

• go into edit mode
• select all faces
• subdivide
• select all four top faces
• inset
• deselect the center vertex
• use loop tools to make the eight vertices into a circle
• extrude the four inner faces outward to give the top peg
• select all four bottom faces
• inset the same amount
• deselect the center vertex
• extrude the four inner faces inward to give the bottom hole
• set it to two segments
• set the method to angle
• set the angle to 60 degrees.
• add the subsurf modifier below the bevel modifier in the stack.
• add two loop cuts to the top peg

At the end, the block will look like this

and the modifier stack will look like this

EDIT:

The above approach works if you want two circular connectors; but the question asked for a square bottom. To do that, I would

• Use two bevel modifiers, in each case, using a vertex group to identify what was modeled.
• inset the bottom and extrude it inward
• but not make it into a circle.

This method requires a couple of control loops to force the bottom to behave well. Here's what the square bottom looks like without the modifiers:

Here's the vertex group for the outside bevel modifier:

Here's the vertex group for the inside bevel modifier

Here's the modifier stack

• That was a great way to model it, very good! I didn't add bevel on edit mode, I added a bevel modifier, I should've shown the model without any modifiers. Anyway, I followed what you said step by step and got the same result, but the main problem still persists, if the bottom hole was round it'd be perfect but it has to be square. By trying your method this was the result: imgur.com/a/P64G3gB. Jun 24, 2021 at 1:35
• oops. I thought you were trying to model the beg on the bottom. my mistake. I'll edit my answer to add the square bottom Jun 24, 2021 at 2:29
• Thank you Marty! I was about to post my answer when I saw your update, I also used a bevel modifier limited by the vertex group, it looks like the perfect solution for this issue. Thank you again for all the help, I'll be accepting your answer, great info and techniques :D Jun 24, 2021 at 13:34
• Sorry I didn't think through what a lego block looks like the first time. Thanks for having the patience to spell out what you actually needed. Jun 24, 2021 at 19:07

# Note:

This answer was being made before Marty edited his answer, I'll accept his answer because it contains very good information and solves the issue. But I will also keep mine here for sake of completion and extra info in case it might help someone. Again, great help from Marty, thanks!

I managed to "solve" this issue by using a bevel on the problematic areas. To keep the workflow as simple as possible, here's what I did.

• Made the topology a little bit better by using a technique similar to what Marty Fouts suggested (image 1)
• Selected all the EDGES connected to the VERTEX where the problem happened like in image 1
• Added the EDGES to a VERTEX GROUP
• Applied a second bevel modifier with 2 segments, limited by the VERTEX GROUP with 2 segments. This is between the first bevel and the subsurf, the modifier stack can be seen on image 2
• Result is much more pleasant to look at, keeps hard edges, no visual inconsistencies and you can control how sharp those edges are (images 3 and 4)

• Nice job figuring this out on your own. Jun 24, 2021 at 19:07