mel中如何使用一个变量来代表物体

mel中如何使用一个变量来代表物体?
SITT说:
例如
$myBox = polyCube()
然后我有没有办法直接修改$mybox的属性?就是说$mybox就指向新创建的东西,和名字无关
我在maya帮助里查到 nameField 做到的类似范例,但是很烦琐。
max和xsi里面都很简单就可以做到
max
mybox= box()
xsi
Mybox = ActiveSceneRoot.AddGeometry( "Cube", "MeshSurface" )
而后只要直接修改mybox.属性 就可以了,和物体的名字无关
maya如何实现这个
———————-问答的分割线———————————————–
hmaya 回复: mel中如何使用一个变量来代表物体?
有一个问题是Maya的MEL并不是面向对象的语言,这点跟MAX Script不一样。所以MEL里,物体的名字是来修改物体属性的主要依据之一。MAX貌似是有对象这一说的。
此外,Maya 的单是一个Cube也有两个节点组成,shape节点和transform节点。名字一般不一样:( 一些属性需要分别设置和修改
我想你可以这么做,来达到你想要的效果。
string $myCube[] = `polyCube`;
string $SetCubeTZ = "setAttr " + $myCube[0]+".translateZ ";
eval ($SetCubeTZ + 3)
———————-问答的分割线———————————————–
爱上爱1 的问题
string $myCube[] = `polyCube`;
string $SetCubeTZ = "setAttr " + $myCube[0]+".translateZ ";
eval ($SetCubeTZ + 3)
能不能讲讲 eval 到底是用在哪里? 起什么作用的?
———————-问答的分割线———————————————–
hmaya 回复: mel中如何使用一个变量来代表物体?
引用:
作者: 爱上爱1 查看帖子
能不能讲讲 eval 到底是用在哪里? 起什么作用的?
具体来说,就是你有一个字符串,string, 里面存储了一条MEL命令。这个string你直接按回车是不会执行,它仅仅是个字符串。
eval(string),就可以把字符串中的内容当成命令执行。类似于API里的:
MGlobal:: executeCommand ( const MString & command)

作者: hmaya

developer!

看完不过瘾?点此向作者提问

发表评论

邮箱地址不会被公开。 必填项已用*标注