Skip to main content
 首页 » 编程设计

python之maya 的宏工具

2025年05月04日8落叶无声

一看到Photoshop Action,就好奇用python开发一个Maya的宏工具。所以我开始研究它。

这是我的例子,

path = "C:/Desktop/file.txt" 
a = open(path, 'w') 
#cmds.scriptEditorInfo(ch = True, chf = True) 
cmds.scriptEditorInfo( hfn=path, wh=True) 
a.close() 

我能够记录所有的事情。这是我记录的信息。

CreatePolygonPyramid; 
performPolyPrimitive Pyramid 0; 
setToolTo CreatePolyPyramidCtx; 
optionVar -query toolMessageVisible; 
optionVar -query toolMessageTime; 
optionVar -query toolMessageVerticalOffset; 
optionVar -query toolMessageHorizontalOffset; 
headsUpMessage -time 0.7 -verticalOffset -40 -horizontalOffset 0 -viewport 1 -          uvTextureEditor 0"Drag on the grid."; 
changeToolIcon; 
polyPyramid -ch on -o on -w 10.727425 -cuv 3 ; 
escapeCurrentTool; 
autoUpdateAttrEd; 
updateAnimLayerEditor("AnimLayerTab"); 
statusLineUpdateInputField; 
changeToolIcon; 

问题是我无法对事物进行分类(只记录需要的事物)。它只是记录所有信息。我尝试使用各种标志的组合,如 se、sw、si、sr。但是我无法选择所需的信息。

请您参考如下方法:

您从录制中显示的输出看起来像是在脚本编辑器中启用了“Echo All Commands”。你确定那是记录 Action 所必需的吗? “Echo All”始终为您提供从初始命令执行的子命令,这些子命令通常对于调用原始命令来说是多余的。

也许您可以结合脚本编辑器的日志记录方法,关闭“Echo All”,并使用撤消队列作为额外记录:cmds.undoInfo(q=True, printQueue=True)
您要么必须在开始记录时先清除撤消队列,要么首先运行一些创建“标记”的 NOOP 命令以了解您在队列中的开始位置。像“setAttr”这样的操作会留下一个空白的命名条目,但您可以查看您的脚本编辑器记录以了解两者之间缺少的内容。也许将这两者结合起来你会得到一个更准确的宏。