[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