3ds Max python samples
This repo contains various Python programming examples and tutorials targeting 3ds Max.
All the examples in the tutorials are implemented as pip packages. This is a bit heavy for small things (we provide a setup.py, a LICENSE and everything) but makes things installable and shareable more easily. As soon as something has dependencies on external packages or requires more than one Python file, pip packages become very convenient. Because we think it is a good practice to package 3ds Max Python tools with pip, we provide all our examples in this form.
It is not necessary to install the HowTos: the repo can simply be used as a passive directory of samples and documentation for Python developers.
The samples below are translations of MAXScript How Tos that can be found in the 3ds Max online documentation.
The conversion from MaxScript to Python could have been more mechanical but we chose to implement the Python version in the best Python way known to us. An example of this is that we use PySide (Qt) for the UI as much as possible instead of using more traditional 3ds Max ui mechanisms.
How To?
Python samples can be found in src/samples. These samples may already be in your 3ds Max installation directories.
pystartup provides the maxscript code that, when copied to 3ds Max's startup directory, will automatically launch pip packages with the 3dsMax startup entry point.
The following packages are not really examples but Python tools.
menuhook is not meant to be an example (but is still interesting as such!) but as a way of attaching Python functions to 3ds Max menu items. The menuhook package is used by most of the other samples.
realoadmod is small tool that will reload all development modules in one operation
mxvscode is a small tool that will automatically import debugpy (the VSCode debugging interface) during the startup of 3ds Max and make it accept remote connections. This may slow down the startup of 3ds Max quite a bit and is meant as a developer-only tool.