Skip to content

Instantly share code, notes, and snippets.

View yamahigashi's full-sized avatar

yamahigashi

View GitHub Profile
"""Module for edge ring/loop walking and selection and reconstruction of subdivision surfaces in Maya."""
import re
import struct
import zlib
from typing import Callable, Optional, Union
import maya.api.OpenMaya as om
import maya.cmds as cmds
import maya.mel as mel
def select_layer(layer_name, add=False):
# type: (Text, bool) -> None
if not add:
for layer in get_all_layers():
deselect_layer(layer)
if "BaseAnimation" == layer_name:
layer_name = next((x for x in get_all_layers() if "BaseAnimation" in x), layer_name)
# -*- coding: utf-8 -*-
###############################################################################
import sys
import textwrap
import maya.cmds as cmds
import maya.mel as mel
import maya.api.OpenMayaUI as omui
# import gml_maya.decorator as deco
# -*- coding: utf-8 -*-
###############################################################################
import textwrap
import functools
import maya.cmds as cmds
import maya.mel as mel
from logging import ( # noqa:F401 pylint: disable=unused-import, wrong-import-order
StreamHandler,
# -*- coding: utf-8 -*-
"""Resize gameExporter's frame range textfields width of animation clips tab."""
import PySide2
def get_maya_main_window():
for obj in PySide2.QtWidgets.QApplication.topLevelWidgets():
if obj.objectName() == 'MayaWindow':
return obj
@yamahigashi
yamahigashi / redirect_log.py
Created September 15, 2020 05:39
Context manager for redirecting Autodesk Maya's logging to given file path, to use as `with` statement.
from contextlib import contextmanager
from pathlib import Path
@contextmanager
def redirect_log(logfile_path):
# type: (Text) -> Generator[None, None, None]
"""Function: Context manager for redirecting maya's log to given path, to use as `with` statement.
Scenario: giving None to logfile_path
from maya import cmds
def __swap_selection_for_ikrot_job():
sel = cmds.ls(sl=True) or []
for i, s in enumerate(sel):
ctx = cmds.currentCtx()
new = None
@yamahigashi
yamahigashi / generate_typeshed.py
Last active April 9, 2023 17:49
Typeshed generator for `maya.cmds.__init__.pyi` from maya CommandsPython html pages.
# pylint: disable=C0326,W0125,line-too-long
"""The typeshed generator for `maya.cmds` module from CommandsPython html pages.
Usage:
Download the documentation files from [ADN](https://knowledge.autodesk.com/support/maya/getting-started/caas/simplecontent/content/maya-documentation.html)
Run this script.
`$ python generate_typeshed.py inupt_folder output '
`$ python generate_typeshed.py autodesk-maya-user-guide-2020.1.htm-ade-2.1.enu/CommandsPython maya.cmds.__init__.pyi'
"""
import maya.api.OpenMaya as om
import maya.api.OpenMayaUI as omui
# マスクの足し算
SLIM_MASK = omui.M3dView.kDisplayTextures | omui.M3dView.kDisplayMeshes | omui.M3dView.kDisplayGrid | omui.M3dView.kDisplayManipulators
# 引き算はこう
SLIM_MASK = omui.M3dView.kDisplayEverything > omui.M3dView.kDisplayGrid
ALL_MASK = omui.M3dView.kDisplayEverything
@yamahigashi
yamahigashi / exprespy.py
Created November 25, 2019 08:46
An example of using `inspect` module to treat code as string.
import re
import math
import inspect
import textwrap
import maya.cmds as cmds
import exprespy.cmd
def rotate_driver(COUNT, IN, OUT):