[Bf-extensions-cvs] [c87ee4d4] master: updating the script to work the latest 2.8

Kalle-Samuli Riihikoski noreply at git.blender.org
Sat Jul 21 06:23:12 CEST 2018


Commit: c87ee4d46f16d60a2e1db7514c8d5ab42c5d93df
Author: Kalle-Samuli Riihikoski
Date:   Sat Jul 21 04:22:24 2018 +0300
Branches: master
https://developer.blender.org/rBAc87ee4d46f16d60a2e1db7514c8d5ab42c5d93df

updating the script to work the latest 2.8

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

M	io_coat3D/__init__.py
D	io_coat3D/coat.py
M	io_coat3D/tex.py

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

diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index b5539ede..a55d8a17 100644
--- a/io_coat3D/__init__.py
+++ b/io_coat3D/__init__.py
@@ -20,7 +20,7 @@ bl_info = {
     "name": "3D-Coat Applink",
     "author": "Kalle-Samuli Riihikoski (haikalle)",
     "version": (3, 5, 22),
-    "blender": (2, 59, 0),
+    "blender": (2, 80, 0),
     "location": "Scene > 3D-Coat Applink",
     "description": "Transfer data between 3D-Coat/Blender",
     "warning": "",
@@ -35,9 +35,14 @@ if "bpy" in locals():
     importlib.reload(coat)
     importlib.reload(tex)
 else:
-    from . import coat
     from . import tex
 
+from io_coat3D import tex
+import os
+import ntpath
+import re
+
+import time
 import bpy
 from bpy.types import PropertyGroup
 from bpy.props import (
@@ -49,244 +54,849 @@ from bpy.props import (
         )
 
 
+bpy.coat3D = dict()
+bpy.coat3D['active_coat'] = ''
+bpy.coat3D['status'] = 0
+def set_exchange_folder():
+    platform = os.sys.platform
+    coat3D = bpy.context.scene.coat3D
+    Blender_export = ""
+
+    if(platform == 'win32'):
+        exchange = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3D-CoatV4' + os.sep +'Exchange'
+        if not(os.path.isdir(exchange)):
+            exchange = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3D-CoatV3' + os.sep +'Exchange'
+    else:
+        exchange = os.path.expanduser("~") + os.sep + '3D-CoatV4' + os.sep + 'Exchange'
+        if not(os.path.isdir(exchange)):
+            exchange = os.path.expanduser("~") + os.sep + '3D-CoatV3' + os.sep + 'Exchange'
+    if(not(os.path.isdir(exchange))):
+        exchange = coat3D.exchangedir
+
+    if(os.path.isdir(exchange)):
+        bpy.coat3D['status'] = 1
+        if(platform == 'win32'):
+            exchange_path = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
+            applink_folder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender'
+            if(not(os.path.isdir(applink_folder))):
+                os.makedirs(applink_folder)
+        else:
+            exchange_path = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
+            applink_folder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender'
+            if(not(os.path.isdir(applink_folder))):
+                os.makedirs(applink_folder)
+        file = open(exchange_path, "w")
+        file.write("%s"%(coat3D.exchangedir))
+        file.close()
+
+    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
+                bpy.coat3D['status'] = 1
+            else:
+                bpy.coat3D['status'] = 0
+        else:
+            bpy.coat3D['status'] = 0
+    if(bpy.coat3D['status'] == 1):
+        Blender_folder = ("%s%sBlender"%(exchange,os.sep))
+        Blender_export = Blender_folder
+        path3b_now = exchange
+        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()
+    return exchange
+
+def set_working_folders():
+    platform = os.sys.platform
+    coat3D = bpy.context.scene.coat3D
+    if(platform == 'win32'):
+        if(bpy.data.filepath == ''):
+            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
+        else:
+            folder_objects  = os.path.dirname(bpy.data.filepath) + os.sep + '3DCApplink' + os.sep + 'Objects'
+            folder_textures = os.path.dirname(bpy.data.filepath) + os.sep + '3DCApplink' + os.sep + 'Textures' + os.sep
+            print('mitas sanoo', folder_objects)
+        if(not(os.path.isdir(folder_objects))):
+            os.makedirs(folder_objects)
+        if(not(os.path.isdir(folder_textures))):
+            os.makedirs(folder_textures)
+    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)
+
+
+    return folder_objects,folder_textures
+
+class ObjectButtonsPanel():
+    bl_space_type = 'PROPERTIES'
+    bl_region_type = 'WINDOW'
+    bl_context = "object"
+
+class SCENE_PT_Main(ObjectButtonsPanel,bpy.types.Panel):
+    bl_label = "3D-Coat Applink"
+    bl_space_type = "PROPERTIES"
+    bl_region_type = "WINDOW"
+    bl_context = "scene"
+
+    def draw(self, context):
+        layout = self.layout
+        scene = context.scene
+        me = context.scene.objects
+        mat_list = []
+        import_no = 0
+        coat = bpy.coat3D
+        coat3D = bpy.context.scene.coat3D
+        if(bpy.context.active_object):
+            coa = bpy.context.active_object.coat3D
+
+        if(bpy.coat3D['status'] == 0 and not(os.path.isdir(coat3D.exchangedir))):
+            bpy.coat3D['active_coat'] = set_exchange_folder()
+            row = layout.row()
+            row.label(text="Applink didn't find your 3d-Coat/Excahnge folder.")
+            row = layout.row()
+            row.label("Please select it before using Applink.")
+            row = layout.row()
+            row.prop(coat3D,"exchangedir",text="")
+
+        else:
+            #Here you add your GUI
+            row = layout.row()
+            row.prop(coat3D,"type",text = "")
+            row = layout.row()
+            colL = row.column()
+            colR = row.column()
+
+            colR.operator("export_applink.pilgway_3d_coat", text="Transfer")
+            colL.operator("import_applink.pilgway_3d_coat", text="Update")
+
+
+
+class SCENE_OT_export(bpy.types.Operator):
+    bl_idname = "export_applink.pilgway_3d_coat"
+    bl_label = "Export your custom property"
+    bl_description = "Export your custom property"
+    bl_options = {'UNDO'}
+
+    def invoke(self, context, event):
+        checkname = ''
+        coat3D = bpy.context.scene.coat3D
+        scene = context.scene
+        activeobj = bpy.context.active_object.name
+        coa = bpy.context.active_object.coat3D
+        coat3D.exchangedir = set_exchange_folder()
+        export_ok = False
+
+        folder_objects,folder_textures = set_working_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))
+        texturefile += ('%stextures.txt'%(os.sep))
+
+        looking = True
+        object_index = 0
+        if(coa.applink_address and os.path.isfile(coa.applink_address)):
+            checkname = coa.applink_address
+
+        else:
+            while(looking == True):
+                checkname = folder_objects + os.sep + activeobj
+                checkname = ("%s%.2d.dae"%(checkname,object_index))
+                if(os.path.isfile(checkname)):
+                    object_index += 1
+                else:
+                    looking = False
+                    coa.applink_name = ("%s%.2d"%(activeobj,object_index))
+                    coa.applink_address = checkname
+        for objekti in bpy.context.selected_objects:
+            if(objekti.material_slots.keys() == []):
+                bpy.ops.material.new()
+                objekti.data.materials.append(bpy.data.materials[-1])
+
+        bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
+        #bpy.ops.object.transforms_to_deltas(mode='ROT')
+
+        bpy.ops.wm.collada_export(filepath=coa.applink_address, selected=True,
+                                  apply_modifiers=False, triangulate=False)
+
+        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()
+        group_index = -1.0
+
+        for objekti in bpy.context.selected_objects:
+            nimi = ''
+            for koko in bpy.context.selected_objects:
+                nimi += koko.name + ':::'
+            objekti.coat3D.applink_group = nimi
+            objekti.coat3D.applink_address = coa.applink_address
+            objekti.coat3D.applink_name = coa.applink_name
+            objekti.coat3D.applink_firsttime = True
+
+        #coa.objecttime = str(os.path.getmtime(coa.applink_address))
+
+
+        return {'FINISHED'}
+
+class SCENE_OT_import(bpy.types.Operator):
+    bl_idname = "import_applink.pilgway_3d_coat"
+    bl_label = "import your custom property"
+    bl_description = "import your custom property"
+    bl_options = {'UNDO'}
+
+    def invoke(self, context, event):
+
+        coat3D = bpy.context.scene.coat3D
+        coat = bpy.coat3D
+        coat3D.exchangedir = set_exchange_folder()
+
+        folder_objects,folder_textures = set_wo

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list