def collapse_short_edges(bm,obj,threshold=1.0):
### collapse short edges
edges_len_average = 0
edges_count = 0
shortest_edge = 10000
for edge in bm.edges:
if True:
edges_count += 1
length = edge.calc_length()
edges_len_average += length
if length < shortest_edge:
shortest_edge = length
edges_len_average = edges_len_average/edges_count
verts = []
for vert in bm.verts:
if not vert.is_boundary:
verts.append(vert)
bmesh.update_edit_mesh(obj.data)
bmesh.ops.remove_doubles(bm,verts=verts,dist=edges_len_average*threshold)
bmesh.update_edit_mesh(obj.data)
评论列表
文章目录