I want to set the working folder to the current document folder on startup, as I am constantly bouncing from project to project. I made a simple python script and called it on startup using a command script in Tools–>Options–>General, but it looks like that gets activated “too early” to work. So what’s the best way to do this, and to have it get set every time a document is opened instead of just on startup?
have you tried to subscribe to
scriptcontext.doc.EndOpenDocument and put the code to setup the working folder in the event handler ? You might then set this script in the startup command list, eg. something like below:
import Rhino import scriptcontext import rhinoscriptsyntax as rs import os def MySetupWorkingFolderEvent(sender, e): try: if e.FileName: folder, filename= os.path.split(e.FileName) rs.WorkingFolder(folder) except Exception as ex: print ex def RunCommand(): key = "MySetupWorkingFolderEvent" if not scriptcontext.sticky.has_key(key): scriptcontext.sticky[key] = MySetupWorkingFolderEvent scriptcontext.doc.EndOpenDocument += MySetupWorkingFolderEvent if __name__=="__main__": RunCommand()
it might get problematic as it also sets the working folder when opening a new empty file (template).
Well it took me close to 6 months to get around to testing this but it seems to work! Yeah I need to do something different when starting a new emptly file, I can probably handle that…