Skip to main content
*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.
)

Release files for m3trik 0.501

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for m3trik 0.501
File Interpreter ABI Platform
m3trik-0.501-py3-none-any.whl Python 3 none any Details

Release files / m3trik-0.501-py3-none-any.whl

Download URL m3trik-0.501-py3-none-any.whl
Size 441.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca7d66de0c8397a9331c9032e476f522dbab3528921d6ab1dc99e48b28a87a09
BLAKE2b-256 checksum
How to use checksums
d7a069bef0d7a15d64644ca51bec4634a6fff613489d61f26741e93727e58966
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.2

Release history Release notifications | RSS feed

This release

0.501 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page