commands.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:config 作者: mindbender-studio 项目源码 文件源码
def clone(shape, worldspace=False):
    """Clone `shape`

    Arguments:
        shape (str): Absolute path to shape
        worldspace (bool, optional): Whether or not to consider worldspace

    Returns:
        node (str): Newly created clone

    """

    type = cmds.nodeType(shape)
    assert type in ("mesh", "nurbsSurface", "nurbsCurve"), (
        "clone() works on polygonal and nurbs surfaces")

    src, dst = {
        "mesh": (".outMesh", ".inMesh"),
        "nurbsSurface": (".local", ".create"),
        "nurbsCurve": (".local", ".create"),
    }[type]

    nodetype = cmds.nodeType(shape)

    name = lib.unique(name=shape.rsplit("|")[-1])
    clone = cmds.createNode(nodetype, name=name)

    cmds.connectAttr(shape + src, clone + dst, force=True)

    if worldspace:
        transform = cmds.createNode("transformGeometry",
                                    name=name + "_transformGeometry")

        cmds.connectAttr(shape + src,
                         transform + ".inputGeometry", force=True)
        cmds.connectAttr(shape + ".worldMatrix[0]",
                         transform + ".transform", force=True)
        cmds.connectAttr(transform + ".outputGeometry",
                         clone + dst, force=True)

    # Assign default shader
    cmds.sets(clone, addElement="initialShadingGroup")

    return clone
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号