1import bpy 2import os 3 4def InitFolders(): 5 6 platform = os.sys.platform 7 coat3D = bpy.context.scene.coat3D 8 9 # Global variable foundExchangeFolder (True / False) guides these steps 10 # 1. Read Exchange_folder.txt, if not success -> 11 # 2. Try to find exchange folder from system hard drive, if not success --> 12 # 3. Leave foundExchangeFolder = False 13 14 # 1. ################################################################# 15 16 if(platform == 'win32' or platform == 'darwin'): 17 exchangeFile = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt' 18 else: 19 exchangeFile = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt' 20 if(os.path.isfile(exchangeFile)): 21 folderPath = '' 22 23 folderPathh = open(exchangeFile) 24 for line in folderPathh: 25 folderPath = line 26 break 27 folderPathh.close() 28 29 if(os.path.isdir(os.path.abspath(folderPath)) and folderPath.rfind('Exchange') >= 0): 30 coat3D.exchangeFolder = folderPath 31 return True, coat3D.exchangeFolder 32 else: 33 os.makedirs(os.path.dirname(exchangeFile)) 34 35 36 # 2. ################################################################# 37 38 if(platform == 'win32' or platform == 'darwin'): 39 exchangeFolder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + 'Applinks' + os.sep + '3D-Coat' + os.sep +'Exchange' 40 else: 41 exchangeFolder = os.path.expanduser("~") + os.sep + '3D-CoatV4' + os.sep + 'Exchange' 42 if not(os.path.isdir(exchangeFolder)): 43 exchangeFolder = os.path.expanduser("~") + os.sep + '3D-CoatV3' + os.sep + 'Exchange' 44 if(os.path.isdir(exchangeFolder)): 45 coat3D.exchangeFolder = exchangeFolder 46 47 Blender_folder = ("%s%sBlender"%(exchangeFolder,os.sep)) 48 49 if(not(os.path.isdir(Blender_folder))): 50 os.makedirs(Blender_folder) 51 Blender_folder1 = os.path.join(Blender_folder,"run.txt") 52 file = open(Blender_folder1, "w") 53 file.close() 54 55 Blender_folder2 = os.path.join(Blender_folder, "extension.txt") 56 file = open(Blender_folder2, "w") 57 file.write("fbx") 58 file.close() 59 60 Blender_folder3 = os.path.join(Blender_folder, "preset.txt") 61 file = open(Blender_folder3, "w") 62 file.write("Blender Cycles") 63 file.close() 64 65 file = open(exchangeFile, "w") 66 file.write("%s"%(os.path.abspath(coat3D.exchangeFolder))) 67 file.close() 68 69 return True, coat3D.exchangeFolder 70 71 return False, '' 72 73 74def updateExchangeFile(newPath): 75 76 platform = os.sys.platform 77 78 if(platform == 'win32' or platform == 'darwin'): 79 exchangeFile = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt' 80 else: 81 exchangeFile = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt' 82 if(os.path.isfile(exchangeFile)): 83 folderPath = '' 84 85 if(os.path.isfile(exchangeFile)): 86 file = open(exchangeFile, "w") 87 file.write("%s"%(newPath)) 88 file.close() 89 90def set_working_folders(): 91 92 platform = os.sys.platform 93 coat3D = bpy.context.scene.coat3D 94 95 if(platform == 'win32' or platform == 'darwin'): 96 if (coat3D.defaultfolder != '' and os.path.isdir(coat3D.defaultfolder)): 97 return coat3D.defaultfolder 98 else: 99 folder_objects = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'ApplinkObjects' 100 if(not(os.path.isdir(folder_objects))): 101 os.makedirs(folder_objects) 102 else: 103 if (coat3D.defaultfolder != '' and os.path.isdir(coat3D.defaultfolder)): 104 return coat3D.defaultfolder 105 else: 106 folder_objects = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'ApplinkObjects' 107 if(not(os.path.isdir(folder_objects))): 108 os.makedirs(folder_objects) 109 110 return folder_objects 111