Inside Sabertooth
Learn how Sabertooth uses 3ds Max to create 3D interactive projects, including HBO Go’s Game of Thrones interactive experience
  • 1/3
You are here: Forum Home / Autodesk® Maya® / Python / Setting MAYA_SHELF_PATH and userSetup.py?
  RSS 2.0 ATOM  

Setting MAYA_SHELF_PATH and userSetup.py?
Rate this thread
 
51474
 
Permlink of this thread  
avatar
  • gordrob
  • Posted: 19 January 2011 04:54 AM
  • Total Posts: 1
  • Joined: 19 January 2011 12:39 PM

Running Maya 2009 on Windows XP.

I am trying to use userSetup.py to set some Maya environment variables so Maya can load some custom shelves and their linked scripts, icons and plug-ins from a folder that Maya normally wouldn’t load shelves from.

userSetup.py

# Python imports
import os.path

# Maya imports
import maya.mel as mel

# get location of local perforce depot=
perforceDepot r"C:\working\depot"

# add appropriate common tools paths to the maya environment variables
environmentVariableNamesToPathsToAdd {
    
"MAYA_SHELF_PATH" r"Tools\Maya\Shelves\2009",
    
"MAYA_SCRIPT_PATH" r"Tools\Maya\MelScripts",
    
"XBMLANGPATH" r"Tools\Maya\Icons",
    
"MAYA_PLUG_IN_PATH" r"Tools\Maya\Plugins\2009",
    
"PYTHONPATH" r"Tools\Maya\Python",
}

for namepath in environmentVariableNamesToPathsToAdd.items():
    print 
name
    originalPath 
mel.eval( 'getenv "%s"' name )
    
print "\tbefore: %s" originalPath
    modifiedPath 
os.path.joinperforceDepotpath )
    if 
originalPath != ""
        
modifiedPath ";".join( (originalPathmodifiedPath) )
    
melCommand 'putenv "%s" "%s"' %(namemodifiedPath)
    
melCommand melCommand.replace"\\""\\\\" )
    
mel.eval( melCommand )
    modifiedPath 
mel.eval( 'getenv "%s"' name )
    
print "\t after: %s" modifiedPath

The output from Maya’s Output Window looks correct…

MAYA_SCRIPT_PATH
 before
C:/Documents and Settings/Rob/My Documents/maya/projects/default/mel;C:/Documents and Settings/Rob/My Documents/maya/2009/scripts;C:/Documents and Settings/Rob/My Documents/maya/scripts;C:/Documents and Settings/Rob/My Documents/maya/2009/presets;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/shelves;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/markingMenus;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/scripts;C:/Program Files/Autodesk/Maya2009/scripts;C:/Program Files/Autodesk/Maya2009/scripts/startup;C:/Program Files/Autodesk/Maya2009/scripts/others;C:/Program Files/Autodesk/Maya2009/scripts/AETemplates;C:/Program Files/Autodesk/Maya2009/scripts/unsupported;C:/Program Files/Autodesk/Maya2009/scripts/paintEffects;C:/Program Files/Autodesk/Maya2009/scripts/fluidEffects;C:/Program Files/Autodesk/Maya2009/scripts/hair;C:/Program Files/Autodesk/Maya2009/scripts/cloth;C:/Program Files/Autodesk/Maya2009/scripts/live;C:/Program Files/Autodesk/Maya2009/scripts/fur;C:/Program Files/Autodesk/Maya2009/scripts/muscle
  after
C:/Documents and Settings/Rob/My Documents/maya/projects/default/mel;C:/Documents and Settings/Rob/My Documents/maya/2009/scripts;C:/Documents and Settings/Rob/My Documents/maya/scripts;C:/Documents and Settings/Rob/My Documents/maya/2009/presets;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/shelves;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/markingMenus;C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/scripts;C:/Program Files/Autodesk/Maya2009/scripts;C:/Program Files/Autodesk/Maya2009/scripts/startup;C:/Program Files/Autodesk/Maya2009/scripts/others;C:/Program Files/Autodesk/Maya2009/scripts/AETemplates;C:/Program Files/Autodesk/Maya2009/scripts/unsupported;C:/Program Files/Autodesk/Maya2009/scripts/paintEffects;C:/Program Files/Autodesk/Maya2009/scripts/fluidEffects;C:/Program Files/Autodesk/Maya2009/scripts/hair;C:/Program Files/Autodesk/Maya2009/scripts/cloth;C:/Program Files/Autodesk/Maya2009/scripts/live;C:/Program Files/Autodesk/Maya2009/scripts/fur;C:/Program Files/Autodesk/Maya2009/scripts/muscle;C:/working/depot/Tools/Maya/MelScripts
MAYA_PLUG_IN_PATH
 before
C:/Documents and Settings/Rob/My Documents/maya/2009/plug-ins;C:/Documents and Settings/Rob/My Documents/maya/plug-ins;C:/Program Files/Autodesk/Maya2009/bin/plug-ins
  after
C:/Documents and Settings/Rob/My Documents/maya/2009/plug-ins;C:/Documents and Settings/Rob/My Documents/maya/plug-ins;C:/Program Files/Autodesk/Maya2009/bin/plug-ins;C:/working/depot/Tools/Maya/Plugins/2009
XBMLANGPATH
 before
C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/icons;C:/Documents and Settings/Rob/My Documents/maya/prefs/icons;C:/Program Files/Autodesk/Maya2009/icons;C:/Program Files/Autodesk/Maya2009/app-defaults;C:/Program Files/Autodesk/Maya2009/icons/paintEffects;C:/Program Files/Autodesk/Maya2009/icons/fluidEffects;C:/Program Files/Autodesk/Maya2009/icons/hair;C:/Program Files/Autodesk/Maya2009/icons/cloth;C:/Program Files/Autodesk/Maya2009/icons/live;C:/Program Files/Autodesk/Maya2009/icons/fur;C:/Program Files/Autodesk/Maya2009/icons/muscle
  after
C:/Documents and Settings/Rob/My Documents/maya/2009/prefs/icons;C:/Documents and Settings/Rob/My Documents/maya/prefs/icons;C:/Program Files/Autodesk/Maya2009/icons;C:/Program Files/Autodesk/Maya2009/app-defaults;C:/Program Files/Autodesk/Maya2009/icons/paintEffects;C:/Program Files/Autodesk/Maya2009/icons/fluidEffects;C:/Program Files/Autodesk/Maya2009/icons/hair;C:/Program Files/Autodesk/Maya2009/icons/cloth;C:/Program Files/Autodesk/Maya2009/icons/live;C:/Program Files/Autodesk/Maya2009/icons/fur;C:/Program Files/Autodesk/Maya2009/icons/muscle;C:/working/depot/Tools/Maya/Icons
MAYA_SHELF_PATH
 before

  
afterC:/working/depot/Tools/Maya/Shelves/2009
PYTHONPATH
 before

  
afterC:/working/depot/Tools/Maya/Python

...but I do not see the custom shelves loaded as I would expect.

As a test, I removed the userSetup.py file and tried doing the same thing with a Maya.env file.

MAYA_SHELF_PATH C:\working\depot\Tools\Maya\Shelves\2009
MAYA_SCRIPT_PATH 
C:\working\depot\Tools\Maya\MelScripts
XBMLANGPATH 
C:\working\depot\Tools\Maya\Icons
MAYA_PLUG_IN_PATH 
C:\working\depot\Tools\Maya\Plugins\2009
PYTHONPATH 
C:\working\depot\Tools\Maya\Python

This approach works. Why does setting the environment values in userSetup.py seem to work, but not load the custom shelves?



Replies: 1
/userdata/avatar/avatar_1601.png

I mean it’s because Mel/Python interpreter is started after shelves are (queued to load) into Maya UI.
You can change all variables, but Maya will not load files from dirs.

But you can try to create shelfLayout and execute shelf file as script. I am not tested it, it’s only theory.

It’s a bit different but, maybe this can help you - http://etoia.free.fr/?p=1771

Author: rasto

Replied: 21 January 2011 06:10 AM