如何运行多个defs()Python MAYA?

2024-05-14 07:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我将从以下位置学习Python for Maya教程:https://github.com/gyassa4/MayaPyth/blob/master/gear_builder.py 在我运行代码之后,它只运行first def(),它创建了一个齿数为10的齿轮。但是,它不会运行第二个def(),该def()会按照def changedeats(构造函数、挤出、齿数=25、长度=1)中的说明更改齿轮的齿数。我是否需要一个类来运行多个def()

import maya.cmds as cmds

def createGear(teeth=10, length=1):
    spans = teeth * 2
    transform, constructor = cmds.polyPipe(subdivisionsAxis=spans)
    sideFaces = range(spans * 2, spans * 3, 2)
    cmds.select(clear=True)
    for face in sideFaces:
        cmds.select('%s.f[%s]' % (transform, face), add = True)
        extrude = cmds.polyExtrudeFacet(localTranslateZ = length)[0]
    return transform, constructor, extrude

createGear()

def changeTeeth(constructor, extrude, teeth=25, length=1):
    spans = teeth * 3
    cmds.polyPipe(constructor, edit=True, subdivisionsAxis=spans)
    sideFaces = range(spans * 2, spans * 3, 5)
    faceNames = []
    for face in sideFaces:
        faceName = 'f[%s]' % (face)
        faceNames.append(faceName)
        cmds.setAttr('%s.inputComponents' % (extrude),
        len(faceNames),*faceNames,type="componentList")
        cmds.polyExtrudeFacet(contructor, extrude, edit=True, ltz=length)

Tags: truefordeftransformlength齿轮facecmds
1条回答
网友
1楼 · 发布于 2024-05-14 07:37:33
createGear()

这是运行第一个def

changeTeeth(constructor = "objname",
            extrude = "extrudename")

把这个放在末尾,然后运行第二个 请注意,其中两个参数是必需的,因为您已将默认值指定给:

teeth=25, length=1

相关问题 更多 >

    热门问题