From 1113b9f1378fddb9cfee2f25447fc97905ef3cc4 Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Thu, 5 May 2011 08:27:07 +0000 Subject: [PATCH] fix [#26895] STL import in Win 7 64bit --- io_mesh_stl/__init__.py | 10 ++++++++-- io_mesh_stl/blender_utils.py | 9 ++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/io_mesh_stl/__init__.py b/io_mesh_stl/__init__.py index 41765d2c0..24e1650d0 100644 --- a/io_mesh_stl/__init__.py +++ b/io_mesh_stl/__init__.py @@ -77,7 +77,7 @@ class ImportSTL(bpy.types.Operator, ImportHelper): "the STL file", type=bpy.types.OperatorFileListElement) - directory = StringProperty() + directory = StringProperty(subtype='DIR_PATH') def execute(self, context): from . import stl_utils @@ -88,8 +88,14 @@ class ImportSTL(bpy.types.Operator, ImportHelper): if not paths: paths.append(self.filepath) + if bpy.ops.object.mode_set.poll(): + bpy.ops.object.mode_set(mode='OBJECT') + + if bpy.ops.object.select_all.poll(): + bpy.ops.object.select_all(action='DESELECT') + for path in paths: - objName = bpy.path.display_name(path.split("\\")[-1].split("/")[-1]) + objName = bpy.path.display_name(os.path.basename(path)) tris, pts = stl_utils.read_stl(path) blender_utils.create_and_link_mesh(objName, tris, pts) diff --git a/io_mesh_stl/blender_utils.py b/io_mesh_stl/blender_utils.py index 1058064b0..8d19e30ce 100644 --- a/io_mesh_stl/blender_utils.py +++ b/io_mesh_stl/blender_utils.py @@ -30,13 +30,16 @@ def create_and_link_mesh(name, faces, points): mesh = bpy.data.meshes.new(name) mesh.from_pydata(points, [], faces) - ob = bpy.data.objects.new(name, mesh) - bpy.context.scene.objects.link(ob) - # update mesh to allow proper display mesh.validate() mesh.update() + scene = bpy.context.scene + + obj = bpy.data.objects.new(name, mesh) + scene.objects.link(obj) + obj.select = True + def faces_from_mesh(ob, apply_modifier=False, triangulate=True): ''' -- GitLab