找不到过程“onModelChange3dc”。

import pymel.core as pm

# 获取 Maya 中的所有模型编辑器并重置编辑器更改事件
for item in pm.lsUI(editors=True):
   if isinstance(item, pm.ui.ModelEditor):
       pm.modelEditor(item, edit=True, editorChanged="")

这很可能会导致视口不再刷新的问题,除非您恢复 uiConfigurationScriptNode 的正常回调表达式,或重新安装 Maya。

下面是一个脚本,它将安全地删除 onModelChange3dc 回调,而不会损坏默认的 maya UI 表达式。

needs_fixing = False
try:
    expression_str = cmds.getAttr('uiConfigurationScriptNode.before')
    fixed_expression_lines = []
    for line in expression_str.split('\n'):
        if '-editorChanged "onModelChange3dc"' in line:
            needs_fixing = True
            continue
        fixed_expression_lines.append(line)
    fixed_expression = '\n'.join(fixed_expression_lines)
    
    if needs_fixing:
        
        cmds.setAttr('uiConfigurationScriptNode.before', fixed_expression, type='string')
except:
    pass

 

posted @ 2022-11-29 18:46  CGRun  阅读(1172)  评论(0编辑  收藏  举报