# Creating hexagonal grid which is a manifold

This is followup question based on this post.

I need to use Boolean operation on a hexagonal mesh. As Boolean does not work well with non-manifolds can you suggest a way to create hexagonal mesh which is a manifold?

My goal is to achieve intersection of "Torus.653" and "Graphene" in my scene. I am attaching my blender file below. I will be grateful if you could help me out. Blender file

You could create the hexagonal grid using the

(Access the system preferences with Ctrl Alt U):

Then press ShiftA Add->Mesh->Extras->Honeycomb

And set the controls in the toolshelf to the size, nuber of columns and rows that you need for your project.

Use a solidify modifier to give it height and then use a bevel modifier to round the edges a bit.

The mesh will work fine with a boolean modifier:

You can create a manifold hex grid using 3 array modifiers and skin modifier:

1. Add a mesh circle (Add --> Mesh --> Circle).
2. Change the number of vertices to 6.
3. Don't scale the circle just yet.

Add the first array modifier:

1. Set the count (I used 17 units)
2. Use a relative offset in X, and set it to 1.0
3. Check the Merge option.

Add another array modifier:

1. In relative offset - in X:
2. Set the value to 0.5 / previous_array_modifiers_count (example, if we had 17 repeats in the previous array, the value is 0.5 / 17 = 0.029)
3. In Y: 0.75
4. Check the Merge option.

Add the third and last array modifier:

1. In relative offset - in X: 0
2. In Y: 0.857
3. Check the Merge option.

If you want, you can apply the array modifiers in order, then go to edit mode (Tab) and remove doubles (W --> Remove Doubles).

Add a skin modifier, then a subsurf modifier to add thickness and smooth out the geometry.

In Edit Mode, select all vertices and set the Mean Radius X and Y to 0.1:

You can Apply the Skin and Subsurf modifiers as well if you'd like (will speed things up but will prevent you from making easy changes later if you want).

This mesh is manifold and can be intersected with other meshes via Boolean Modifier, even while still parametric with all the modifiers still unapplied: