调查了一下,搞明白了
执行comman创建feature的时候,输入是靠Agent的SetOrderedTypeList来决定鼠标对什么图形特性的东西(比如面还是线)反应,之后可以加个filter进行追加过滤,比如无限大的面不许可
同样的功能在做Replace,powercopy,UDF的时候,上头的功能靠feature的CATIReplace,CATIAttrBehavior来实现
SetOrderedTypeOrder对应CATIAttrBehavior的GetRequestedBehavior()
fileter对应CATIReplace的IsElementValidForReplace()
对feature特性的Set在CATIReplace的Replace()实现
如果你对你的feature的输入没有特殊filter,那么自己把CATIAttrBehavior给Imp了就好
所以你自己的Replace命令可以这么写
1)取得feature的AttrName
2)取得设在个个AttrName里的SpecObject(可以用CATIAlias得到名字)
3)逐个调用CATIReplace,当然这步实际上因为和形状特性有关,有点麻烦
不过实在想不出来catia有replace,powercopy的命令可以用,如果你针对个别的feature,各个feature应该有提供对应的Set***()的函数 |