[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4497] contrib/py/scripts/addons/ oscurart_tools/oscurart_meshes.py: IO Groups rewritten!

Eugenio Pignataro info at oscurart.com.ar
Mon Apr 29 22:21:43 CEST 2013


Revision: 4497
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4497
Author:   oscurart
Date:     2013-04-29 20:21:43 +0000 (Mon, 29 Apr 2013)
Log Message:
-----------
IO Groups rewritten!

Modified Paths:
--------------
    contrib/py/scripts/addons/oscurart_tools/oscurart_meshes.py

Modified: contrib/py/scripts/addons/oscurart_tools/oscurart_meshes.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools/oscurart_meshes.py	2013-04-29 17:01:35 UTC (rev 4496)
+++ contrib/py/scripts/addons/oscurart_tools/oscurart_meshes.py	2013-04-29 20:21:43 UTC (rev 4497)
@@ -150,37 +150,11 @@
     bl_options = {"REGISTER", "UNDO"}
     def execute(self,context):
         
-        OBSEL=bpy.context.active_object
-        FILEPATH = bpy.data.filepath
-        
-        with open(os.path.join(os.path.split(FILEPATH)[0],"%s.xml" % (OBSEL.name)), mode = "w") as FILE:
-            VERTLIST = []
-            LENVER = len(OBSEL.data.vertices)
-            for VG in OBSEL.vertex_groups:
-                BONELIST = []
-                for VERTICE in range(0,LENVER):
-                    try:
-                        BONELIST.append((VERTICE,VG.weight(VERTICE),VG.name,))
-                    except:
-                        pass
-                VERTLIST.append(BONELIST)
-            NAMEGROUPLIST=[]
-            for VG in OBSEL.vertex_groups:
-                NAMEGROUPLIST.append(VG.name)
-            VERTLIST.append(NAMEGROUPLIST)
-            FILE.write(str(VERTLIST))
+        with open(os.path.join(os.path.split(bpy.data.filepath)[0],"%s_vg" % (bpy.context.object.name)), "w") as FILE:
+            WEIGHTLIST = [[group.group, vert.index, group.weight] for vert in bpy.context.object.data.vertices[:] for group in vert.groups[:]]
+            WEIGHTLIST.append([group.name for group in bpy.context.object.vertex_groups])
+            FILE.write(str(WEIGHTLIST))
 
-        with open(os.path.join(os.path.split(FILEPATH)[0],"%s_DATA.xml" % (OBSEL.name)), mode = "w") as FILE:
-            DATAVER = []
-            for VERT in OBSEL.data.vertices[:]:
-                LISTVGTEMP = []
-                for VGTEMP, GROUP in enumerate(VERT.groups[:]):
-                    LISTVGTEMP.append((GROUP.group,VGTEMP))
-                LISTVGTEMP=sorted(LISTVGTEMP)
-                for TEMP, GROUP in enumerate(VERT.groups[:]):
-                    DATAVER.append((VERT.index,TEMP,VERT.groups[LISTVGTEMP[TEMP][1]].weight))
-            FILE.write(str(DATAVER))
-
         return {'FINISHED'}
 
 class OscImportVG (bpy.types.Operator):
@@ -188,59 +162,15 @@
     bl_label = "Import Groups"
     bl_options = {"REGISTER", "UNDO"}
     def execute(self,context):
-
-        OBSEL = bpy.context.active_object
-        if os.sys.platform.count("win"):
-            print("WINDOWS")
-            BAR = "\\"
-        else:
-            print("LINUX")
-            BAR = "/"
-
-        FILEPATH = bpy.data.filepath
-        FILE = open(FILEPATH.rpartition(BAR)[0] + BAR + OBSEL.name + ".xml", mode="r")
-        VERTLIST = FILE.readlines(0)
-        VERTLIST = eval(VERTLIST[0])
-        VERTLISTR = VERTLIST[:-1]
-        GROUPLIST = VERTLIST[-1:]
-        VGINDEX = 0
-
-
-        bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
-
-        for GROUP in GROUPLIST[0]:
-            bpy.ops.object.vertex_group_add()
-            OBSEL.vertex_groups[-1].name=GROUP
-
-
-
-        for VG in OBSEL.vertex_groups[:]:
-            bpy.ops.object.vertex_group_set_active(group=VG.name)
-            bpy.ops.object.mode_set(mode='EDIT')
-            bpy.ops.mesh.select_all(action='DESELECT')
-            bpy.ops.object.mode_set(mode='OBJECT')
-            for VERTI in VERTLISTR[VG.index]:
-                OBSEL.data.vertices[VERTI[0]].select=1
-            bpy.context.tool_settings.vertex_group_weight=1
-            bpy.ops.object.mode_set(mode='EDIT')
-            bpy.ops.object.vertex_group_assign(new=False)
-
-        FILE.close()
-
-
-        ## ----------- LEVANTO DATA ----
-        # VARIABLES
-        FILEPATH = bpy.data.filepath
-        FILE = open(FILEPATH.rpartition(BAR)[0]+BAR+OBSEL.name+"_DATA.xml", mode="r")
-        DATAPVER = FILE.readlines(0)
-        DATAPVER = eval(DATAPVER[0])
-
-        bpy.ops.object.mode_set(mode='OBJECT')
-        for VERT in DATAPVER:
-            OBSEL.data.vertices[VERT[0]].groups[VERT[1]].weight = VERT[2]
-        FILE.close()
-        # PASO A MODO PINTURA DE PESO
-        bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
+        
+        with open(os.path.join(os.path.split(bpy.data.filepath)[0],"%s_vg" % (bpy.context.object.name)), "r") as FILE:
+            WEIGHTLIST = eval(FILE.read())
+            for group in WEIGHTLIST[-1]:
+                bpy.context.object.vertex_groups.new(name=group)
+            for ind ,(gr, index, weight) in enumerate(WEIGHTLIST[:-1]):
+                print(ind, gr, index, weight)
+                bpy.context.object.vertex_groups[gr].add(index=(index,index),weight=weight, type="REPLACE")
+        
         return {'FINISHED'}
 
 



More information about the Bf-extensions-cvs mailing list