From 37baa9235aed011bb68b830331b6c67d3f634130 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 30 Aug 2024 23:51:47 +1000 Subject: [PATCH] Fix bug where a voided element by OCC will be considered non-manifold. Remove doubles with a very small distance fixes it. --- src/bonsai/bonsai/bim/module/drawing/operator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 6a8bfe0229..c237807a78 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -572,8 +572,8 @@ class CreateDrawing(bpy.types.Operator): lines = [] for edge in edges: - start = [round(o, 5) for o in (camera_matrix_i @ Vector(verts[edge[0]])).xy] - end = [round(o, 5) for o in (camera_matrix_i @ Vector(verts[edge[1]])).xy] + start = [o for o in (camera_matrix_i @ Vector(verts[edge[0]])).xy] + end = [o for o in (camera_matrix_i @ Vector(verts[edge[1]])).xy] coords = [start, end] d = " ".join( [ @@ -1035,6 +1035,7 @@ class CreateDrawing(bpy.types.Operator): bm = bmesh.new() bm.from_mesh(obj.data) + bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.000001) for edge in bm.edges: if not edge.is_manifold: bm.free()