我运行一个命令,在其中创建一个新的摄像头,但是在所述函数的末尾,没有选择,也没有该函数在它运行之后选择该对象。 那么有什么命令可以查询最后创建的项目吗?
我尝试使用`cmds.listHistory'但如果已有选择,那只会显示结果..
我能以何种方式解决这个问题?
另外,假设我使用
使用以下命令cameraShape...
aaa = "cameraShape1"
mel.eval('<Some mel-based command> cameraShape.transformX cameraShape.transformY cameraShape.transformZ;')
但当我尝试用另一种方式编写该命令时,例如:
mel.eval('<Some mel-based command> %s.transformX %s.transformY %s.transformZ;' %aaa)
我说错误
# Error: not enough arguments for format string
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# TypeError: not enough arguments for format string #
我在哪里写错了?我尝试写%aaa, aaa, aaa
仍然发生相同的错误
答案 0 :(得分:2)
为什么不能将新相机填入变量而不依赖于选择?
new_camera, new_camera_shape = cmds.camera()
使用%
格式化时,您没有使用正确的语法:
"My name is %s" % "Jon Snow" # Works for single
"My name is %s and I was born in %s" % ("Jon Snow", "Winterfell") # Multiple
就我个人而言,我更喜欢format()
,因为它假设它与Python 3更加向前兼容:
"My name is {0} and I was born in {1}".format("Jon Snow", "Winterfell")
检测新对象:
scene_before = cmds.ls(l=True, transforms=True)
# Run command to import object here
scene_after = cmds.ls(l=True, transforms=True)
new_objs = list( set(scene_after).difference(scene_before) )
答案 1 :(得分:0)
如果要保留最后创建的对象。您可以创建一个包含变量历史记录的类,您可以在其他脚本中追加最后创建的对象。
class History:
idCounter = []
def __init__(self, name):
History.idCounter.append(name)
print(History.idCounter)
for name in ['nana', 'tata', 'zaza']:
objectCreated = History(name)