diff options
Diffstat (limited to 'io_mesh_stl')
-rw-r--r-- | io_mesh_stl/__init__.py | 10 | ||||
-rw-r--r-- | 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 41765d2c..24e1650d 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 1058064b..8d19e30c 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): ''' |