[Bf-extensions-cvs] [99019950] blender2.8: fixing bugs

Kalle-Samuli Riihikoski noreply at git.blender.org
Sun Aug 12 05:41:07 CEST 2018


Commit: 99019950bc421e0c444ab7044fd0673d0f217f14
Author: Kalle-Samuli Riihikoski
Date:   Sun Aug 12 03:39:24 2018 +0300
Branches: blender2.8
https://developer.blender.org/rBA99019950bc421e0c444ab7044fd0673d0f217f14

fixing bugs

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

M	io_coat3D/__init__.py

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

diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index 2083f314..6890a346 100644
--- a/io_coat3D/__init__.py
+++ b/io_coat3D/__init__.py
@@ -200,6 +200,15 @@ class SCENE_OT_export(bpy.types.Operator):
     bl_options = {'UNDO'}
 
     def invoke(self, context, event):
+
+        for mesh in bpy.data.meshes:
+            if (mesh.users == 0):
+                bpy.data.meshes.remove(mesh)
+
+        for material in bpy.data.materials:
+            if (material.users == 0):
+                bpy.data.materials.remove(material)
+
         checkname = ''
         coat3D = bpy.context.scene.coat3D
         scene = context.scene
@@ -242,10 +251,12 @@ class SCENE_OT_export(bpy.types.Operator):
                     looking = False
                     coa.applink_name = ("%s%.2d"%(activeobj,object_index))
                     coa.applink_address = checkname
+        matindex = 0
         for objekti in bpy.context.selected_objects:
             if(objekti.material_slots.keys() == []):
-                bpy.ops.material.new()
-                objekti.data.materials.append(bpy.data.materials[-1])
+                newmmat = bpy.data.materials.new('Material')
+                objekti.data.materials.append(newmmat)
+                matindex += 1
 
         bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
         #bpy.ops.object.transforms_to_deltas(mode='ROT')
@@ -283,6 +294,14 @@ class SCENE_OT_import(bpy.types.Operator):
 
     def invoke(self, context, event):
 
+        for mesh in bpy.data.meshes:
+            if(mesh.users == 0):
+                bpy.data.meshes.remove(mesh)
+
+        for material in bpy.data.materials:
+            if (material.users == 0):
+                bpy.data.materials.remove(material)
+
         coat3D = bpy.context.scene.coat3D
         coat = bpy.coat3D
         coat3D.exchangedir = set_exchange_folder()
@@ -298,6 +317,7 @@ class SCENE_OT_import(bpy.types.Operator):
         new_object = False
         print(Blender_export)
         if(os.path.isfile(Blender_export)):
+            print('löytyy')
             obj_pathh = open(Blender_export)
             new_object = True
             for line in obj_pathh:
@@ -305,161 +325,159 @@ class SCENE_OT_import(bpy.types.Operator):
                 break
             obj_pathh.close()
 
-            for scene_objects in bpy.context.scene.objects:
+            for scene_objects in bpy.context.collection.objects:
                 if(scene_objects.type == 'MESH'):
                     if(scene_objects.coat3D.applink_address == new_applink_address):
                         new_object = False
+        print('new_pbject:', new_object)
 
         if(new_object == False):
 
             #Blender -> 3DC -> Blender workflow
 
-            for objekti in bpy.context.scene.objects:
-                obj_coat = objekti.coat3D
-
-                if(obj_coat.applink_address != '' and os.path.isfile(obj_coat.applink_address) and obj_coat.applink_skip == 'False'):
-                    obj_coat.applink_skip = 'True'
-                    objekti.select_set('SELECT')
-                    exportfile = coat3D.exchangedir
-                    path3b_n = coat3D.exchangedir
-                    path3b_n += ('last_saved_3b_file.txt')
-                    exportfile += ('%sexport.txt'%(os.sep))
-                    if(os.path.isfile(exportfile)):
-                        export_file = open(exportfile)
-                        for line in export_file:
-                            if line.rfind('.3b'):
-                                objekti.coat3D.coatpath = line
-                                coat['active_coat'] = line
-                        export_file.close()
-                        os.remove(exportfile)
-
-
-                    obj_names = objekti.coat3D.applink_group
-                    obj_list = obj_names.split(':::')
-                    applinks = []
-                    mat_list = []
-                    obj_list.pop()
-                    print('obj_list: ',obj_list)
-
-
-                    for app_obj in obj_list:
-                        pnimi = app_obj.lstrip()
-                        listed = re.split(r'[:::]', pnimi)
-                        for tobj in bpy.context.collection.all_objects:
-                            if(tobj.type == 'MESH'):
-                                print('tobj.data.name: ',tobj.data.name)
-                                print('app_obj: ',app_obj)
-                                if(tobj.data.name == app_obj):
-                                    print('applink appends:',tobj)
-                                    applinks.append(tobj)
-
-                    if(obj_coat.objecttime != str(os.path.getmtime(obj_coat.applink_address))):
-                        materials_old = bpy.data.materials.keys()
-                        obj_coat.dime = objekti.dimensions
-                        obj_coat.objecttime = str(os.path.getmtime(obj_coat.applink_address))
-                        bpy.ops.wm.collada_import(filepath=obj_coat.applink_address)
-                        bpy.ops.object.select_all(action='DESELECT')
-
-                    
-                        materials_new = bpy.data.materials.keys()
-                        new_ma = list(set(materials_new).difference(set(materials_old)))
-                        proxy_index = -1
-                        #bpy.data.materials.remove(bpy.data.materials[-1])
-                        counter = 1
-                        del_list = []
+            for objekti in bpy.context.collection.objects:
+                if(objekti.type == 'MESH'):
+                    obj_coat = objekti.coat3D
+                    if(obj_coat.applink_address != '' and os.path.isfile(obj_coat.applink_address)):
+                        objekti.select_set('SELECT')
+                        exportfile = coat3D.exchangedir
+                        path3b_n = coat3D.exchangedir
+                        path3b_n += ('last_saved_3b_file.txt')
+                        exportfile += ('%sexport.txt'%(os.sep))
+                        if(os.path.isfile(exportfile)):
+                            export_file = open(exportfile)
+                            for line in export_file:
+                                if line.rfind('.3b'):
+                                    objekti.coat3D.coatpath = line
+                                    coat['active_coat'] = line
+                            export_file.close()
+                            os.remove(exportfile)
+
+
+                        obj_names = objekti.coat3D.applink_group
+                        obj_list = obj_names.split(':::')
+                        applinks = []
+                        mat_list = []
+                        obj_list.pop()
+                        print('obj_list: ',obj_list)
+
+
+                        for app_obj in obj_list:
+                            pnimi = app_obj.lstrip()
+                            listed = re.split(r'[:::]', pnimi)
+                            for tobj in bpy.context.collection.all_objects:
+                                if(tobj.type == 'MESH'):
+                                    print('tobj.data.name: ',tobj.data.name)
+                                    print('app_obj: ',app_obj)
+                                    if(tobj.data.name == app_obj):
+                                        print('applink appends:',tobj)
+                                        applinks.append(tobj)
+
+                        if(obj_coat.objecttime != str(os.path.getmtime(obj_coat.applink_address))):
+                            materials_old = bpy.data.materials.keys()
+                            obj_coat.dime = objekti.dimensions
+                            obj_coat.objecttime = str(os.path.getmtime(obj_coat.applink_address))
+                            bpy.ops.wm.collada_import(filepath=obj_coat.applink_address)
+                            bpy.ops.object.select_all(action='DESELECT')
+
+
+                            materials_new = bpy.data.materials.keys()
+                            new_ma = list(set(materials_new).difference(set(materials_old)))
+                            proxy_index = -1
+                            #bpy.data.materials.remove(bpy.data.materials[-1])
+                            counter = 1
+                            del_list = []
+
+                            for obe in applinks:
+                                print('obe: ',obe)
+                                counter += 1
+
+                                if(obe.coat3D.applink_address == objekti.coat3D.applink_address and obe.type == 'MESH'):
+                                    use_smooth = obe.data.polygons[0].use_smooth
+
+                                    if(obe.material_slots):
+                                        act_mat = obe.active_material
+                                        for obj_mat in obe.material_slots:
+                                            mat_list.append(obj_mat.material)
+
+                                    #finds a object that was imported
+                                    if(obe.coat3D.applink_export == False):
+                                        find_name = obe.data.name + '-mesh'
+                                        find_name = find_name.replace('.', '_')
+                                    else:
+                                        find_name = obe.data.name + '.001'
+                                    for allobjekti in bpy.context.scene.collection.all_objects:
+                                        counter = 0
+
+                                        if(allobjekti.data.name == find_name):
+                                            obj_proxy = allobjekti
+                                            del_list.append(allobjekti)
+                                            break
+
+                                    bpy.ops.object.select_all(action='DESELECT')
+                                    print('obj_proxy: ',obj_proxy)
+                                    obj_proxy.select_set('SELECT')
 
-                        for obe in applinks:
-                            print('obe: ',obe)
-                            counter += 1
-                            obe.coat3D.applink_skip = 'True'
-               

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list