blender-addons/io_coat3D/folders.py
2023-07-05 09:41:03 +02:00

149 lines
4.9 KiB
Python

# SPDX-License-Identifier: GPL-2.0-or-later
import bpy
import os
def InitFolders():
platform = os.sys.platform
coat3D = bpy.context.scene.coat3D
# Global variable foundExchangeFolder (True / False) guides these steps
# 1. Read Exchange_folder.txt, if not success ->
# 2. Try to find exchange folder from system hard drive, if not success -->
# 3. Leave foundExchangeFolder = False
# 1. #################################################################
if(platform == 'win32' or platform == 'darwin'):
DC2Folder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender'
else:
DC2Folder = os.path.expanduser("~") + os.sep + '3DC2Blender'
exchangeFile = DC2Folder + os.sep + 'Exchange_folder.txt'
if(not os.path.isdir(DC2Folder)):
os.mkdir(DC2Folder)
if(not os.path.isfile(exchangeFile)):
file = open(exchangeFile, 'w')
file.close()
else:
savedExchangePath = ''
folderPath = open(exchangeFile)
for line in folderPath:
savedExchangePath = line
break
folderPath.close()
coat3D.exchangeFolder = savedExchangePath
return True, coat3D.exchangeFolder
# 2. #################################################################
if(platform == 'win32' or platform == 'darwin'):
exchangeFolder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + 'Applinks' + os.sep + '3D-Coat' + os.sep +'Exchange'
else:
exchangeFolder = os.path.expanduser("~") + os.sep + '3D-CoatV4' + os.sep + 'Exchange'
if not(os.path.isdir(exchangeFolder)):
exchangeFolder = os.path.expanduser("~") + os.sep + '3D-CoatV3' + os.sep + 'Exchange'
if(os.path.isdir(exchangeFolder)):
coat3D.exchangeFolder = exchangeFolder
Blender_folder = ("%s%sBlender"%(exchangeFolder,os.sep))
if(not(os.path.isdir(Blender_folder))):
os.makedirs(Blender_folder, mode = 0o666)
Blender_folder1 = os.path.join(Blender_folder,"run.txt")
file = open(Blender_folder1, "w")
file.close()
Blender_folder2 = os.path.join(Blender_folder, "extension.txt")
file = open(Blender_folder2, "w")
file.write("fbx")
file.close()
Blender_folder3 = os.path.join(Blender_folder, "preset.txt")
file = open(Blender_folder3, "w")
file.write("Blender Cycles")
file.close()
file = open(exchangeFile, "w")
file.write("%s"%(os.path.abspath(coat3D.exchangeFolder)))
file.close()
return True, coat3D.exchangeFolder
return False, ''
def updateExchangeFile(newPath):
platform = os.sys.platform
if(platform == 'win32' or platform == 'darwin'):
exchangeFile = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
else:
exchangeFile = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'Exchange_folder.txt'
if(os.path.isfile(exchangeFile)):
folderPath = ''
if(os.path.isfile(exchangeFile)):
file = open(exchangeFile, "w")
file.write("%s"%(newPath))
file.close()
def loadExchangeFolder():
platform = os.sys.platform
coat3D = bpy.context.scene.coat3D
if(platform == 'win32' or platform == 'darwin'):
DC2Folder = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender'
else:
DC2Folder = os.path.expanduser("~") + os.sep + '3DC2Blender'
exchangeFile = DC2Folder + os.sep + 'Exchange_folder.txt'
if(not os.path.isdir(DC2Folder)):
os.mkdir(DC2Folder)
if(not os.path.isfile(exchangeFile)):
file = open(exchangeFile, 'w')
file.close()
else:
savedExchangePath = ''
folderPath = open(exchangeFile)
for line in folderPath:
savedExchangePath = line
break
folderPath.close()
coat3D.exchangeFolder = savedExchangePath
def set_working_folders():
platform = os.sys.platform
coat3D = bpy.context.scene.coat3D
if(platform == 'win32' or platform == 'darwin'):
if (coat3D.defaultfolder != '' and os.path.isdir(coat3D.defaultfolder)):
return coat3D.defaultfolder
else:
folder_objects = os.path.expanduser("~") + os.sep + 'Documents' + os.sep + '3DC2Blender' + os.sep + 'ApplinkObjects'
if(not(os.path.isdir(folder_objects))):
os.makedirs(folder_objects, mode = 0o666)
else:
if (coat3D.defaultfolder != '' and os.path.isdir(coat3D.defaultfolder)):
return coat3D.defaultfolder
else:
folder_objects = os.path.expanduser("~") + os.sep + '3DC2Blender' + os.sep + 'ApplinkObjects'
if(not(os.path.isdir(folder_objects))):
os.makedirs(folder_objects, mode = 0o666)
return folder_objects