diff options
author | Mikhail Rachinskiy <mikhail.rachinskiy@gmail.com> | 2019-10-17 16:25:55 +0300 |
---|---|---|
committer | Mikhail Rachinskiy <mikhail.rachinskiy@gmail.com> | 2019-10-17 16:25:55 +0300 |
commit | a501de8e34533de5c66b5db9973ca5ab6c8f0230 (patch) | |
tree | a1a73afdacdc7eb85f55ad9841f7101285471356 /object_print3d_utils | |
parent | 758e2817f68181c68d09de6f22afb691ba34581a (diff) |
3D-Print: fix Copy Textures for STL and PLY export
Diffstat (limited to 'object_print3d_utils')
-rw-r--r-- | object_print3d_utils/export.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/object_print3d_utils/export.py b/object_print3d_utils/export.py index 8c61400f..2503c2f5 100644 --- a/object_print3d_utils/export.py +++ b/object_print3d_utils/export.py @@ -24,19 +24,35 @@ import bpy +def image_get(mat): + from bpy_extras import node_shader_utils + + if mat.use_nodes: + mat_wrap = node_shader_utils.PrincipledBSDFWrapper(mat) + base_color_tex = mat_wrap.base_color_texture + if base_color_tex and base_color_tex.image: + return base_color_tex.image + + def image_copy_guess(filepath, objects): # 'filepath' is the path we are writing to. - import os - import shutil - from bpy_extras import object_utils - image = None + mats = set() + for obj in objects: - image = object_utils.object_image_guess(obj) + for slot in obj.material_slots: + if slot.material: + mats.add(slot.material) + + for mat in mats: + image = image_get(mat) if image is not None: break if image is not None: + import os + import shutil + imagepath = bpy.path.abspath(image.filepath, library=image.library) if os.path.exists(imagepath): filepath_noext = os.path.splitext(filepath)[0] |