From 6a06c292a10cacda2cef5ffe46dfad03a38c9e95 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 13 Dec 2020 16:54:11 +1100 Subject: [PATCH] Fix #1148. Fix crash when creating drawings on Windows with Blender >= 2.91 --- .../blenderbim/bim/cut_ifc.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/ifcblenderexport/blenderbim/bim/cut_ifc.py b/src/ifcblenderexport/blenderbim/bim/cut_ifc.py index 8734f7a286..7c54d2ca4c 100644 --- a/src/ifcblenderexport/blenderbim/bim/cut_ifc.py +++ b/src/ifcblenderexport/blenderbim/bim/cut_ifc.py @@ -482,13 +482,20 @@ class IfcCutter: import bpy - multiprocessing.set_executable(bpy.app.binary_path_python) - - with multiprocessing.Pool(9) as p: - results = p.map(do_cut, process_data) - for result in results: - polygons = [p for p in result if p["points"]] + if bpy.app.version > (2, 90, 0) and os.name == 'nt': + # See bug #1148 + for data in process_data: + results = do_cut(data) + polygons = [r for r in results if r["points"]] self.cut_polygons.extend(polygons) + else: + multiprocessing.set_executable(bpy.app.binary_path_python) + + with multiprocessing.Pool(9) as p: + results = p.map(do_cut, process_data) + for result in results: + polygons = [p for p in result if p["points"]] + self.cut_polygons.extend(polygons) def get_polygon_metadata(self, polygon, position): polygon["metadata"] = {"classes": self.get_classes(self.get_ifc_element(polygon["global_id"]), position)}