[Bf-extensions-cvs] [a501de8e] master: 3D-Print: fix Copy Textures for STL and PLY export

Mikhail Rachinskiy noreply at git.blender.org
Thu Oct 17 15:28:02 CEST 2019


Commit: a501de8e34533de5c66b5db9973ca5ab6c8f0230
Author: Mikhail Rachinskiy
Date:   Thu Oct 17 17:25:55 2019 +0400
Branches: master
https://developer.blender.org/rBAa501de8e34533de5c66b5db9973ca5ab6c8f0230

3D-Print: fix Copy Textures for STL and PLY export

===================================================================

M	object_print3d_utils/export.py

===================================================================

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]



More information about the Bf-extensions-cvs mailing list