Solidify modifier on a non-manifold mesh

I’m attempting to model a house plan. A lot of blogs suggest the solidify modifier is good for this sort of thing. A few tests went well, but when I tried a full-on test, solidify freaked out on me.

There’s no doubles in the mesh, and recalculate normals doesn’t have any effect. I’ve played with the various settings in the solidify modifier to no avail.

This is the base mesh:


And this is with the solidy modifier applied:


Measurements are set to Imperial, and the walls are set to three inches thick. The scaling is such that the walls are ten feet high, so I’m pretty sure it’s not a scaling problem.

Is solidiy supposed to work on non-manifold meshes, or am I trying to attempt something it’s not designed to handle?

There’s a few bug reports about something similar, but supposedly those were fixed. I’m using 2.67.1 r57442, built myself on debian with various missing libraries (i.e. png16, opencolorio, etc.) also compiled myself.

Any ideas?

Solidify needs correct face direction information (normals) and recalculate normals won’t work on non-manifold mesh where you have edges connected to more than two faces.
Scaling is an issue if your object scale is not 1,1,1. If it’s something else, the mesh dimensions will be something else than what you expect and see. Check the scale from the properties panel (N) in object mode and ctrl+a -> scale if needed.

Scaling is fine. I think you might be right about the normals, because some faces are flared out really bad while others (the top row, for instance) are not.

I’m not sure how that happened, since I laid out all the walls as extruded vertices and then extruded the whole lot up the Z axis a few times to create the “loops” at the different heights. I would have thought the normals would stay the same, since I didn’t change anything from one extrude to the next (e -> right mouse button -> adjust Z value in the properties window -> repeat).

Does anyone use a tecnique similar to this for modelling interior walls? If so, what method do you use to get around this? I can’t think of anything besides separating the walls into different meshes.

As JA12 said your problem is that you have nonman geometry of a particular sort… Edges with only one face attached are ok although considered non, but edges with three are bad in terms of having no resolvable normal. You get these edges when you extrude from anywhere but the very border of a surface - Blender allows it, although it is sure to be a problem later.

The quickest way I have found is to do the floor plan in Inkscape (a vector editing program that has dedicated path making tools) bring it into blender (the import svg addin must be enabled) and then extrude it to the right height. You can do this either as a converted mesh or a curve.

Yeah, Inscape rocks. I’ve never used it for floorplans, but I might try that and see how it compares. I’m really looking for advice on designing with the solidify modifier, though.

I’ve read a few comments about using the solidify modifier for creating walls of uniform thickness that are easy to manipulate during the design process. I’m trying to discover that particular workflow. I’ve created houses based on floor plans before using different methods and I’m trying to branch out and learn a new way to do it.

Unfortulately, the comments I’m basing this on were on a blog, so I doubt the commenters would see my question, which is why I’m asking here. I figure someone around here has to have used this method. Am I doomed to using separate meshes for non-manifold areas, or is there a way around this?

I don’t understand why you would insist on using solidify modifier for this but if you must, the way I can think of is to separate the geometry in those key areas.

The problem again



If you show the normals and manually flip them to face the correct direction (select, W -> flip normals), it still distorts the walls where an edge has more than two faces connected to it.


The way to “fix” this is to select wall faces that are linked to that problematic edge and press Y, which separates selected from unselected. (Could also try selecting just the edge, moving the mouse cursor to the direction where you want to separate it and press V to rip that edge).

If you need separate thicknesses for outer and inner walls for example, you could select the thicker parts, add them to a vertex group (ctrl+G) and set solidify modifier to use that group. Factor value is the amount of that thickness that gets applied to faces that are not in the group.

If you want to make later cleanup easier, you could enable “apply modifier to editing cage” view option from the modifier header and then use vertex snapping to snap the separated inner wall onto the solidified main wall inner surface.

In the screenshot I have set the offset value to 0 which allows to have the editing cage to be in the middle of the wall, and I’ve set the offset value to 0.5, which means the inner wall has half the thickness of what the outer wall has.

OK, that’s what I meant by separate meshes. It’s not a huge deal to do, but I was hoping there was something I wasn’t seeing.

I like your idea on using vertex groups - I think I’ll give that a shot. That’s a feature I haven’t played with much. I appreciate the advice.