Метод addAttr для объектов pymel
Я не могу использовать метод 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')
Я продолжаю получать эту ошибку Ошибка: TypeError: строка файла 1: addAttr() принимает ровно 2 аргумента (дано 1) Какой дополнительный аргумент он ищет, когда я использую его таким образом? Я явно упускаю что-то очевидное о том, как работают методы, но я не могу понять это.
2 ответа
Метод addAttr, представленный для узлов DG в Maya PyMel, имеет следующую подпись.
addAttr(attr, **kwargs)
Вот attr
это позиционный аргумент, представляющий имя атрибута. Кварги могут быть снабжены всеми другими соответствующими флагами, используемыми в pm.addAttr()
метод. Таким образом, вы должны передать имя атрибута в качестве первого аргумента.
node.addAttr('custom', attributeType='message')
Надеюсь, это поможет.
pCube.addAttr('timeBasedAttr', keyable=True, attributeType='float', min=0.0, max=1.0)
Вы должны написать:
test_object.addAttr('custom', attributeType = 'message')
Я пытался, и он не выдает ошибку.