метод addAttr для объектов pymel - PullRequest
0 голосов
/ 05 февраля 2019

Я не могу правильно использовать метод addAttr.Я использую те же аргументы, что и при вызове из pymel.core, но это не дает мне те же результаты.

Я пытаюсь добавить пользовательский атрибут сообщения, чтобы я мог легко искать определенные типы объектовпотом.Когда я делаю это из pymel.core и включаю ту же ссылку на объект, что и аргумент, он работает нормально.

#get object reference
test_object = pm.ls(sl=1)[0]

#this one spits out an error
test_object.addAttr(longName = 'custom', attributeType = 'message')

#this one works fine
pm.addAttr(test_object, longName = 'custom', attributeType = 'message')

Я продолжаю получать эту ошибку Ошибка: Ошибка типа: строка 1: addAttr () занимает ровно 2Аргументы (1 дано) Какой дополнительный аргумент он ищет, когда я использую его таким образом?Я явно упускаю что-то очевидное о том, как работают методы, но не могу понять это.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Метод addAttr, предоставляемый для узлов DG в Maya PyMel, имеет следующую подпись.

addAttr(attr, **kwargs)

Здесь attr - это позиционный аргумент, представляющий имя атрибута.Кварги могут поставляться со всеми другими соответствующими флагами, используемыми в методе pm.addAttr().Поэтому вы должны передать имя атрибута в качестве первого аргумента.

node.addAttr('custom', attributeType='message')

Надеюсь, это поможет.

0 голосов
/ 05 февраля 2019

из cgsociety нить

pCube.addAttr('timeBasedAttr', keyable=True, attributeType='float', min=0.0, max=1.0)

вы должны написать:

test_object.addAttr('custom', attributeType = 'message')

Я пытался, и он не выдает ошибку.

...