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

如何用Python/maya.cmds实现UV选择转UV壳边界及包含边以拆分UV壳?

Maya 2022 按UV壳拆分对象的Python脚本

功能说明

实现将选中对象按UV壳拆分为独立部件,执行流程:选中对象所有UV点 → 转换为UV壳边界边 → 切换选择为拓扑边 → 分离组件 → 拆分对象为独立部件。

完整脚本

import maya.cmds as cmds

def split_by_uv_shell():
    # 检查选中对象
    selected_objs = cmds.ls(selection=True, objectsOnly=True)
    if not selected_objs:
        cmds.warning("请先选中一个多边形对象")
        return
    
    target_obj = selected_objs[0]
    # 切换到UV组件模式并选中所有UV点
    cmds.selectMode(component=True)
    cmds.selectType(uv=True)
    cmds.select(f"{target_obj}.map[:]", replace=True)
    
    # 将UV选择转换为UV壳边界边
    cmds.polySelectConstraint(mode=3, type=0x0008, shellBorder=True)
    cmds.polySelectConstraint(disable=True)
    
    # 切换选择类型为拓扑边
    cmds.selectType(edge=True)
    
    # 分离边界边对应的组件
    cmds.polyChipOff(dup=False, keepFacesTogether=False)
    
    # 拆分对象为独立部件
    cmds.polySeparate(target_obj)
    cmds.select(target_obj, replace=True)
    cmds.rename(f"{target_obj}_split")

# 执行拆分
split_by_uv_shell()

关键命令解析

  • cmds.polySelectConstraint(mode=3, type=0x0008, shellBorder=True):替换当前选择为UV壳边界边,mode=3表示覆盖现有选择,type=0x0008指定筛选UV边界类型,shellBorder=True开启UV壳边界筛选。
  • cmds.polyChipOff(dup=False, keepFacesTogether=False):分离选中边对应的组件,dup=False不复制面,keepFacesTogether=False允许面独立分离。
  • cmds.polySeparate(target_obj):将分离后的组件拆分为独立的多边形对象。

使用注意事项

  • 仅支持单个多边形对象处理,若选中多个对象需调整脚本逻辑。
  • 执行前建议保存场景,避免意外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:38:10