Skip to main content

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.

alt text *Example re-opening the last scene, renaming a material, and selecting geometry by that material.


Structure:

alt text

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

m3trik-0.501-py3-none-any.whl (441.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page