From 96e13f19828fbf7746ba1077cae55da3a0326cf6 Mon Sep 17 00:00:00 2001
From: Kalle-Samuli Riihikoski <haikalle@gmail.com>
Date: Thu, 13 Oct 2011 07:45:35 +0000
Subject: [PATCH] 3D-Coat Applink version 2 released :)

---
 io_coat3D/__init__.py |  17 +-
 io_coat3D/coat.py     | 362 ++++++++++++++++++++----------------------
 io_coat3D/tex.py      |  18 ++-
 3 files changed, 198 insertions(+), 199 deletions(-)

diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index 38f2cb224..f051db3cd 100644
--- a/io_coat3D/__init__.py
+++ b/io_coat3D/__init__.py
@@ -53,12 +53,17 @@ def register():
     
     class ObjectCoat3D(bpy.types.PropertyGroup):
         objpath = StringProperty(name="Object_Path")
+        applink_name = StringProperty(name="Object_Applink_name")
         coatpath = StringProperty(name="Coat_Path")
         objectdir = StringProperty(name="ObjectPath", subtype="FILE_PATH")
+        objecttime = StringProperty(name="ObjectTime", subtype="FILE_PATH")
         texturefolder = StringProperty(name="Texture folder:", subtype="DIR_PATH")
         path3b = StringProperty(name="3B Path", subtype="FILE_PATH")
         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):
 
@@ -70,6 +75,11 @@ def register():
             name="FilePath",
             subtype="DIR_PATH"
         )
+        exchangefolder = StringProperty(
+            name="FilePath",
+            subtype="DIR_PATH"
+        )
+
 
     
         
@@ -81,6 +91,11 @@ def register():
             description="Allows to skip import dialog",
             default= True
         )
+        exchange_found = BoolProperty(
+            name="Exchange Found",
+            description="Alert if Exchange folder is not found",
+            default= True
+        )
         export_box = BoolProperty(
             name="Export window",
             description="Allows to skip export dialog",
diff --git a/io_coat3D/coat.py b/io_coat3D/coat.py
index a6a9c616d..5eb05e7b9 100644
--- a/io_coat3D/coat.py
+++ b/io_coat3D/coat.py
@@ -27,6 +27,53 @@ bpy.coat3D = dict()
 bpy.coat3D['active_coat'] = ''
 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():
     bl_space_type = 'PROPERTIES'
     bl_region_type = 'WINDOW'
@@ -76,123 +123,44 @@ class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel):
         row = layout.row()
         row.prop(coat3D,"type",text = "")
         row = layout.row()
-        if(context.selected_objects and bpy.context.mode == 'OBJECT'):
-            if(context.selected_objects[0].type == 'MESH'):
-                row.active = True
-            else:
-                row.active = False
+        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
 
-        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):
-            if(context.selected_objects[0].type == 'MESH'):
-                coa = context.selected_objects[0].coat3D
-                colL = row.column()
-                colR = row.column()
-                colL.label(text="Object Path:")
-                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"
+        colL = row.column()
+        colR = row.column()
+    
+        colR.operator("export_applink.pilgway_3d_coat", text="Transfer")
+           
+        colL.operator("import_applink.pilgway_3d_coat", text="Update")
 
-    def draw(self, context):
-        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
+        if(os.path.isfile(Blender_export)):
             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.prop(coa,"path3b",text="")
+            row.label(text="Applink didn't find your 3d-Coat/Excahnge folder.")
             row = layout.row()
-            row.label(text="Default Folder:")
+            row.label("Please select it and press Transfer button again")
             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):
     bl_idname = "export_applink.pilgway_3d_coat"
@@ -204,66 +172,66 @@ class SCENE_OT_export(bpy.types.Operator):
         checkname = ''
         coat3D = bpy.context.scene.coat3D
         scene = context.scene
-        coat3D.export_on = False
         activeobj = bpy.context.active_object.name
         obj = scene.objects[activeobj]
         coa = bpy.context.scene.objects.active.coat3D
 
-        if(coa.objectdir == '' and (coat3D.defaultfolder)):
-            coa.objectdir = coat3D.defaultfolder
+        coat3D.exchangedir,folder_objects,folder_textures = set_folders()
+
+        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:
+            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
-            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))
+        bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
 
-            if(not(os.path.isfile(checkname)) or coat3D.exportover):
-                if(coat3D.export_pos):
-                    bpy.ops.object.transform_apply(location=True,rotation=True,scale=True)
+        coa.loc = obj.location
+        coa.rot = obj.rotation_euler
+        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
-                else:
-                    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='MEDIAN')
-                    coat3D.loca = obj.location
-                    coat3D.rota = obj.rotation_euler
-                    coat3D.scal = obj.scale
-                    obj.location = (0,0,0)
-                    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 = (0,0,0)
+        obj.rotation_euler = (0,0,0)
+        obj.scale = (1,1,1)
+
+        bpy.ops.export_scene.obj(filepath=coa.applink_name,use_selection=True,
+        use_apply_modifiers=False,use_blen_objects=True, group_by_material= True,
+        use_materials = False,keep_vertex_order = True,axis_forward='X',axis_up='Y')
+        
 
+        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'}
 
 class SCENE_OT_import(bpy.types.Operator):
@@ -278,8 +246,12 @@ class SCENE_OT_import(bpy.types.Operator):
         coat = bpy.coat3D
         test = bpy.context.selected_objects
         act_first = bpy.context.scene.objects.active
+
         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
                 activeobj = act_name.name
                 mat_list = []
@@ -287,7 +259,8 @@ class SCENE_OT_import(bpy.types.Operator):
                 objekti = scene.objects[activeobj]
                 coat3D.loca = objekti.location
                 coat3D.rota = objekti.rotation_euler
-                coa = act_name.coat3D
+                coat3D.dime = objekti.scale
+                
 
                 
                 #See if there is multres modifier. 
@@ -315,40 +288,52 @@ class SCENE_OT_import(bpy.types.Operator):
                             coat['active_coat'] = line
                     export_file.close()
                     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
-                    if(not(hasattr(objekti.active_material,'texture_slots'))):
-                        materials_old = bpy.data.materials.keys()
-                        bpy.ops.material.new()
-                        materials_new = bpy.data.materials.keys()
-                        new_ma = list(set(materials_new).difference(set(materials_old)))
-                        new_mat = new_ma[0]
-                        ki = bpy.data.materials[new_mat]
-                        objekti.material_slots[act_mat_index].material = ki
-                    for obj_mat in objekti.material_slots:
-                        mat_list.append(obj_mat.material)
+                    materials_old = bpy.data.materials.keys()
+                    bpy.ops.material.new()
+                    materials_new = bpy.data.materials.keys()
+                    new_ma = list(set(materials_new).difference(set(materials_old)))
+                    new_mat = new_ma[0]
+                    ki = bpy.data.materials[new_mat]
+                    objekti.material_slots[act_mat_index].material = ki
+                 
 
                  
-                if(coat3D.importmesh and os.path.isfile(coa.objectdir)):
-                    mtl = coa.objectdir
+                if(os.path.isfile(path_object) and (coa.objecttime != str(os.path.getmtime(path_object)))):
+
+                    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')
                     if(os.path.isfile(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]
                     bpy.ops.object.select_all(action='TOGGLE')
                     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)
                     proxy_mat = obj_proxy.material_slots[0].material
-                    obj_proxy.data.materials.pop(0,1)
-                    proxy_mat.user_clear()
-                    bpy.data.materials.remove(proxy_mat)
+                    if(delete_material):
+                        obj_proxy.data.materials.pop(0,1)
+                        proxy_mat.user_clear()
+                        bpy.data.materials.remove(proxy_mat)
                     bpy.ops.object.select_all(action='TOGGLE')
 
                     if(coat3D.importlevel):
@@ -371,6 +356,7 @@ class SCENE_OT_import(bpy.types.Operator):
                     obj_proxy.select = True
                     bpy.ops.object.delete()
                     objekti.select = True
+                    objekti.scale = coat3D.dime
                     bpy.context.scene.objects.active = objekti
 
                 if(os.path.isfile(path3b_n)):
@@ -380,7 +366,7 @@ class SCENE_OT_import(bpy.types.Operator):
                     path3b_fil.close()
                     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
 
                 if(mat_list and coat3D.importmesh):
@@ -397,13 +383,10 @@ class SCENE_OT_import(bpy.types.Operator):
                                         if tex_slot.texture.image is not None:
                                             tex_slot.texture.image.reload()
                                                                 
-                if(coat3D.importmod):
-                    for mod_index in objekti.modifiers[:]:
-                        objekti.modifiers.remove(mod_index)
                         
                 if(coat3D.importtextures):
-                                export = ''
-                                tex.gettex(mat_list,objekti,scene,export)
+                    export = ''
+                    tex.gettex(mat_list,objekti,scene,export)
 
                 if(multires_on):
                     temp_file = coat3D.exchangedir
@@ -420,7 +403,7 @@ class SCENE_OT_import(bpy.types.Operator):
                     #bpy.ops.object.multires_external_pack()
                 bpy.ops.object.shade_smooth()
                 
-                
+              
         for act_name in test:
             act_name.select = True
         bpy.context.scene.objects.active = act_first
@@ -471,7 +454,7 @@ class SCENE_OT_import3b(bpy.types.Operator):
 
         for palikka in bpy.context.scene.objects:
             if(palikka.type == 'MESH'):
-                if(palikka.coat3D.objectdir == export):
+                if(palikka.coat3D.objectdir == export): #objectdir muutettava
                     import_no = 1
                     target = palikka
                     break
@@ -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.object.transform_apply(rotation=True)
             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):
                 scene.objects[0].coat3D.path3b = path_export
             
@@ -535,11 +519,11 @@ class SCENE_OT_deltex(bpy.types.Operator):
                 coat3D = bpy.context.scene.coat3D
                 coa = bpy.context.scene.objects.active.coat3D
                 scene = context.scene
-                nimi = tex.objname(coa.objectdir)
+                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
+                    osoite = os.path.dirname(coa.objectdir) + os.sep #objectdir muutettava
                 just_nimi = tex.justname(nimi)
                 just_nimi += '_'
 
@@ -639,8 +623,6 @@ class VIEW3D_MT_ExportMenu(bpy.types.Menu):
         layout.prop(coat3D,"exportover")
         if(coat3D.exportover):
            layout.prop(coat3D,"exportmod")
-        layout.prop(coat3D,"exportfile")
-        layout.prop(coat3D,"export_pos")
 
 class VIEW3D_MT_ExtraMenu(bpy.types.Menu):
     bl_label = "Extra"
diff --git a/io_coat3D/tex.py b/io_coat3D/tex.py
index 816dacd32..cd3c6e74f 100644
--- a/io_coat3D/tex.py
+++ b/io_coat3D/tex.py
@@ -31,6 +31,7 @@ def find_index(objekti):
 def gettex(mat_list, objekti, scene,export):
 
     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'):
         vray = True
@@ -57,7 +58,7 @@ def gettex(mat_list, objekti, scene,export):
     if(export):
         objekti.coat3D.objpath = export
         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 tex_slot in mate.material.texture_slots:
                 if(hasattr(tex_slot,'texture')):
@@ -65,19 +66,20 @@ def gettex(mat_list, objekti, scene,export):
                         if tex_slot.texture.image is not None:
                             tex_slot.texture.image.reload()
     else:
-        coa = objekti.coat3D
-        nimi = os.path.split(coa.objectdir)[1]
-        if(coa.texturefolder):
-            osoite = os.path.dirname(coa.texturefolder) + os.sep
+        if(os.sys.platform == 'win32'):
+                osoite = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
         else:
-            osoite = os.path.dirname(coa.objectdir) + os.sep
-    just_nimi = os.path.splitext(nimi)[0] + '_'
+                osoite = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Textures' + os.sep
+    ki = os.path.split(coa.applink_name)[1]
+    ko = os.path.splitext(ki)[0]
+    just_nimi = ko + '_'
     just_nimi_len = len(just_nimi)
+    print('terve:' + coa.applink_name)
         
     if(len(objekti.material_slots) != 0):
         for obj_tex in objekti.active_material.texture_slots:
             if(hasattr(obj_tex,'texture')):
-                if(obj_tex.texture):
+                if(obj_tex.texture.type == 'IMAGE'):
                     if(obj_tex.use_map_color_diffuse):
                         bring_color = 0;
                     if(obj_tex.use_map_specular):
-- 
GitLab