python3dsmaxmaxscript3ds

pymxs alternatives to the deprecated MaxPlus utility functions


With Autodesk's removal of MaxPlus from 3ds Max, I now am having to rework some of my code, and was wondering if there is another way to access some of the MaxPlus utility functions. While I think the decision to consolidate python development under pymxs was a good one, it would have been nice if MaxPlus functionality not supported by pymxs had been ported over beforehand.

examples of deprecated MaxPlus utility functions that I now need to find solutions for:

MaxPlus.ViewportManager.GetActiveViewportShowEdgeFaces()
MaxPlus.PathManager.GetProjectFolderDir()
MaxPlus.PathManager.GetAutobackDir()

Any help pointing me in the right direction, would be greatly appreciated.


Solution

  • Most of the viewport functionality is located in the NitrousGraphicsManager class, so for your first one, try:

    >>> graphicsmanager = 
    pymxs.runtime.NitrousGraphicsManager.GetActiveViewportSetting()
    >>> graphicsmanager.ShowEdgedFacesEnabled
    False
    >>> graphicsmanager.ShowEdgedFacesEnabled = True
    

    The second one you can find in the pathconfig struct:

    pymxs.runtime.pathconfig.getCurrentProjectFolderPath()
    

    The third is stored as a 3ds Max system directory, so this should work:

    >>> pymxs.runtime.GetDir(pymxs.runtime.name('autoback'))