A Python3/PySide2 marking menu style toolkit for Maya, 3ds Max, and Blender.
Project description
*A Python3/PySide2 marking menu style toolkit for Maya, 3ds Max, and Blender.
personal project. work in progress..
Design:
This is a dynamic and modular marking menu style ui, with a QStackedWidget at it's core. The switchboard module provides convenience methods that allow quick and easy lookups when getting/setting relevant ui and widget data across modules.
*Example re-opening the last scene, renaming a material, and selecting geometry by that material.
Structure:
tcl:
handles main gui construction.
childEvents:
event handling for child widgets.
overlay:
tracks cursor position and ui hierarchy to generate paint events that overlay the main widget.
switchboard:
loads dynamic ui and any custom widgets and contains convenience methods for interacting with the ui.
slots:
parent class housing methods that are inherited across all app specific slot class modules.
Installation:
For Maya: add these lines to a startup script:
sys.path.append('your path to /tentacle') --append the dir containing 'append_to_path.py' to the python path.
import append_to_path as ap
ap.appendPaths('maya', verbose=0)
and to launch the menu, add a macro to a hotkey like the following:
def hk_tentacle_show():
'''Display the tentacle marking menu.
'''
if 'tcl' not in globals():
from tcl_maya import Tcl_maya
global tcl
tcl = Tcl_maya(key_show='Key_F12', profile=False)
tcl.sendKeyPressEvent(tcl.key_show)
For 3ds Max: add these lines to a startup script:
python.Init() --initalize python
python.Execute("import sys; sys.path.append('your path to /tentacle')") --append the dir containing 'append_to_path.py' to the python path.
python.Execute("import append_to_path as ap; ap.appendPaths('max', verbose=0)")
and to launch the menu, add a macro to a hotkey like the following:
macroScript main_max
category: "_macros.ui"
silentErrors: false
autoUndoEnabled: false
(
python.Execute "if 'tcl' not in globals(): from tcl_max import Tcl_max; global tcl; tcl = Tcl_max(key_show='Key_Z')" --create an instance.
python.Execute "tcl.sendKeyPressEvent(tcl.key_show);" --show the instance.
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.