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 details)

Uploaded Python 3

File details

Details for the file m3trik-0.501-py3-none-any.whl.

File metadata

  • Download URL: m3trik-0.501-py3-none-any.whl
  • Upload date:
  • Size: 441.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.2

File hashes

Hashes for m3trik-0.501-py3-none-any.whl
Algorithm Hash digest
SHA256 ca7d66de0c8397a9331c9032e476f522dbab3528921d6ab1dc99e48b28a87a09
MD5 ddee7731b8d82301903545a3c4905b8e
BLAKE2b-256 d7a069bef0d7a15d64644ca51bec4634a6fff613489d61f26741e93727e58966

See more details on using hashes here.

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