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

iCAx开思网

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

CAA: 如何取得external reference?

[复制链接]
跳转到指定楼层
1
发表于 2005-3-11 21:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如果在一个PART中引用了另一个PART中的FEATURE, 如何在程序中获得它的原始对象?是用CATIMechanicalImport吗?怎么用呀?
  
谢谢各位!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-3-12 09:41:57 | 只看该作者
我也遇到这个问题啊,等待各位高手的帮忙。谢谢。
3
发表于 2005-3-17 10:06:28 | 只看该作者
怎么没人解答吗?
4
发表于 2005-3-17 20:52:53 | 只看该作者
I found the solution:
  
first, you should go to Tools/Options/Infrastructure/PartInfrastructure, in Tab General, in the first block "external reference", select the first checkbox.
  
Code:
  
CATIPrtPart_var spPart(spSpecOnPart); // you get a part
CATListValCATISpecObject_var spBodies = spPart->GetImportedBodies();
int size = spBodies.Size();
CATUnicodeString extRefs;
for(int i=1; i<=size; i++)
{
  CATIMechanicalImport_var spImport(spBodies);
  CATISpecObject_var spOrig = spImport->GetSelectedFeatureInSourceProduct();
  CATIAlias_var spAlias(spOrig);
  CATUnicodeString strAlias = spAlias->GetAlias();
  
  extRefs += strAlias + ", ";
}
  
With CATIPrtPart::GetImportedBodies() you get the body refernces in the same part, and with CATIMechanicalImport::GetSelectedFeatureInSourceProduct() you get the original ones.
  
Does anybody know, how I can get the mapping of a feature and the external reference, which this feature is using (in the same part)? I mean, I have many features and many external references in a part, how can I find out, which feature uses which external reference? Any idea?
Thank you!
5
发表于 2005-3-18 14:53:43 | 只看该作者
可以参考 powercopy
建议而已,对不对不知道
6
发表于 2005-5-24 15:58:02 | 只看该作者
很遗憾地告诉你
CATIMechanicalImport在V5R15GA里出问题了,DS说给个代替的interface,但要等到sp2
7
发表于 2005-5-24 16:18:29 | 只看该作者
和powercopy应该不同
  
powercopy是靠feature的CATIAttrBehavior的GetRequestedBehavior()来实现
  
返回的CATBehaviorSpecs的内容只能是同个part里的spec, 参照的linker也可以的
如果你这这时候用鼠标点了其他part的东西,powercopy命令的FeatureImportAgent会替你做个external reference,然后把它做为输入
8
发表于 2005-5-24 16:33:53 | 只看该作者
Does anybody know, how I can get the mapping of a feature and the external reference, which this feature is using (in the same part)? I mean, I have many features and many external references in a part, how can I find out, which feature uses which external reference? Any idea?
Thank you!
  
一个一个找的方法比较笨,但肯定可以实现
CATISpecObject->CATISpecAttribute->找里面所有以tk_specobject的特性,然后把它变为CATBaseUnknown,再和external reference比较是不是一样
  
用PathElement或许也可以找到
  
或许有更好的方法,但在公开的interface好像没注意到过有相关的
9
发表于 2005-5-25 18:46:52 | 只看该作者
非常感谢你的回答.
  
还有一个问题:  CATISpecObject 的Attribute有何作用?如果我改变tk_specobject的特性,是不是这个CATISpecObject就指向另一个external reference?
我实际上想用程序实现"替代"的功能,就象右击鼠标后出现的Context Menu 里的那个Replace.
不知道CATIReplace是否能实现这个功能,或者它只是改变CATISpecObjec特性而已?
10
发表于 2005-5-25 22:49:38 | 只看该作者
Replace的filter是通过CATIAttrBehavior来实现的,
  
CATIReplace的Imp具体有什么用不太明了,按照ds的推荐,GSD的featuer不必自己写,solid的feature要。可以我做过的几个solid的feature好像自己不写也可以,或许默认的CATSpecReplaceExt::Replace(iNameOfRole,ispNewElement,ispOldValue)就够了
  
这2个都是feature的extension imp,所以如果你不自己做catalog建feature了话,一般不会接触到他们
  
自己写想万能的Replace?就用CATIAttrBehavior来取filter好了。举个例子,Pad应该有Skech的tk_specobject,但如果你给它换个CATCkeParm,结果可想而知。所以必须用filter做限制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-24 02:08 , Processed in 0.034184 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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