ValueError: ни один объект не соответствует имени: в Python Maya - PullRequest
0 голосов
/ 26 января 2019

У меня есть код, который возвращает ошибку

ValueError: No object matches name: s

Я не уверен, почему он ищет объект s.

Код выглядит следующим образом

import maya.cmds as cmds

def createOffsetGrp(objSel):

    for obj in objSel:
        p = cmds.listRelatives(obj,parent=True)
        print (p)

createOffsetGrp('spine02_jnt')

Ожидается, что команда печати должна выплевывать Spine01_jnt, который является родителем Spine02_jnt

Есть что-то, что я пропустил?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

в дополнение к тому, что crazyGamer, вы можете обеспечить некоторую поддержку строки, например:

import maya.cmds as cmds

def createOffsetGrp(objSel):
    # isinstance is used to check the type of the variable :
    # i.e: isinstance(objSel, int)
    # basestring is a type combining unicode and string types
    if isinstance(objSel, basestring):
        objSel = [objSel]
    for obj in objSel:
        p = cmds.listRelatives(obj,parent=True)
        print (p)

createOffsetGrp('spine02_jnt')
0 голосов
/ 26 января 2019

Благодаря вводу утки в Python такие ошибки иногда бывает трудно отследить.Здесь происходит то, что ваша функция ожидает массив в качестве аргумента, но вы передаете строку.

Python также поддерживает итерацию по строке, перечисляя отдельные символы, поэтому он ищетs в spine02_jnt.Передача вашей строки в массиве должна решить вашу проблему:

createOffsetGrp(['spine02_jnt'])
...