Guest User

Untitled

a guest
Apr 20th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. import bpy
  2. import bmesh
  3.  
  4. # Get the active mesh
  5. startmode='OBJECT'
  6. obj = bpy.context.object
  7. if obj!=None:
  8. startmode=obj.mode
  9. if startmode=='EDIT':
  10. bpy.ops.object.mode_set(mode='OBJECT')
  11. del obj
  12.  
  13. bpy.ops.mesh.primitive_plane_add()
  14. obj=bpy.context.object
  15. me = obj.data
  16. bm = bmesh.new() # create an empty BMesh
  17. bm.from_mesh(me)
  18.  
  19.  
  20. for face in bm.faces:
  21. if face.select and len(face.verts)==4:
  22. ret1=bmesh.ops.bisect_edges(bm,edges=[edge for edge in face.edges[:]],cuts=1)
  23. ret2=bmesh.ops.bisect_edges(bm,edges=[edge for edge in face.edges[:2]],cuts=3)
  24. #Now there should be 14 edges and 14 verts in face
  25. print("=======Face",face)
  26. outside_verts=[vert for vert in face.verts] #Construct my list as face will soon be different
  27. ret3=[]
  28. for i in [3,5,1,7]:
  29. ret3.append(bmesh.ops.connect_verts(bm,verts=[outside_verts[11],outside_verts[i]])['edges'][0])
  30. print(outside_verts) #All 14 verts fine here
  31. ret4=bmesh.ops.bisect_edges(bm,edges=ret3[:1],cuts=2)#['geom_split']
  32. print(outside_verts) #14 dead verts here, but they are not even the same verts...?
  33. print(ret4) #vertices 10 and 6 are still alive here.
  34. #bmesh.ops.connect_verts(bm,verts=[outside_verts[2],ret4[0]])# This would generate an error
  35.  
  36. bm.to_mesh(me)
  37. bm.free()
  38. if startmode=='EDIT':
  39. bpy.ops.object.mode_set(mode='EDIT')
  40.  
  41. OUTPUT:
  42. =======Face <BMFace(0x0000022F99011030), index=0, totverts=14>
  43. [<BMVert(0x0000022F98E7C190), index=0>, <BMVert(0x0000022F98E7C350), index=8>, <BMVert(0x0000022F98E7C388), index=9>, <BMVert(0x0000022F98E7C3C0), index=10>, <BMVert(0x0000022F98E7C270), index=4>, <BMVert(0x0000022F98E7C3F8), index=11>, <BMVert(0x0000022F98E7C430), index=12>, <BMVert(0x0000022F98E7C468), index=13>, <BMVert(0x0000022F98E7C1C8), index=1>, <BMVert(0x0000022F98E7C2A8), index=5>, <BMVert(0x0000022F98E7C238), index=3>, <BMVert(0x0000022F98E7C2E0), index=6>, <BMVert(0x0000022F98E7C200), index=2>, <BMVert(0x0000022F98E7C318), index=7>]
  44. [<BMVert dead at 0x0000022F98928BE8>, <BMVert dead at 0x0000022F97A92300>, <BMVert dead at 0x0000022F97A92AD0>, <BMVert dead at 0x0000022F97A92828>, <BMVert dead at 0x0000022F98928B48>, <BMVert dead at 0x0000022F97A92800>, <BMVert dead at 0x0000022F97A92A08>, <BMVert dead at 0x0000022F97A92A30>, <BMVert dead at 0x0000022F989283F0>, <BMVert dead at 0x0000022F98928788>, <BMVert dead at 0x0000022F98928878>, <BMVert dead at 0x0000022F98928490>, <BMVert dead at 0x0000022F989287D8>, <BMVert dead at 0x0000022F989288A0>]
  45. {'geom_split': [<BMVert(0x0000022F98E7C4A0), index=14>, <BMVert(0x0000022F98E7C4D8), index=15>, <BMEdge(0x0000022F98F9B2B0), index=14, verts=(0x0000022F98E7C4D8/15, 0x0000022F98E7C2E0/6)>, <BMEdge(0x0000022F98F9B3F0), index=18, verts=(0x0000022F98E7C3C0/10, 0x0000022F98E7C4A0/14)>, <BMEdge(0x0000022F98F9B440), index=19, verts=(0x0000022F98E7C4A0/14, 0x0000022F98E7C4D8/15)>]}
Add Comment
Please, Sign In to add comment