I am writing a suite of file organization for blender (very similar to Mays' New Project, Set Project and Edit Current).
------------------------------------------------------------------------------------
import Blender
from Blender import Window, Draw, Registry
from os import mkdir
scriptname = "newproject"
docache = True
blendfile = "Base.blend"
# Add the current project to the list of previously created projects
def UpdateRegistry(projectpath):
scriptdata = Registry.GetKey(scriptname, docache)
scriptdata['past'].append(projectpath)
Registry.SetKey(scriptname, scriptdata, docache)
# Save a default blender file in the new projects directory
def SaveBlenderFile(projectpath):
filepath = projectpath + blendfile
print "\t1. Saving Blender file %s" % (filepath)
Blender.Save(filepath, 1)
return filepath
# Create sub-directories inside the projects directory for organizing data
def CreateProjectDirectoryTree(projectpath):
dirs2make = ["images", "tmp", "ref", "doc", "final"]
print "\t2. Creating sub-directories:"
for dir in dirs2make:
path = projectpath + dir
print "\t\t %s" % (path)
mkdir(path)
# On setting a new project, the FileSelector calls this function
def NewProject(projectpath):
print "Creating new project %s" % (projectpath)
filepath = SaveBlenderFile(projectpath)
CreateProjectDirectoryTree(projectpath)
UpdateRegistry(projectpath)
Blender.Load(filepath)
# This script stores inforamtion in a config file for later introspection
if not Registry.GetKey(scriptname, docache):
scriptdata = {}
scriptdata['past'] = []
Registry.SetKey(scriptname, scriptdata, docache)
# Open the file selector so that the user can create a new project
# The project directory is created by the FileSelector itself.
# The script creates the project sub-directories
Window.FileSelector (NewProject, "Create New Project", "")
