Майя Python открыть еще один экземпляр редактора атрибутов - PullRequest
0 голосов
/ 26 сентября 2018

В Maya 2018, используя Python, как вы можете проверить, открыт ли редактор атрибутов, а если нет, откройте его.Кроме того, можете ли вы открыть несколько экземпляров редактора атрибутов, предпочтительно показывая атрибуты разных узлов?

1 Ответ

0 голосов
/ 26 сентября 2018

Я советую вам включить "echo all command", если вы ищете какой-то код.Открытие редактора атрибутов даст вам эхо:

attributeEditorVisibilityStateChange(`workspaceControl -q -visible AttributeEditor`, "");

В этой команде вы уже можете догадаться, что:

`workspaceControl -q -visible AttributeEditor`

это часть, которая запрашивает видимость редактора атрибутов,в Python простой перевод:

cmds.workspaceControl('AttributeEditor', q=1, visible=1)

Тогда у вас есть эта функция Mel:

attributeEditorVisibilityStateChange

В Mel вы можете использовать эту команду, чтобы найти, где процедура принадлежит:

whatIs attributeEditorVisibilityStateChange;
// Result: Mel procedure found in: D:\maya_path\scripts\startup\initAttributeEditor.mel // 

Открыв файл и прочитав первый процесс, вы уже найдете: showAttributeEditor

Эта функция закомментирована как устаревшая и советует использовать: ToggleAttributeEditor

Делаем быстрый WhatIs, яузнайте, что это была команда времени выполнения (поэтому ее следует использовать сразу):

cmds.ToggleAttributeEditor()

У вас должен быть свой ответ для открытия, и проверьте, существует ли редактор атрибутов, если команда не та, которую вы используетехотеть, потому что ты хочешь, возможно, некоторую способность стыковки, есть намного больше MEL, чтобы читать, используя whatIs;и второй процесс в файле.

И теперь, когда я объяснил вам метод поиска команды python, я думаю, вы можете использовать ту же технику для создания функции для «копировать вкладку» атрибутаредактор!

Если вы считаете, что это раздражает (у maya иногда много вложенного кода, и это может быть утомительно), вы можете использовать:

import maya.mel
mel.eval('attributeEditorVisibilityStateChange(`workspaceControl -q -visible AttributeEditor`, "");')

, он выполнит внутри код melпитон.Вы можете использовать формат Python для вставки аргументов ... и т. д., поскольку он должен оцениваться как строка.

...