Suppose I have an object, for simplicity, created as a grid and two circles. How can I extract a mesh, which satisfies a condition: x>=0 and y>=0. This implies that the faces associated with the circles have to be bisected. I am wondering if there is a relatively easy solution to this. May be, bmesh.ops.bisect_plane can be of any help in this situation, but I do not know how to apply it.
import bpy
import bmesh
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
bpy.ops.mesh.primitive_circle_add(vertices=32, radius=2,
location=(0.5, 0.5, 0.0), fill_type='NGON')
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action="DESELECT")
bpy.ops.mesh.primitive_circle_add(vertices=32, radius=3,
location=(0.5, 0.5, 0.0), fill_type='NGON')
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action="DESELECT")
bpy.ops.mesh.primitive_grid_add(x_subdivisions=3, y_subdivisions=3,
radius=4.0, location=(0.0,0.0,0.0))
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action="DESELECT")
bpy.ops.object.mode_set(mode='OBJECT')
obj = bpy.context.selected_objects[0]