[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