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

MEL脚本求助:PolySeparate分离多边形时避免创建父组

解决MEL脚本中多边形分离不创建父组的问题

你遇到的polySeparate报错,核心原因是命令需要明确指定单个多边形对象(或同一对象的面),直接依赖选中对象但未做有效性校验时,就会触发参数错误。下面是修正后的脚本,既能避免报错,又能实现分离后不生成父组的需求:

// 获取选中的有效多边形网格对象
string $selected[] = `ls -selection -type "mesh" -long`;
if (size($selected) == 0) {
    error "请先选中一个多边形对象或其面";
}
// 提取目标对象(选中面时会自动关联到所属网格)
string $targetObj = $selected[0];

// 执行分离:-s 0 生成独立对象,-ch 1 保留历史
string $separatedObjs[] = `polySeparate -s 0 -ch 1 $targetObj`;

// 将所有分离后的对象移到世界空间(彻底脱离父组)
parent -world $separatedObjs;

// 清理场景冗余元素
source cleanUpScene;
deleteEmptyGroups;
deleteUnusedSets;

关键细节说明:

  • 用ls -selection -type "mesh"过滤选中内容,确保只处理多边形网格节点,避免选中其他类型元素导致报错;如果选的是面,ls会自动返回所属的网格对象,刚好满足polySeparate的参数要求。
  • 执行polySeparate时明确传入目标对象$targetObj,从根源解决"Invalid selection"的报错问题。
  • 分离后通过parent -world $separatedObjs将所有新生成的对象直接挂载到世界空间,完全避免父组的产生。
  • 最后调用清理命令移除空组和无用集合,保持场景整洁。

如果你的需求是分离选中的面而非整个对象,只需确保选中的是同一多边形对象的面,上述脚本同样适用——polySeparate会自动将选中面分离为独立对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:57:04