Before blender 5.0 I could use the script script below to split a mesh into smaller parts:
bpy.ops.object.mode_set(mode='EDIT')
bmNavMesh = bmesh.from_edit_mesh(ob_for_convert.data)
edges = []
for i in range(-10, 10, 1):
ret = bmesh.ops.bisect_plane(bmNavMesh, geom=bmNavMesh.verts[:]+bmNavMesh.edges[:]+bmNavMesh.faces[:], plane_co=(i*100,0,0), plane_no=(-1,0,0))
bmesh.ops.split_edges(bmNavMesh, edges=[e for e in ret['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])
for i in range(-10, 10, ):
ret = bmesh.ops.bisect_plane(bmNavMesh, geom=bmNavMesh.verts[:]+bmNavMesh.edges[:]+bmNavMesh.faces[:], plane_co=(0,i*100,0), plane_no=(0,1,0))
bmesh.ops.split_edges(bmNavMesh, edges=[e for e in ret['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])
bmesh.update_edit_mesh(ob_for_convert.data)
bmNavMesh = bmesh.from_edit_mesh(ob_for_convert.data)
bmesh.ops.remove_doubles(bmNavMesh, verts=bmNavMesh.verts[:], dist=0.0001)
bmesh.update_edit_mesh(ob_for_convert.data)
bpy.ops.object.mode_set(mode='OBJECT')
me = ob_for_convert.to_mesh()
But now that I’m on blender 5.0 this script crashes on:
bpy.ops.object.mode_set(mode='EDIT')
I am wondering if I should fix this script for Blender 5.0 or if there are new ways to do this.
The reason I’m cutting the mesh up like this is this is that they are used for a navmesh in an engine that loads them in small non overlapping segments.