Как получить доступ к полю заметок объекта в Maya - PullRequest
1 голос
/ 28 августа 2009

Можно ли получить доступ к полю «Заметки» объекта через интерфейс сценариев Maya? Я пытаюсь заставить его работать внутри Python, но я предполагаю, что любой указатель в правильном направлении, какой класс / функция мне нужно использовать в API, поможет мне.

Ответы [ 2 ]

3 голосов
/ 28 августа 2009

Атрибут с именем "notes" динамически добавляется к узлам при вводе в поле примечаний в редакторе атрибутов. Итак, чтобы проверить значение, вы можете проверить, существует ли на узле атрибут с именем «notes», а затем получить значение.

Процедура mel, которую пользовательский интерфейс Maya использует для создания и установки атрибута notes, называется

setNotesAttribute(string $nodeName, string $longAttrName, string $shortAttrName, string $attrType, string $newAttrValue)

Если длинное имя "notes", короткое имя "nts", тип "string".

2 голосов
/ 30 октября 2013

Поскольку все используют PyMEL в наши дни, вот как получить его с помощью PyMEL:

import pymel.core
# cast selected into PyNode
node = pymel.core.ls(sl=1)[0]

# PyMEL's convenient getAttr syntax
node.notes.get()

Предполагается, что вы уже добавили что-то в поле Notes в редакторе атрибутов. Как уже упоминалось выше, атрибут attr создается только тогда.

Если вы запускаете все из кода и не знаете, был ли создан атрибут attr, вы можете проверить его существование следующим образом:

if node.hasAttr('notes'):
    node.notes.get()
else:
    # go ahead and create attr
    node.addAttr('notes', dt='string')
    node.notes.get()

Рассмотрите возможность использования PyMEL, это как maya.cmds, только больше Pythonic.

...