1、查询顺序
当一个命令调用的时候,命令栈先按组名搜索,然后是组中的命令名。一般情况下,第一个注册的组会先被搜索,但是这个顺序不是总是确定的,AcEdCommandStack::popGroupToTop()这个函数来指定一个组优先被搜索,在用户级别的命令中,ARX命令的组选项允许用户指定那个组优先被搜索。
2、全局和局部命令名
当你添加一个命令的时候,你需要指定一个全局的名字,它能够被任何语言使用,同时你还需要指定一个局部的名字,他是一个AutoCAD外文版本的翻译。如果你不需要局部名字,你可以让他和全局名字一样。
3、透明命令和模态命令
一个命令要么是透明的要么是模态的,一个透明命令能够在用户进行其他输入的时候调用,(即在其他命令执行时候也执行这个命令),而模态命令不行,要调用它的时候,不能有其他命令或者输入正在进行。AcEdCommandStack::addCommand函数中的commandFlags参数用来指定命令是透明(ACRX_CMD_TRANSPARENT)的还是模态的(ACRX_CMD_MODAL),这个参数还能被指定为其他值,要了解请参考开发者文档中的AcEdCommandStack部分。透明命令只能在同一级别嵌套。即主命令调用的时候,一个透明命令能被调用。
如果你创建多个命令来操作同一个全局对象,考虑是否需要将命令设置为模态的,这样命令不会互相干扰,如果这个几何没有问题,那么设置为透明的将会有更大的灵活性。