[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4793] contrib/py/scripts/addons/ oscurart_tools: Allow overrides for linked objects! Thanks Campbell.

Eugenio Pignataro info at oscurart.com.ar
Thu Oct 10 20:58:24 CEST 2013


Revision: 4793
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4793
Author:   oscurart
Date:     2013-10-10 18:58:24 +0000 (Thu, 10 Oct 2013)
Log Message:
-----------
Allow overrides for linked objects! Thanks Campbell.

Modified Paths:
--------------
    contrib/py/scripts/addons/oscurart_tools/oscurart_overrides.py
    contrib/py/scripts/addons/oscurart_tools/oscurart_render.py

Modified: contrib/py/scripts/addons/oscurart_tools/oscurart_overrides.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools/oscurart_overrides.py	2013-10-10 16:52:46 UTC (rev 4792)
+++ contrib/py/scripts/addons/oscurart_tools/oscurart_overrides.py	2013-10-10 18:58:24 UTC (rev 4793)
@@ -35,11 +35,14 @@
     for OVERRIDE in PROPTOLIST:
         for OBJECT in bpy.data.groups[OVERRIDE[0]].objects[:]:
             if OBJECT.type == "MESH" or OBJECT.type == "META" or OBJECT.type == "CURVE": 
-                if len(OBJECT.material_slots) > 0:                   
-                    for SLOT in OBJECT.material_slots[:]:
-                        SLOT.material = bpy.data.materials[OVERRIDE[1]]                    
-                else:
-                    print ("* %s have not Material Slots" % (OBJECT.name))          
+                OBJECT.data.materials.clear()
+                OBJECT.data.materials.append(bpy.data.materials[OVERRIDE[1]])  
+                
+                #if len(OBJECT.material_slots) > 0:                   
+                #    for SLOT in OBJECT.material_slots[:]:
+                #        SLOT.material = bpy.data.materials[OVERRIDE[1]]                    
+                #else:
+                #    print ("* %s have not Material Slots" % (OBJECT.name))          
     with open(ENTFILEPATH, mode="w") as file:    
         file.writelines(str(LISTMAT))
     
@@ -53,10 +56,12 @@
         RXML = file.readlines(0)
     LISTMAT = dict(eval(RXML[0]))
     # RESTAURO MATERIALES  DE OVERRIDES    
-    for OBJ in LISTMAT:            
+    for OBJ in LISTMAT:    
+        OBJ.data.materials.clear()        
         if OBJ.type == "MESH" or OBJ.type == "META" or OBJ.type == "CURVE":
             for SLOTIND, SLOT in enumerate(LISTMAT[OBJ]):
-                OBJ.material_slots[SLOTIND].material = SLOT  
+                #OBJ.material_slots[SLOTIND].material = SLOT 
+                OBJ.data.materials.append(SLOT) 
  
 
     

Modified: contrib/py/scripts/addons/oscurart_tools/oscurart_render.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools/oscurart_render.py	2013-10-10 16:52:46 UTC (rev 4792)
+++ contrib/py/scripts/addons/oscurart_tools/oscurart_render.py	2013-10-10 18:58:24 UTC (rev 4793)
@@ -52,8 +52,10 @@
             for OVERRIDE in PROPTOLIST:
                 for OBJECT in bpy.data.groups[OVERRIDE[0]].objects[:]:
                     if OBJECT.type == "MESH" or OBJECT.type == "META" or OBJECT.type == "CURVE":
-                        for SLOT in OBJECT.material_slots[:]:
-                            SLOT.material=bpy.data.materials[OVERRIDE[1]]
+                        OBJECT.data.materials.clear()
+                        OBJECT.data.materials.append(bpy.data.materials[OVERRIDE[1]])
+                        #for SLOT in OBJECT.material_slots[:]:
+                        #    SLOT.material=bpy.data.materials[OVERRIDE[1]]
         except:
             pass
         SCENENAME=os.path.basename(FILEPATH.rpartition(".")[0])
@@ -76,11 +78,13 @@
             layer.use = 1
         SCENE.render.filepath = ENDPATH
         for OBJECT in LISTMAT:
-            SLOTIND=0
+            print(OBJECT[0].data.materials[:])
+            OBJECT[0].data.materials.clear()
             try:
                 for SLOT in OBJECT[1]:
-                    OBJECT[0].material_slots[SLOTIND].material=SLOT
-                    SLOTIND+=1
+                    #OBJECT[0].material_slots[SLOTIND].material=SLOT
+                    #SLOTIND+=1
+                    OBJECT[0].data.materials.append(SLOT)
             except:
                 print("OUT OF RANGE")
         if frametype == True:
@@ -144,8 +148,10 @@
                 for OVERRIDE in PROPTOLIST:
                     for OBJECT in bpy.data.groups[OVERRIDE[0]].objects[:]:
                         if OBJECT.type == "MESH" or OBJECT.type == "META" or OBJECT.type == "CURVE":
-                            for SLOT in OBJECT.material_slots[:]:
-                                SLOT.material=bpy.data.materials[OVERRIDE[1]]
+                            OBJECT.data.materials.clear()
+                            OBJECT.data.materials.append(bpy.data.materials[OVERRIDE[1]])                            
+                            #for SLOT in OBJECT.material_slots[:]:
+                                #SLOT.material=bpy.data.materials[OVERRIDE[1]]
             except:
                 pass
             SCENENAME=os.path.basename(FILEPATH.rpartition(".")[0])
@@ -168,11 +174,13 @@
                 layer.use = 1
             SCENE.render.filepath = ENDPATH
             for OBJECT in LISTMAT:
-                SLOTIND = 0
+                #SLOTIND = 0
+                OBJECT[0].data.materials.clear()
                 try:
                     for SLOT in OBJECT[1]:
-                        OBJECT[0].material_slots[SLOTIND].material = SLOT
-                        SLOTIND += 1
+                        OBJECT[0].data.materials.append(SLOT)
+                        #OBJECT[0].material_slots[SLOTIND].material = SLOT
+                        #SLOTIND += 1
                 except:
                     print("OUT OF RANGE")
             if frametype == True:
@@ -228,8 +236,10 @@
         for OVERRIDE in PROPTOLIST:
             for OBJECT in bpy.data.groups[OVERRIDE[0]].objects[:]:
                 if OBJECT.type == "MESH" or OBJECT.type == "META" or OBJECT.type == "CURVE":
-                    for SLOT in OBJECT.material_slots[:]:
-                        SLOT.material = bpy.data.materials[OVERRIDE[1]]
+                    OBJECT.data.materials.clear()
+                    OBJECT.data.materials.append(bpy.data.materials[OVERRIDE[1]])  
+                    #for SLOT in OBJECT.material_slots[:]:
+                        #SLOT.material = bpy.data.materials[OVERRIDE[1]]
     except:
         pass
     SCENENAME=os.path.basename(FILEPATH.rpartition(".")[0])
@@ -252,11 +262,13 @@
         layer.use = 1
     SCENE.render.filepath = ENDPATH
     for OBJECT in LISTMAT:
-        SLOTIND = 0
+        #SLOTIND = 0
+        OBJECT[0].data.materials.clear()
         try:
             for SLOT in OBJECT[1]:
-                OBJECT[0].material_slots[SLOTIND].material=SLOT
-                SLOTIND += 1
+                OBJECT[0].data.materials.append(SLOT)
+                #OBJECT[0].material_slots[SLOTIND].material=SLOT
+                #SLOTIND += 1
         except:
             print("FUERA DE RANGO")
     if frametype == True:
@@ -460,4 +472,4 @@
     def execute(self,context):
         defoscPythonBatchMaker(self.type, self.size)
         return {'FINISHED'}
- 
+ 
\ No newline at end of file



More information about the Bf-extensions-cvs mailing list