一个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就可以。