Skip to content
Snippets Groups Projects
folders.py 4.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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'
    
            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
    
            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'
    
            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