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