Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io_coat3D/coat.py227
1 files changed, 74 insertions, 153 deletions
diff --git a/io_coat3D/coat.py b/io_coat3D/coat.py
index 4a23603d..d1c0cca7 100644
--- a/io_coat3D/coat.py
+++ b/io_coat3D/coat.py
@@ -97,45 +97,23 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel):
if(bpy.context.scene.objects.active):
coa = bpy.context.scene.objects.active.coat3D
- if(os.path.isdir(coat3D.exchangedir)):
- foldder = coat3D.exchangedir
- if(foldder.rfind('Exchange') >= 0):
- coat['status'] = 1
- else:
- coat['status'] = 0
- else:
- coat['status'] = 0
-
- if(coat['status'] == 1):
- Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep))
- Blender_export = Blender_folder
- path3b_now = coat3D.exchangedir
- path3b_now += ('last_saved_3b_file.txt')
- Blender_export += ('%sexport.txt'%(os.sep))
+
+ Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep))
+ Blender_export = Blender_folder
+ path3b_now = coat3D.exchangedir
+ path3b_now += ('last_saved_3b_file.txt')
+ Blender_export += ('%sexport.txt'%(os.sep))
- if(not(os.path.isdir(Blender_folder))):
- os.makedirs(Blender_folder)
- Blender_folder = os.path.join(Blender_folder,"run.txt")
- file = open(Blender_folder, "w")
- file.close()
+ if(not(os.path.isdir(Blender_folder))):
+ os.makedirs(Blender_folder)
+ Blender_folder = os.path.join(Blender_folder,"run.txt")
+ file = open(Blender_folder, "w")
+ file.close()
#Here you add your GUI
row = layout.row()
row.prop(coat3D,"type",text = "")
row = layout.row()
- if(context.selected_objects):
- for selected in context.selected_objects:
- if(selected.type == 'MESH'):
- row.active = True
- break
- else:
- row.active = False
- else:
- row.active = False
-
-
-
-
colL = row.column()
colR = row.column()
@@ -143,10 +121,6 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel):
colL.operator("import_applink.pilgway_3d_coat", text="Update")
- if(os.path.isfile(Blender_export)):
- row = layout.row()
- row.operator("import3b_applink.pilgway_3d_coat", text="Bring from 3D-Coat")
-
if(coat3D.exchange_found == False):
row = layout.row()
row.label(text="Applink didn't find your 3d-Coat/Excahnge folder.")
@@ -175,12 +149,22 @@ class SCENE_OT_export(bpy.types.Operator):
activeobj = bpy.context.active_object.name
obj = scene.objects[activeobj]
coa = bpy.context.scene.objects.active.coat3D
+ export_ok = False
coat3D.exchangedir,folder_objects,folder_textures = set_folders()
if(coat3D.exchange_found == False):
return {'FINISHED'}
+ if(bpy.context.selected_objects == []):
+ return {'FINISHED'}
+ else:
+ for objec in bpy.context.selected_objects:
+ if objec.type == 'MESH':
+ export_ok = True
+ if(export_ok == False):
+ return {'FINISHED'}
+
importfile = coat3D.exchangedir
texturefile = coat3D.exchangedir
importfile += ('%simport.txt'%(os.sep))
@@ -260,6 +244,29 @@ class SCENE_OT_import(bpy.types.Operator):
act_first = bpy.context.scene.objects.active
bpy.context.scene.game_settings.material_mode = 'GLSL'
+ coat3D.exchangedir,folder_objects,folder_textures = set_folders()
+
+ Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep))
+ Blender_export = Blender_folder
+ path3b_now = coat3D.exchangedir
+ path3b_now += ('last_saved_3b_file.txt')
+ Blender_export += ('%sexport.txt'%(os.sep))
+ new_applink_name = 'False'
+ new_object = False
+ print(Blender_export)
+ if(os.path.isfile(Blender_export)):
+ obj_pathh = open(Blender_export)
+ new_object = True
+ for line in obj_pathh:
+ new_applink_name = line
+ break
+ obj_pathh.close()
+
+ for scene_objects in bpy.context.scene.objects:
+ if(scene_objects.type == 'MESH'):
+ if(scene_objects.coat3D.applink_name == new_applink_name):
+ new_object = False
+
for act_name in test:
coa = act_name.coat3D
path_object = coa.applink_name
@@ -421,132 +428,46 @@ class SCENE_OT_import(bpy.types.Operator):
act_name.select = True
bpy.context.scene.objects.active = act_first
- return {'FINISHED'}
-
-class SCENE_OT_import3b(bpy.types.Operator):
- bl_idname = "import3b_applink.pilgway_3d_coat"
- bl_label = "Brings mesh from 3D-Coat"
- bl_description = "Bring 3D-Coat Mesh"
- bl_options = {'UNDO'}
-
- def invoke(self, context, event):
-
- coat3D = bpy.context.scene.coat3D
- scene = context.scene
-
- Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep))
- Blender_export = Blender_folder
- path3b_now = coat3D.exchangedir
- path3b_now += ('last_saved_3b_file.txt')
- Blender_export += ('%sexport.txt'%(os.sep))
-
- import_no = 0
- mat_list = []
- obj_path =''
-
- obj_pathh = open(Blender_export)
- for line in obj_pathh:
- obj_path = line
- break
- obj_pathh.close()
- export = obj_path
- mod_time = os.path.getmtime(obj_path)
- mtl_list = obj_path.replace('.obj','.mtl')
- if(os.path.isfile(mtl_list)):
- os.remove(mtl_list)
+ if(new_object == True):
+ coat3D = bpy.context.scene.coat3D
+ scene = context.scene
- if(os.path.isfile(path3b_now)):
- path3b_file = open(path3b_now)
- for lin in path3b_file:
- path_export = lin
- path_on = 1
- path3b_file.close()
- os.remove(path3b_now)
- else:
- path_on = 0
-
- for palikka in bpy.context.scene.objects:
- if(palikka.type == 'MESH'):
- if(palikka.coat3D.objectdir == export): #objectdir muutettava
- import_no = 1
- target = palikka
- break
-
- if(import_no):
- new_obj = palikka
- import_no = 0
- else:
- bpy.ops.import_scene.obj(filepath=obj_path,axis_forward='X',axis_up='Y')
+ Blender_folder = ("%s%sBlender"%(coat3D.exchangedir,os.sep))
+ Blender_export = Blender_folder
+ path3b_now = coat3D.exchangedir
+ path3b_now += ('last_saved_3b_file.txt')
+ Blender_export += ('%sexport.txt'%(os.sep))
+
+
+ mat_list = []
+ obj_path =''
+
+
+ export = new_applink_name
+ mod_time = os.path.getmtime(new_applink_name)
+ mtl_list = new_applink_name.replace('.obj','.mtl')
+ if(os.path.isfile(mtl_list)):
+ os.remove(mtl_list)
+
+ bpy.ops.import_scene.obj(filepath=new_applink_name,axis_forward='X',axis_up='Y')
bpy.ops.object.transform_apply(rotation=True)
new_obj = scene.objects[0]
new_obj.coat3D.applink_name = obj_path
- scene.objects[0].coat3D.objectdir = export #objectdir muutettava
- if(path_on):
- scene.objects[0].coat3D.path3b = path_export
+ scene.objects[0].coat3D.applink_name = export #objectdir muutettava
+
+ os.remove(Blender_export)
- os.remove(Blender_export)
-
- bpy.context.scene.objects.active = new_obj
+ bpy.context.scene.objects.active = new_obj
- bpy.ops.object.shade_smooth()
-
- Blender_tex = ("%s%stextures.txt"%(coat3D.exchangedir,os.sep))
- mat_list.append(new_obj.material_slots[0].material)
- tex.gettex(mat_list, new_obj, scene,export)
-
- return {'FINISHED'}
-
-class SCENE_OT_load3b(bpy.types.Operator):
- bl_idname = "import_applink.pilgway_3d_coat_3b"
- bl_label = "Loads 3b linked into object"
- bl_description = "Loads 3b linked into object"
-
-
- def invoke(self, context, event):
- checkname = ''
- coa = bpy.context.scene.objects.active.coat3D
- if(coa.path3b):
- coat3D = bpy.context.scene.coat3D
- scene = context.scene
- importfile = coat3D.exchangedir
- importfile += ('%simport.txt'%(os.sep))
-
- coat_path = bpy.context.active_object.coat3D.path3b
-
- file = open(importfile, "w")
- file.write("%s"%(coat_path))
- file.write("\n%s"%(coat_path))
- file.write("\n[3B]")
- file.close()
+ bpy.ops.object.shade_smooth()
+
+ Blender_tex = ("%s%stextures.txt"%(coat3D.exchangedir,os.sep))
+ mat_list.append(new_obj.material_slots[0].material)
+ tex.gettex(mat_list, new_obj, scene,export)
return {'FINISHED'}
-class SCENE_OT_deltex(bpy.types.Operator):
- bl_idname = "import_applink.pilgway_3d_deltex" # XXX, name?
- bl_label = "Picks Object's name into path"
- bl_description = "Loads 3b linked into object"
- def invoke(self, context, event):
- if(bpy.context.selected_objects):
- if(context.selected_objects[0].type == 'MESH'):
- coat3D = bpy.context.scene.coat3D
- coa = bpy.context.scene.objects.active.coat3D
- scene = context.scene
- nimi = tex.objname(coa.objectdir) #objectdir muutettava
- if(coa.texturefolder):
- osoite = os.path.dirname(coa.texturefolder) + os.sep
- else:
- osoite = os.path.dirname(coa.objectdir) + os.sep #objectdir muutettava
- just_nimi = tex.justname(nimi)
- just_nimi += '_'
-
- files = os.listdir(osoite)
- for i in files:
- if(i.rfind(just_nimi) >= 0):
- del_osoite = osoite + i
- os.remove(del_osoite)
-
- return {'FINISHED'}
from bpy import *
from mathutils import Vector, Matrix