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

If you're not sure about the file name format, learn more about wheel file names.

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 Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page