一个command可以有很多参数,分为3种:
- flag参数,带“-”的。如 setAttr -type "string" "Hello!" node.string
- arg参数,为跟着flag参数之后,而且必须指定的,如 setAttr -type "string" "Hello!" node.string 或者move -a 3 0 0 obj
- command参数,可选的,如move 0 1 0 pCube1
其中arg参数和command参数不可共存
为一个命令添加flag,需要addFlag函数,arg需要对应的addArg,而如果需要command来接受物体等,则需要先setObjectType函数指定能够接受物体的类型和数量。
有了以上概念,下面说一下如何完整的建立起语法函数、分析函数以及其框架。
MPxCommand自带syntax(),其最初目的并不是为了重写此函数来大件愈发函数,而是可以返回你指定的语法函数,指定的方法就是在MFnPlugin::registerCommand的时候的syntax对应参数。
当然这不是唯一的框架,只要保证MArgDatabase可以根据MSyntax析构出参数并返回到doIt就可以。
本文介绍了一个自定义Maya命令的实现方法,包括如何定义不同类型的参数、构建语法解析器及参数解析过程。通过实例展示了如何使用flag参数、arg参数及command参数,并提供了完整的代码框架。
947

被折叠的 条评论
为什么被折叠?



