You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya多边形UI脚本报错:无效flag 'width' 新手求助

问题排查与修复方案

错误原因

你在createSphere函数里误用了多边形立方体(polyCube)的参数来调用球体创建命令(polySphere)。Maya的cmds.polySphere不支持width、height、depth、subdivisionsWidth这类参数——这些是polyCube专属的参数,因此触发了"无效flag"的错误。

修复后的createSphere函数代码

def createSphere(self, *args):
    
    name = cmds.textFieldGrp(self.spherename, query=True, text=True)
    
    # 球体仅需半径参数,可从尺寸输入框中取任意一个值,这里用第一个输入框的值
    radius = cmds.floatFieldGrp(self.sphereSize, query=True, value1=True)
    
    subdivs = cmds.intSliderGrp(self.sphereSubdivs, query=True, value=True)
    
    cmds.polySphere(name=name, radius=radius, 
                  subdivisionsX=subdivs, subdivisionsY=subdivs)

额外优化建议

如果想让球体支持三轴非均匀缩放,可在创建后用scale命令调整,这样能复用UI里的三个尺寸输入框:

def createSphere(self, *args):
    
    name = cmds.textFieldGrp(self.spherename, query=True, text=True)
    
    width = cmds.floatFieldGrp(self.sphereSize, query=True, value1=True)
    height = cmds.floatFieldGrp(self.sphereSize, query=True, value2=True)
    depth = cmds.floatFieldGrp(self.sphereSize, query=True, value3=True)
    
    subdivs = cmds.intSliderGrp(self.sphereSubdivs, query=True, value=True)
    
    # 创建球体并获取返回的节点名称
    sphere = cmds.polySphere(name=name, subdivisionsX=subdivs, subdivisionsY=subdivs)[0]
    # 应用三轴缩放
    cmds.scale(width, height, depth, sphere)

内容的提问来源于stack exchange,提问作者Dani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:39:13