Maya中如何用精确厘米值设置多边形平面的宽高?
如何用精确厘米值设置Maya多边形平面的宽高
嘿,这个问题我之前也碰到过!Maya里直接用Scale调尺寸确实有点绕,毕竟它是相对缩放,不是绝对尺寸。下面给你两种实用的解决方法,看哪种适合你的场景:
方法一:直接修改平面的原始创建属性(最省心)
如果你的平面还没删除历史记录,这绝对是最快的方式——多边形平面在创建时自带width和height属性,直接给这两个属性赋值你要的厘米数就行,完全不用管缩放:
import maya.cmds as cmds # 把pPlane1换成你的平面名称 cmds.setAttr("pPlane1.width", 100) # 设置宽度为100厘米 cmds.setAttr("pPlane1.height", 50) # 设置高度为50厘米
要是你已经删了历史,那这个方法就用不了了,往下看方法二。
方法二:计算缩放比例实现绝对尺寸设置
这种方法适合已经删除历史的平面,核心思路是先拿到当前平面的实际厘米尺寸,再算出目标尺寸和当前尺寸的比例,用这个比例去调整缩放:
import maya.cmds as cmds plane_name = "pPlane1" # 替换成你的平面名称 # 获取平面在世界空间的边界盒数据,得到六个坐标值:x最小、y最小、z最小、x最大、y最大、z最大 bbox = cmds.xform(plane_name, query=True, boundingBox=True, worldSpace=True) current_width = bbox[3] - bbox[0] # 计算当前实际宽度(x轴方向) current_height = bbox[4] - bbox[1] # 计算当前实际高度(y轴方向) # 输入你想要的目标厘米尺寸 target_width = 100 target_height = 50 # 计算需要的缩放比例 scale_x = target_width / current_width scale_y = target_height / current_height # 应用缩放,这里用xform或者直接设置Scale属性都可以 cmds.xform(plane_name, scale=[scale_x, scale_y, 1], worldSpace=True) # 或者用setAttr直接改通道盒里的Scale值 # cmds.setAttr(f"{plane_name}.scaleX", scale_x) # cmds.setAttr(f"{plane_name}.scaleY", scale_y)
额外小技巧:从源头避免麻烦
提前把Maya的场景工作单位设置成厘米(路径:Window > Settings/Preferences > Preferences > Settings > Working Units),之后创建平面时,直接在创建窗口里输入你要的厘米数作为Width和Height——这样创建出来的平面Scale值默认就是1,尺寸完全符合要求,根本不用后续调整!
内容的提问来源于stack exchange,提问作者bblack
相关产品推荐
相关产品推荐

