gpt4 book ai didi

python - 在列表中选择面,maya python

转载 作者:行者123 更新时间:2023-11-30 23:06:58 24 4
gpt4 key购买 nike

我正在编写一个脚本,该脚本将在对象上查找 tri 和 nGon 并选择它们。但是当我将面孔存储在列表中并尝试选择它们时,我得到了这个结果。

[u'pCube1.f[2]']

我如何改变它以使其只是

[pCube1.f[2]]

最佳答案

大多数情况下,Maya 以字符串列表的形式返回命令结果。它们是 unicode 字符串 (u'xxx'),但这没关系 - Maya 可以与常规字符串互换接受这些字符串:您可以安全地忽略字符串的 Unicode 性,并且无需费尽心思来创建自己的字符串转换为统一码。 Maya 会将 ['xxx'][u'xxx'] 互换对待。

选择面孔支持多种形式:

 #lists
my_faces = ['pCube1.f[1]', 'pCube1.f[2]']
cmds.select(my_faces)

# tuples
more_faces = ('pCube1.f[3]', 'pCube1.f[4]')
cmds.select(more_faces, add=True)

# direct selection:
cmds.select('pCube1.f[5]', 'pCube1.f[6]')

要获取对象中的所有面,您可以使用快捷方式

 cmds.select('pCube1.f[*]')

或范围:

 cmds.select('pCube1.f[2:4]') 

Maya 有时也会返回压缩名称,例如 pCube1.f[2:4]。您可以使用 filterExpand 命令将它们拆分为单独的项目:

 print cmds.filterExpand('pCube1.f[1:5]', sm=34)
# [u'pCube1.f[1]', u'pCube1.f[2]', u'pCube1.f[3]', u'pCube1.f[4]', u'pCube1.f[5]']

(“sm = 34”在玛雅语中表示“仅限面”)。

最需要注意的是返回 None 的命令,而您希望返回一个空列表。如果您遇到类似 NoneType is not iterable 的错误,则可能是 Maya 返回 None 而不是 []。您通常可以使用“或”来摆脱这种情况:

 item = cmds.ls("your_name_here") or []

返回空列表。

关于python - 在列表中选择面,maya python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32428452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com