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
相关产品推荐
相关产品推荐

