same mesh (edit mode) boolean intersection gives an error I recently learned from another user (here https://blender.stackexchange.com/a/83002/919) about the "mesh > intersect (boolean)" command, maybe I forgot about it from some release log, but as I tried to use it (both on 2.78 and 2.78.5) it always gives me an error: "no intersection found".

I tried with a few very simple setups but every tim eit seems to fail for some reason.

See what happens, here on 2.78.5 - aka 2.79 testbuild1 - (only default addons):



Doing this the system console logs:

bpy.ops.object.editmode_toggle()
bpy.ops.mesh.duplicate_move(MESH_OT_duplicate={"mode":1}, TRANSFORM_OT_translate={"value":(0, 0, 1.01412), "constraint_axis":(False, False, True), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False, "use_accurate":False})
bpy.ops.transform.resize(value=(0.574256, 0.574256, 0.574256), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.mesh.intersect_boolean()
bpy.data.window_managers["WinMan"].(null) = 'UNION'
bpy.ops.mesh.intersect_boolean(operation='UNION')
No intersections found
bpy.ops.mesh.intersect_boolean(operation='UNION', use_swap=True)
No intersections found
bpy.data.window_managers["WinMan"].(null) = True
bpy.data.window_managers["WinMan"].(null) = 0
bpy.ops.mesh.intersect_boolean(operation='UNION', use_swap=True, threshold=0)
No intersections found
bpy.ops.mesh.intersect_boolean(operation='UNION', use_swap=False, threshold=0)
No intersections found
bpy.data.window_managers["WinMan"].(null) = False
bpy.data.window_managers["WinMan"].(null) = 'INTERSECT'
bpy.ops.mesh.intersect_boolean(operation='INTERSECT', use_swap=False, threshold=0)
bpy.data.window_managers["WinMan"].(null) = 'DIFFERENCE'
bpy.ops.mesh.intersect_boolean(operation='DIFFERENCE', use_swap=False, threshold=0)


Am I doing something wrong? Is the setup wrong? 
How can I make it work?
Since no answers were added, I add one of my own to help others that like me, without reding the manual, may be stuck understanding how this kind of boolean works:

as MrZak and Nghillaz pointed out, I was selecting both part of the mesh, hoping that the "intersect (boolean)" edit-mode command would find an intersection in the selected geometry. 

Instead, the assumption is that you only select one of the mesh part that are supposed to be part of the intersection, not both.

See how it works, really:



The default behaviour is to do a boolean difference, but on the left side operation panel you can tweak the mode at your like.