From ad1800b48646de754c3ff3bc283adbe58fd1b30a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 25 Jul 2023 23:29:06 +1000 Subject: [PATCH] Fix #3479. Regression in 69fa124 when addressing #3421 that led to objects with multiple paths not taking part in the wall / slab joining procedure. --- src/blenderbim/blenderbim/bim/module/drawing/operator.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index b1009fb87f..6f177df13a 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -919,7 +919,7 @@ class CreateDrawing(bpy.types.Operator): path.getparent().remove(path) for result in results: for geom in result.geoms: - path = etree.SubElement(el, "path") + path = etree.SubElement(el, "{http://www.w3.org/2000/svg}path") if isinstance(geom, shapely.Polygon): d = ( "M" @@ -963,8 +963,10 @@ class CreateDrawing(bpy.types.Operator): is_closed_polygon = False for path in el.findall("{http://www.w3.org/2000/svg}path"): for subpath in path.attrib["d"].split("M")[1:]: - subpath = "M" + subpath.strip() - coords = [[round(float(o), 1) for o in co[1:].split(",")] for co in subpath.split()] + subpath_co = "M" + subpath.strip(" Z") + coords = [[round(float(o), 1) for o in co[1:].split(",")] for co in subpath_co.split()] + if subpath.strip().lower().endswith("z"): + coords.append(coords[0]) if len(coords) > 2 and coords[0] == coords[-1]: is_closed_polygon = True polygons.append(shapely.Polygon(coords))