Как заставить команду select работать на кнопке с помощью Python в Maya? - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в программировании на Python и мне нужна помощь в Maya.

Итак, я пытаюсь создать пользовательский интерфейс с кнопкой, которая выбирает объект с именем "big" в моей сцене майя, но я не могу заставить это работать. Как добавить команду выбора к моей кнопке ball_btn?

Я пытался подключить cmds.select("ball") к кнопке, но безуспешно.

Спасибо!

ball_btn = mc.button(label = “”, w = 50, h = 30, bgc = [1.000,0.594,0.064])

1 Ответ

1 голос
/ 22 марта 2019

Документы Maya уже дают хороший пример того, как подключить кнопку к функции .

Как только ваша кнопка вызывает функцию при нажатии, вы можете просто проверить, существует ли объект в сцене, а затем выбрать его:

import maya.cmds as cmds


# Define a function that the button will call when clicked.
def select_obj(*args):
  if cmds.objExists("ball"):  # Check if there's an object in the scene called ball.
      cmds.select("ball")  # If it does exist, then select it.
  else:
      cmds.error("Unable to find ball in the scene!")  # Otherwise display an error that it's missing.


# Create simple interface.
win = cmds.window(width=150)
cmds.columnLayout(adjustableColumn=True)
cmds.button(label="Select", command=select_obj)  # Use command parameter to connect it to the earlier function.
cmds.showWindow(win)

Вы также можете напрямую подключить команду кнопки к cmds.select, используя lambda:

import maya.cmds as cmds


# Create simple interface.
win = cmds.window(width=150)
cmds.columnLayout(adjustableColumn=True)
cmds.button(label="Select", command=lambda x: cmds.select("ball"))  # Use lambda to connect directly to the select method.
cmds.showWindow(win)

Но тогда у вас будет нулевая настройка того, как она обрабатывает ошибки, или если вы хотите, чтобы она делала другие вещи. Обычно придерживайтесь кнопки, запускающей функцию, если у вас нет веских причин не делать этого. Имейте в виду, что вы также можете использовать lambda для своих собственных пользовательских функций.

...