Skip to content
Snippets Groups Projects
Commit 96e13f19 authored by Kalle-Samuli Riihikoski's avatar Kalle-Samuli Riihikoski
Browse files

3D-Coat Applink version 2 released :)

parent cc14230c
No related branches found
No related tags found
No related merge requests found
...@@ -53,12 +53,17 @@ def register(): ...@@ -53,12 +53,17 @@ def register():
class ObjectCoat3D(bpy.types.PropertyGroup): class ObjectCoat3D(bpy.types.PropertyGroup):
objpath = StringProperty(name="Object_Path") objpath = StringProperty(name="Object_Path")
applink_name = StringProperty(name="Object_Applink_name")
coatpath = StringProperty(name="Coat_Path") coatpath = StringProperty(name="Coat_Path")
objectdir = StringProperty(name="ObjectPath", subtype="FILE_PATH") objectdir = StringProperty(name="ObjectPath", subtype="FILE_PATH")
objecttime = StringProperty(name="ObjectTime", subtype="FILE_PATH")
texturefolder = StringProperty(name="Texture folder:", subtype="DIR_PATH") texturefolder = StringProperty(name="Texture folder:", subtype="DIR_PATH")
path3b = StringProperty(name="3B Path", subtype="FILE_PATH") path3b = StringProperty(name="3B Path", subtype="FILE_PATH")
export_on = BoolProperty(name="Export_On", description="Add Modifiers and export",default= False) export_on = BoolProperty(name="Export_On", description="Add Modifiers and export",default= False)
dime = FloatVectorProperty(name="dime",description="Dimension")
loc = FloatVectorProperty(name="Location",description="Location")
rot = FloatVectorProperty(name="Rotation",description="Rotation",subtype='EULER')
sca = FloatVectorProperty(name="Scale",description="Scale")
class SceneCoat3D(bpy.types.PropertyGroup): class SceneCoat3D(bpy.types.PropertyGroup):
...@@ -70,6 +75,11 @@ def register(): ...@@ -70,6 +75,11 @@ def register():
name="FilePath", name="FilePath",
subtype="DIR_PATH" subtype="DIR_PATH"
) )
exchangefolder = StringProperty(
name="FilePath",
subtype="DIR_PATH"
)
...@@ -81,6 +91,11 @@ def register(): ...@@ -81,6 +91,11 @@ def register():
description="Allows to skip import dialog", description="Allows to skip import dialog",
default= True default= True
) )
exchange_found = BoolProperty(
name="Exchange Found",
description="Alert if Exchange folder is not found",
default= True
)
export_box = BoolProperty( export_box = BoolProperty(
name="Export window", name="Export window",
description="Allows to skip export dialog", description="Allows to skip export dialog",
......
...@@ -27,6 +27,53 @@ bpy.coat3D = dict() ...@@ -27,6 +27,53 @@ bpy.coat3D = dict()
bpy.coat3D['active_coat'] = '' bpy.coat3D['active_coat'] = ''
bpy.coat3D['status'] = 0 bpy.coat3D['status'] = 0
def set_folders():
platform = os.sys.platform
coat3D = bpy.context.scene.coat3D
if(platform == 'win32'):
folder_objects = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Objects'
folder_textures = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
if(not(os.path.isdir(folder_objects))):
os.makedirs(folder_objects)
if(not(os.path.isdir(folder_textures))):
os.makedirs(folder_textures)
exchange = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3D-CoatV3' + os.sep +'Exchange'
else:
folder_objects = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Objects'
folder_textures = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
if(not(os.path.isdir(folder_objects))):
os.makedirs(folder_objects)
if(not(os.path.isdir(folder_textures))):
os.makedirs(folder_textures)
exchange = os.path.expanduser("~") + os.sep + '3D-CoatV3' + os.sep +'Exchange'
if(os.path.isdir(exchange)):
coat3D.exchange_found = True
else:
if(platform == 'win32'):
exchange_path = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
else:
exchange_path = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
if(os.path.isfile(exchange_path)):
ex_path =''
ex_pathh = open(exchange_path)
for line in ex_pathh:
ex_path = line
break
ex_pathh.close()
if(os.path.isdir(ex_path) and ex_path.rfind('Exchange') >= 0):
exchange = ex_path
coat3D.exchange_found = True
else:
coat3D.exchange_found = False
else:
coat3D.exchange_found = False
return exchange,folder_objects,folder_textures
class ObjectButtonsPanel(): class ObjectButtonsPanel():
bl_space_type = 'PROPERTIES' bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW' bl_region_type = 'WINDOW'
...@@ -76,123 +123,44 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel): ...@@ -76,123 +123,44 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel):
row = layout.row() row = layout.row()
row.prop(coat3D,"type",text = "") row.prop(coat3D,"type",text = "")
row = layout.row() row = layout.row()
if(context.selected_objects and bpy.context.mode == 'OBJECT'): if(context.selected_objects):
if(context.selected_objects[0].type == 'MESH'): for selected in context.selected_objects:
row.active = True if(selected.type == 'MESH'):
else: row.active = True
row.active = False break
else:
row.active = False
else: else:
row.active = False row.active = False
if(not(bpy.context.selected_objects) and os.path.isfile(Blender_export)):
row.active = True
row.operator("import3b_applink.pilgway_3d_coat", text="Bring from 3D-Coat")
else:
colL = row.column()
colR = row.column()
colL.operator("export_applink.pilgway_3d_coat", text="Export")
colL.label(text="Export Settings:")
colL.prop(coat3D,"exportover")
if(coat3D.exportover):
colL.prop(coat3D,"exportmod")
colL.prop(coat3D,"exportfile")
colL.prop(coat3D,"export_pos")
colR.operator("import_applink.pilgway_3d_coat", text="Import")
colR.label(text="Import Settings:")
colR.prop(coat3D,"importmesh")
colR.prop(coat3D,"importmod")
colR.prop(coat3D,"importtextures")
# This is Disabled, because of the blender bug.
#colR.prop(coat3D,"importlevel")
row = layout.row()
if(bpy.context.selected_objects): colL = row.column()
if(context.selected_objects[0].type == 'MESH'): colR = row.column()
coa = context.selected_objects[0].coat3D
colL = row.column() colR.operator("export_applink.pilgway_3d_coat", text="Transfer")
colR = row.column()
colL.label(text="Object Path:") colL.operator("import_applink.pilgway_3d_coat", text="Update")
if(coa.path3b):
colR.active = True
else:
colR.active = False
colR.operator("import_applink.pilgway_3d_coat_3b", text="Load 3b")
row = layout.row()
row.prop(coa,"objectdir",text="")
row = layout.row()
if(context.selected_objects):
if(context.selected_objects[0].type == 'MESH'):
coa = bpy.context.selected_objects[0].coat3D
row = layout.row()
row.label(text="Texture output folder:")
row = layout.row()
row.prop(coa,"texturefolder",text="")
row = layout.row()
if(coat['status'] == 0):
row.label(text="Exchange Folder: not connected")
else:
row.label(text="Exchange Folder: connected")
class SCENE_PT_Settings(ObjectButtonsPanel,bpy.types.Panel):
bl_label = "Applink Settings"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
def draw(self, context): if(os.path.isfile(Blender_export)):
layout = self.layout
coat3D = bpy.context.scene.coat3D
row = layout.row()
if(bpy.context.selected_objects):
if(context.selected_objects[0].type == 'MESH'):
row.active = True
else:
row.active = False
row.operator("import_applink.pilgway_3d_deltex",text="Delete Textures")
row = layout.row()
row.label(text="Exchange Folder:")
row = layout.row()
row.prop(coat3D,"exchangedir",text="")
if(bpy.context.scene.objects.active):
coa = bpy.context.scene.objects.active.coat3D
row = layout.row() row = layout.row()
row.label(text="3b path:") row.operator("import3b_applink.pilgway_3d_coat", text="Bring from 3D-Coat")
if(coat3D.exchange_found == False):
row = layout.row() row = layout.row()
row.prop(coa,"path3b",text="") row.label(text="Applink didn't find your 3d-Coat/Excahnge folder.")
row = layout.row() row = layout.row()
row.label(text="Default Folder:") row.label("Please select it and press Transfer button again")
row = layout.row() row = layout.row()
row.prop(coat3D,"defaultfolder",text="") row.prop(coat3D,"exchangefolder",text="")
#colL = row.column()
#colR = row.column()
#colL.prop(coat3D,"export_box")
#colR.prop(coat3D,"import_box")
#if(not(coat3D.export_box)):
# row = layout.row()
# colL.label(text="Export settings:")
# row = layout.row()
# colL = row.column()
# colR = row.column()
# colL.prop(coat3D,"export_color")
# colL.prop(coat3D,"export_spec")
# colL.prop(coat3D,"export_normal")
# colL.prop(coat3D,"export_disp")
# colR.prop(coat3D,"export_position")
# colR.prop(coat3D,"export_export_zero_layer")
# colR.prop(coat3D,"export_coarse")
#row = layout.row()
#colL = row.column()
#colR = row.column()
class SCENE_OT_export(bpy.types.Operator): class SCENE_OT_export(bpy.types.Operator):
bl_idname = "export_applink.pilgway_3d_coat" bl_idname = "export_applink.pilgway_3d_coat"
...@@ -204,66 +172,66 @@ class SCENE_OT_export(bpy.types.Operator): ...@@ -204,66 +172,66 @@ class SCENE_OT_export(bpy.types.Operator):
checkname = '' checkname = ''
coat3D = bpy.context.scene.coat3D coat3D = bpy.context.scene.coat3D
scene = context.scene scene = context.scene
coat3D.export_on = False
activeobj = bpy.context.active_object.name activeobj = bpy.context.active_object.name
obj = scene.objects[activeobj] obj = scene.objects[activeobj]
coa = bpy.context.scene.objects.active.coat3D coa = bpy.context.scene.objects.active.coat3D
if(coa.objectdir == '' and (coat3D.defaultfolder)): coat3D.exchangedir,folder_objects,folder_textures = set_folders()
coa.objectdir = coat3D.defaultfolder
if(coat3D.exchange_found == False):
return {'FINISHED'}
importfile = coat3D.exchangedir
texturefile = coat3D.exchangedir
importfile += ('%simport.txt'%(os.sep))
texturefile += ('%stextures.txt'%(os.sep))
looking = True
object_index = 0
if(coa.applink_name and os.path.isfile(coa.applink_name)):
checkname = coa.applink_name
else: else:
while(looking == True):
checkname = folder_objects + os.sep + activeobj
checkname = ("%s%.2d.obj"%(checkname,object_index))
if(os.path.isfile(checkname)):
object_index += 1
else:
looking = False
coa.applink_name = checkname
importfile = coat3D.exchangedir bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
texturefile = coat3D.exchangedir
importfile += ('%simport.txt'%(os.sep))
texturefile += ('%stextures.txt'%(os.sep))
if(os.path.isfile(texturefile)):
os.remove(texturefile)
checkname = coa.objectdir
if(coa.objectdir[-4:] != '.obj'):
checkname += ('%s.obj'%(activeobj))
if(not(os.path.isfile(checkname)) or coat3D.exportover): coa.loc = obj.location
if(coat3D.export_pos): coa.rot = obj.rotation_euler
bpy.ops.object.transform_apply(location=True,rotation=True,scale=True) coa.sca = obj.scale
coa.dime = obj.dimensions
bpy.ops.export_scene.obj(filepath=checkname,use_selection=True,
use_apply_modifiers=coat3D.exportmod,use_blen_objects=False, group_by_material= True,
use_materials = False,keep_vertex_order = True,axis_forward='X',axis_up='Y')
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
coa.export_on = True obj.location = (0,0,0)
else: obj.rotation_euler = (0,0,0)
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN') obj.scale = (1,1,1)
coat3D.loca = obj.location
coat3D.rota = obj.rotation_euler bpy.ops.export_scene.obj(filepath=coa.applink_name,use_selection=True,
coat3D.scal = obj.scale use_apply_modifiers=False,use_blen_objects=True, group_by_material= True,
obj.location = (0,0,0) use_materials = False,keep_vertex_order = True,axis_forward='X',axis_up='Y')
obj.rotation_euler = (0,0,0)
obj.scale = (1,1,1)
bpy.ops.export_scene.obj(filepath=checkname,use_selection=True,
use_apply_modifiers=coat3D.exportmod,use_blen_objects=False, group_by_material= True,
use_materials = False,keep_vertex_order = True,axis_forward='X',axis_up='Y')
obj.location = coat3D.loca
obj.rotation_euler = coat3D.rota
obj.scale = coat3D.scal
coa.export_on = False
if(coat3D.exportfile == False):
file = open(importfile, "w")
file.write("%s"%(checkname))
file.write("\n%s"%(checkname))
file.write("\n[%s]"%(coat3D.type))
if(coa.texturefolder):
file.write("\n[TexOutput:%s"%(coa.texturefolder))
file.close()
coa.objectdir = checkname
obj.location = coa.loc
obj.rotation_euler = coa.rot
obj.scale = coa.sca
file = open(importfile, "w")
file.write("%s"%(checkname))
file.write("\n%s"%(checkname))
file.write("\n[%s]"%(coat3D.type))
file.write("\n[TexOutput:%s]"%(folder_textures))
file.close()
coa.objecttime = str(os.path.getmtime(coa.applink_name))
return {'FINISHED'} return {'FINISHED'}
class SCENE_OT_import(bpy.types.Operator): class SCENE_OT_import(bpy.types.Operator):
...@@ -278,8 +246,12 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -278,8 +246,12 @@ class SCENE_OT_import(bpy.types.Operator):
coat = bpy.coat3D coat = bpy.coat3D
test = bpy.context.selected_objects test = bpy.context.selected_objects
act_first = bpy.context.scene.objects.active act_first = bpy.context.scene.objects.active
for act_name in test: for act_name in test:
if act_name.type == 'MESH' and os.path.isfile(act_name.coat3D.objectdir): coa = act_name.coat3D
path_object = coa.applink_name
print(path_object)
if act_name.type == 'MESH' and os.path.isfile(path_object):
multires_on = False multires_on = False
activeobj = act_name.name activeobj = act_name.name
mat_list = [] mat_list = []
...@@ -287,7 +259,8 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -287,7 +259,8 @@ class SCENE_OT_import(bpy.types.Operator):
objekti = scene.objects[activeobj] objekti = scene.objects[activeobj]
coat3D.loca = objekti.location coat3D.loca = objekti.location
coat3D.rota = objekti.rotation_euler coat3D.rota = objekti.rotation_euler
coa = act_name.coat3D coat3D.dime = objekti.scale
#See if there is multres modifier. #See if there is multres modifier.
...@@ -315,40 +288,52 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -315,40 +288,52 @@ class SCENE_OT_import(bpy.types.Operator):
coat['active_coat'] = line coat['active_coat'] = line
export_file.close() export_file.close()
os.remove(exportfile) os.remove(exportfile)
if(len(objekti.material_slots) == 0):
delete_material = False
else:
delete_material = True
if(objekti.material_slots):
if(not(objekti.active_material) and objekti.material_slots):
act_mat_index = objekti.active_material_index act_mat_index = objekti.active_material_index
if(not(hasattr(objekti.active_material,'texture_slots'))): materials_old = bpy.data.materials.keys()
materials_old = bpy.data.materials.keys() bpy.ops.material.new()
bpy.ops.material.new() materials_new = bpy.data.materials.keys()
materials_new = bpy.data.materials.keys() new_ma = list(set(materials_new).difference(set(materials_old)))
new_ma = list(set(materials_new).difference(set(materials_old))) new_mat = new_ma[0]
new_mat = new_ma[0] ki = bpy.data.materials[new_mat]
ki = bpy.data.materials[new_mat] objekti.material_slots[act_mat_index].material = ki
objekti.material_slots[act_mat_index].material = ki
for obj_mat in objekti.material_slots:
mat_list.append(obj_mat.material)
if(coat3D.importmesh and os.path.isfile(coa.objectdir)): if(os.path.isfile(path_object) and (coa.objecttime != str(os.path.getmtime(path_object)))):
mtl = coa.objectdir
if(objekti.material_slots):
act_mat_index = objekti.active_material_index
for obj_mat in objekti.material_slots:
mat_list.append(obj_mat.material)
coa.dime = objekti.dimensions
coa.objecttime = str(os.path.getmtime(path_object))
mtl = coa.applink_name
mtl = mtl.replace('.obj','.mtl') mtl = mtl.replace('.obj','.mtl')
if(os.path.isfile(mtl)): if(os.path.isfile(mtl)):
os.remove(mtl) os.remove(mtl)
bpy.ops.import_scene.obj(filepath=act_name.coat3D.objectdir,axis_forward='X',axis_up='Y') bpy.ops.import_scene.obj(filepath=path_object,axis_forward='X',axis_up='Y')
obj_proxy = scene.objects[0] obj_proxy = scene.objects[0]
bpy.ops.object.select_all(action='TOGGLE') bpy.ops.object.select_all(action='TOGGLE')
obj_proxy.select = True obj_proxy.select = True
if(coa.export_on):
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
bpy.ops.object.transform_apply(rotation=True) bpy.ops.object.transform_apply(rotation=True)
proxy_mat = obj_proxy.material_slots[0].material proxy_mat = obj_proxy.material_slots[0].material
obj_proxy.data.materials.pop(0,1) if(delete_material):
proxy_mat.user_clear() obj_proxy.data.materials.pop(0,1)
bpy.data.materials.remove(proxy_mat) proxy_mat.user_clear()
bpy.data.materials.remove(proxy_mat)
bpy.ops.object.select_all(action='TOGGLE') bpy.ops.object.select_all(action='TOGGLE')
if(coat3D.importlevel): if(coat3D.importlevel):
...@@ -371,6 +356,7 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -371,6 +356,7 @@ class SCENE_OT_import(bpy.types.Operator):
obj_proxy.select = True obj_proxy.select = True
bpy.ops.object.delete() bpy.ops.object.delete()
objekti.select = True objekti.select = True
objekti.scale = coat3D.dime
bpy.context.scene.objects.active = objekti bpy.context.scene.objects.active = objekti
if(os.path.isfile(path3b_n)): if(os.path.isfile(path3b_n)):
...@@ -380,7 +366,7 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -380,7 +366,7 @@ class SCENE_OT_import(bpy.types.Operator):
path3b_fil.close() path3b_fil.close()
os.remove(path3b_n) os.remove(path3b_n)
if(coat3D.importmesh and not(os.path.isfile(coa.objectdir))): if(coat3D.importmesh and not(os.path.isfile(path_object))):
coat3D.importmesh = False coat3D.importmesh = False
if(mat_list and coat3D.importmesh): if(mat_list and coat3D.importmesh):
...@@ -397,13 +383,10 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -397,13 +383,10 @@ class SCENE_OT_import(bpy.types.Operator):
if tex_slot.texture.image is not None: if tex_slot.texture.image is not None:
tex_slot.texture.image.reload() tex_slot.texture.image.reload()
if(coat3D.importmod):
for mod_index in objekti.modifiers[:]:
objekti.modifiers.remove(mod_index)
if(coat3D.importtextures): if(coat3D.importtextures):
export = '' export = ''
tex.gettex(mat_list,objekti,scene,export) tex.gettex(mat_list,objekti,scene,export)
if(multires_on): if(multires_on):
temp_file = coat3D.exchangedir temp_file = coat3D.exchangedir
...@@ -420,7 +403,7 @@ class SCENE_OT_import(bpy.types.Operator): ...@@ -420,7 +403,7 @@ class SCENE_OT_import(bpy.types.Operator):
#bpy.ops.object.multires_external_pack() #bpy.ops.object.multires_external_pack()
bpy.ops.object.shade_smooth() bpy.ops.object.shade_smooth()
for act_name in test: for act_name in test:
act_name.select = True act_name.select = True
bpy.context.scene.objects.active = act_first bpy.context.scene.objects.active = act_first
...@@ -471,7 +454,7 @@ class SCENE_OT_import3b(bpy.types.Operator): ...@@ -471,7 +454,7 @@ class SCENE_OT_import3b(bpy.types.Operator):
for palikka in bpy.context.scene.objects: for palikka in bpy.context.scene.objects:
if(palikka.type == 'MESH'): if(palikka.type == 'MESH'):
if(palikka.coat3D.objectdir == export): if(palikka.coat3D.objectdir == export): #objectdir muutettava
import_no = 1 import_no = 1
target = palikka target = palikka
break break
...@@ -483,7 +466,8 @@ class SCENE_OT_import3b(bpy.types.Operator): ...@@ -483,7 +466,8 @@ class SCENE_OT_import3b(bpy.types.Operator):
bpy.ops.import_scene.obj(filepath=obj_path,axis_forward='X',axis_up='Y') bpy.ops.import_scene.obj(filepath=obj_path,axis_forward='X',axis_up='Y')
bpy.ops.object.transform_apply(rotation=True) bpy.ops.object.transform_apply(rotation=True)
new_obj = scene.objects[0] new_obj = scene.objects[0]
scene.objects[0].coat3D.objectdir = export new_obj.coat3D.applink_name = obj_path
scene.objects[0].coat3D.objectdir = export #objectdir muutettava
if(path_on): if(path_on):
scene.objects[0].coat3D.path3b = path_export scene.objects[0].coat3D.path3b = path_export
...@@ -535,11 +519,11 @@ class SCENE_OT_deltex(bpy.types.Operator): ...@@ -535,11 +519,11 @@ class SCENE_OT_deltex(bpy.types.Operator):
coat3D = bpy.context.scene.coat3D coat3D = bpy.context.scene.coat3D
coa = bpy.context.scene.objects.active.coat3D coa = bpy.context.scene.objects.active.coat3D
scene = context.scene scene = context.scene
nimi = tex.objname(coa.objectdir) nimi = tex.objname(coa.objectdir) #objectdir muutettava
if(coa.texturefolder): if(coa.texturefolder):
osoite = os.path.dirname(coa.texturefolder) + os.sep osoite = os.path.dirname(coa.texturefolder) + os.sep
else: else:
osoite = os.path.dirname(coa.objectdir) + os.sep osoite = os.path.dirname(coa.objectdir) + os.sep #objectdir muutettava
just_nimi = tex.justname(nimi) just_nimi = tex.justname(nimi)
just_nimi += '_' just_nimi += '_'
...@@ -639,8 +623,6 @@ class VIEW3D_MT_ExportMenu(bpy.types.Menu): ...@@ -639,8 +623,6 @@ class VIEW3D_MT_ExportMenu(bpy.types.Menu):
layout.prop(coat3D,"exportover") layout.prop(coat3D,"exportover")
if(coat3D.exportover): if(coat3D.exportover):
layout.prop(coat3D,"exportmod") layout.prop(coat3D,"exportmod")
layout.prop(coat3D,"exportfile")
layout.prop(coat3D,"export_pos")
class VIEW3D_MT_ExtraMenu(bpy.types.Menu): class VIEW3D_MT_ExtraMenu(bpy.types.Menu):
bl_label = "Extra" bl_label = "Extra"
......
...@@ -31,6 +31,7 @@ def find_index(objekti): ...@@ -31,6 +31,7 @@ def find_index(objekti):
def gettex(mat_list, objekti, scene,export): def gettex(mat_list, objekti, scene,export):
coat3D = bpy.context.scene.coat3D coat3D = bpy.context.scene.coat3D
coa = objekti.coat3D
if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'): if(bpy.context.scene.render.engine == 'VRAY_RENDER' or bpy.context.scene.render.engine == 'VRAY_RENDER_PREVIEW'):
vray = True vray = True
...@@ -57,7 +58,7 @@ def gettex(mat_list, objekti, scene,export): ...@@ -57,7 +58,7 @@ def gettex(mat_list, objekti, scene,export):
if(export): if(export):
objekti.coat3D.objpath = export objekti.coat3D.objpath = export
nimi = os.path.split(export)[1] nimi = os.path.split(export)[1]
osoite = os.path.dirname(export) + os.sep osoite = os.path.dirname(export) + os.sep #pitaa ehka muuttaa
for mate in objekti.material_slots: for mate in objekti.material_slots:
for tex_slot in mate.material.texture_slots: for tex_slot in mate.material.texture_slots:
if(hasattr(tex_slot,'texture')): if(hasattr(tex_slot,'texture')):
...@@ -65,19 +66,20 @@ def gettex(mat_list, objekti, scene,export): ...@@ -65,19 +66,20 @@ def gettex(mat_list, objekti, scene,export):
if tex_slot.texture.image is not None: if tex_slot.texture.image is not None:
tex_slot.texture.image.reload() tex_slot.texture.image.reload()
else: else:
coa = objekti.coat3D if(os.sys.platform == 'win32'):
nimi = os.path.split(coa.objectdir)[1] osoite = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
if(coa.texturefolder):
osoite = os.path.dirname(coa.texturefolder) + os.sep
else: else:
osoite = os.path.dirname(coa.objectdir) + os.sep osoite = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
just_nimi = os.path.splitext(nimi)[0] + '_' ki = os.path.split(coa.applink_name)[1]
ko = os.path.splitext(ki)[0]
just_nimi = ko + '_'
just_nimi_len = len(just_nimi) just_nimi_len = len(just_nimi)
print('terve:' + coa.applink_name)
if(len(objekti.material_slots) != 0): if(len(objekti.material_slots) != 0):
for obj_tex in objekti.active_material.texture_slots: for obj_tex in objekti.active_material.texture_slots:
if(hasattr(obj_tex,'texture')): if(hasattr(obj_tex,'texture')):
if(obj_tex.texture): if(obj_tex.texture.type == 'IMAGE'):
if(obj_tex.use_map_color_diffuse): if(obj_tex.use_map_color_diffuse):
bring_color = 0; bring_color = 0;
if(obj_tex.use_map_specular): if(obj_tex.use_map_specular):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment