Skip to content
Snippets Groups Projects
Commit ff8ef5cb authored by zeffii's avatar zeffii
Browse files

fix major xall bug and bump version

parent dd5e311b
No related branches found
No related tags found
No related merge requests found
...@@ -108,37 +108,30 @@ def get_intersection_dictionary(bm, edge_indices): ...@@ -108,37 +108,30 @@ def get_intersection_dictionary(bm, edge_indices):
return d return d
def update_mesh(obj, d): def update_mesh(bm, d):
''' Make new geometry (delete old first) ''' ''' Make new geometry (delete old first) '''
bpy.ops.mesh.delete(type='EDGE') oe = bm.edges
bpy.ops.object.editmode_toggle() ov = bm.verts
oe = obj.data.edges
ov = obj.data.vertices
vert_count = len(ov)
edge_count = len(oe)
new_verts = []
collect = new_verts.extend
for old_edge, point_list in d.items(): for old_edge, point_list in d.items():
num_points = len(point_list) num_edges_to_add = len(point_list)-1
num_edges_to_add = num_points - 1
for i in range(num_edges_to_add): for i in range(num_edges_to_add):
oe.add(1) a = ov.new(point_list[i])
ov.add(2) b = ov.new(point_list[i+1])
oe.new((a, b))
bm.normal_update()
collect([a, b])
ov[vert_count].co = point_list[i] bmesh.ops.delete(bm, geom=[edge for edge in bm.edges if edge.select], context=2) # 2 = edges
ov[vert_count + 1].co = point_list[i + 1]
oe[edge_count].vertices = [vert_count, vert_count + 1] #bpy.ops.mesh.remove_doubles(
vert_count = len(ov) # threshold=cm.CAD_prefs.VTX_DOUBLES_THRSHLD,
edge_count = len(oe) # use_unselected=False)
# set edit mode bmesh.ops.remove_doubles(bm, verts=new_verts, dist=cm.CAD_prefs.VTX_DOUBLES_THRSHLD)
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.remove_doubles(
threshold=cm.CAD_prefs.VTX_DOUBLES_THRSHLD,
use_unselected=False)
def unselect_nonintersecting(bm, d_edges, edge_indices): def unselect_nonintersecting(bm, d_edges, edge_indices):
...@@ -174,7 +167,9 @@ class TCIntersectAllEdges(bpy.types.Operator): ...@@ -174,7 +167,9 @@ class TCIntersectAllEdges(bpy.types.Operator):
d = get_intersection_dictionary(bm, edge_indices) d = get_intersection_dictionary(bm, edge_indices)
unselect_nonintersecting(bm, d.keys(), edge_indices) unselect_nonintersecting(bm, d.keys(), edge_indices)
update_mesh(obj, d) update_mesh(bm, d)
bmesh.update_edit_mesh(obj.data)
else: else:
print('must be in edit mode') print('must be in edit mode')
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
bl_info = { bl_info = {
"name": "tinyCAD Mesh tools", "name": "tinyCAD Mesh tools",
"author": "zeffii (aka Dealga McArdle)", "author": "zeffii (aka Dealga McArdle)",
"version": (1, 3, 0), "version": (1, 3, 1),
"blender": (2, 7, 7), "blender": (2, 7, 7),
"category": "Mesh", "category": "Mesh",
"location": "View3D > EditMode > (w) Specials", "location": "View3D > EditMode > (w) Specials",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment