找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
12
返回列表 发新帖
打印 上一主题 下一主题

CAA: 如何取得external reference?

[复制链接]
11
发表于 2005-5-26 15:17:29 | 只看该作者
调查了一下,搞明白了
  
执行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***()的函数
12
发表于 2005-5-26 22:12:29 | 只看该作者
那么如何使用CATIReplace呢?譬如我有线LINE,它通过点A和点B来确定.现在我要用程序将点B换成点C,是否可用CATIReplace来实现?
如果可以,由谁QueryInterface到CATIReplace呢?是LINE还是点B?
CATIReplace 有三个参数.第一个按DOCU的解释:"name of the attribute whose value is to be replaced",是不是你说的tk_specobject?第二个应该是指点C,第三个是不是点B -- 如果tk_specobject 对应的值是个List的话.
13
发表于 2005-5-26 23:49:12 | 只看该作者
你有2点做出来的直线的featuere?
那何必废近求远
CATISpecObject_var spLine = /*your line*/
CATIGSMLinePtPt_var spLinePtPt =spLine;
if ( !spLinePtPt ) {
   break;
}
spLinePtPt ->SetScondPonint( 点C );
  
tk_specobject是类型名而已,每个属性都有个CATUnicodeString的名字,你得自己获取feature的所有tk属性的list,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-23 21:56 , Processed in 0.023465 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表