次の DEMO を見に行く
Maya

【Maya:Python】グリッドのサイズを変更する

shamimatsu

maya2022、2019を使用
maya2022でpython3になったためコードを修正しました。

参考:grid コマンド
初期設定のグリッドのまま使う事は少なく、1メートルにすることが個人的には多いため簡単に設定できるスクリプトを作成しました。

1m, 50cm, 25cm, 10cmの4段階で実行するたびに切り替わる作りにしました。
s=1000 の数値を変更すればグリッドの範囲が広がります。

コード

python3

maya2022でpython3になったためコードを修正しました。
printをステータスバーに表示するための関数(pm.displayInfo)を追加しています。
参考サイト:Maya print in status bar

# -*- coding: utf-8 -*-
import maya.cmds as cmds
import pymel.core as pm

# 現在のグリッド ラインの間隔を取得
grid_sp = cmds.grid(q=True, sp=True)

# 切り替え設定
if grid_sp == 100:
    cmds.grid(s=1000, sp=50, d=1)
    pm.displayInfo('Grid 50cm')
elif grid_sp == 50:
    cmds.grid(s=1000, sp=25, d=1)
    pm.displayInfo('Grid 25cm')
elif grid_sp == 25:
    cmds.grid(s=1000, sp=10, d=1)
    pm.displayInfo('Grid 10cm')
else:
    cmds.grid(s=1000, sp=100, d=1)
    pm.displayInfo('Grid 1m')

python2.7

# -*- coding: utf-8 -*-
import maya.cmds as cmds

# 現在のグリッド ラインの間隔を取得
grid_sp = cmds.grid(q=True, sp=True)

# 切り替え設定
if grid_sp == 100:
    cmds.grid(s=1000, sp=50, d=1)
    print 'Grid 50cm',
elif grid_sp == 50:
    cmds.grid(s=1000, sp=25, d=1)
    print 'Grid 25cm',
elif grid_sp == 25:
    cmds.grid(s=1000, sp=10, d=1)
    print 'Grid 10cm',
else:
    cmds.grid(s=1000, sp=100, d=1)
    print 'Grid 1m',
ABOUT ME
shamimatsu
shamimatsu
記事URLをコピーしました