变量和maya命令 #getAttr #setAttr #xform #connectAttr #disconnectAttr

get attribute! 

set attribute!

xform!(可查询设置transform节点中任何参数)

connect attribute!

disconnect attribute!

#得到,设置,链接,断开属性

 

#getAttr & setAttr 

1)变量loc是新创建locator的transform节点。#如果打印loc变量,列表[0]是transform节点,[1]是shape节点。

2)设置变量sx,为得到locator的X轴向的缩放值。

3)修改变量sx,让sx值增加一倍。#变量可以改数值并覆盖的。

4)设置locatorX轴向的缩放值为现sx值。 

  #这一步若不知如何设置,可先手动调整一下locator的值,看mel是怎么改的。然后替换变量,加上字符串,即可。

  

  #注意!locator1.scaleX字符串中locator1要替换成变量。用+号串起来(不是用逗号,“.scale”中的"."不能掉!)

  #后面的空格用逗号隔开。见下面代码中的第5行

1 import maya.cmds as cmds
2 loc = cmds.spaceLocator()[0]
3 sx = cmds.getAttr(loc+'.scaleX')
4 sx = sx*2
5 cmds.setAttr(loc+'.scaleX', sx)

 

#xform (复合属性。不可编辑!)

## 查询。在上一步代码中,使用xform命令打印locator的平移(注意这里要查询!),使用的是translation!会得到列表[0.0, 0.0, 0.0]。

6 print cmds.xform(loc, query=True, translation=True)

## 新设置 translation值,注意值是列表!这里不用editor=True!

7 cmds.xform(loc, translation=[0,1,0])

##对比使用getAttr和setAttr查询并设置locator的平移。注意这里使用的是translate!会得到包含元组的列表[(0.0, 0.0, 0.0)]。设置值的时候,按照顺序指定值(x,y,z)

这里会看起来比较繁琐。没有xform命令看起来明了。

print cmds.getAttr(loc+'.translate')
cmds.setAttr(loc+'.translate',1,2,3)

 

#connectAttr & disconnectAttr &multiplyDivide

 链接属性、断开属性、乘除节点

1)打开新的场景,创建一个球体和立方体,并保存他们的transform节点。

2)创建属性链接,球体Y轴的移动,驱动立方体的Y轴旋转。选择球体(测试)。#select命令

3)断开上面两个属性的链接。

4)在两个属性之间创建一个multiplyDivide节点,使球体每移动1个单位,立方体旋转90°。#createNode命令

  

 1 import maya.cmds as cmds
 2 Sphere = cmds.polySphere()[0]
 3 Cube = cmds.polyCube()[0]
 4 
 5 cmds.connectAttr(Sphere+'.ty', Cube+'.ry')
 6 cmds.select(Sphere)
 7 
 8 cmds.disconnectAttr(Sphere+'.ty', Cube+'.ry')
 9 
10 mult = cmds.createNode('multiplyDivide')
11 cmds.connectAttr(Sphere+'.ty', mult+'.input1X')
12 cmds.setAttr(mult+'.input2X', 90)
13 cmds.connectAttr(mult+'.outputX', Cube+'.ry')
14 cmds.select(Sphere)

 

转载于:https://www.cnblogs.com/3lina/p/10233020.html

哈喽!感谢您的提问,让我们开始吧。 hasattr()、getattr()、setattr() 都是 Python 内置函数,用于操作对象的属性。具体用法如下: 1. hasattr():判断一个对象是否有指定的属性,返回 True 或 False。 语法:hasattr(object, name) 参数说明: - object:用于检查是否存在指定属性的对象。 - name:属性名称,可以是字符串或变量。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() print(hasattr(p, 'name')) # 输出 True print(hasattr(p, 'gender')) # 输出 False ``` 2. getattr():获取一个对象的指定属性的值。如果属性不存在,可以设置默认值。 语法:getattr(object, name[, default]) 参数说明: - object:要获取属性值的对象。 - name:属性名。 - default:可选参数,如果属性不存在,返回的默认值,默认为 None。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() print(getattr(p, 'name')) # 输出 "Tom" print(getattr(p, 'gender', 'male')) # 没有 gender 属性,输出 "male" ``` 3. setattr():给对象设置指定的属性和属性值。 语法:setattr(object, name, value) 参数说明: - object:要设置属性的对象。 - name:属性名称。 - value:属性值。 示例代码: ```python class Person: name = "Tom" age = 20 p = Person() setattr(p, 'gender', 'male') print(p.gender) # 输出 "male" ``` 好了,以上就是 hasattr()、getattr()、setattr() 的用法了,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值