iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 27828|回复: 5
打印 上一主题 下一主题

CATIA&CAA中如何利用零件中发布(Publication)的几何对象进行装配约束?

[复制链接]
跳转到指定楼层
楼主
发表于 2005-12-25 11:22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

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

x
CATIA&CAA中如何利用零件中发布(Publication)的几何对象进行装配约束?(以前讨论过的问题,一直未解决,请高手门再关注一下!)
将一个螺栓零件中发布的轴线与用户选择的另一个零件上的孔轴线在程序中添加约束.用方式1时,再调用用 CreateConstraint添加约束,装配树

中可以看到约束被添加上了,但是查看约束属性时,螺栓零件的几何对象类型为"Unknown",故约束无效,实际上我已经将GetFinalObject获得的对

象转为CATLine了啊.而用方式2时,获得的pConnectorAxisOnBolt也不为空,但是用 CreateConstraint添加约束时则出现错误.问题的关键是
CATIPrdObjectPublisher对象的GetFinalObject或GetDirectObject获得的对象到底是什么,如何获得所发布几何对象的装配联接对象

CATIConnector*...请各位高手指教!!不胜感激!
       
        CATIPrdObjectPublisher *pDocPublisher=NULL;       
        rc=piInstanceProd->QueryInterface(IID_CATIPrdObjectPublisher, (void**)&pDocPublisher) ;
        //piInstanceProd为零件插入装配体的装配实例
        if( FAILED(rc) )
        {
                cout << "Error, the CATIPrdObjectPublisher is not found!!!!"<< endl;
                return FALSE;
        }       
       
        CATIConnector* pConnectorAxisOnBolt=NULL;
       
        if(pDocPublisher!=NULL)
        {               
                CATBaseUnknown *pAssObjInPub=NULL;
                CATUnicodeString oSubPublicationName;
                CATISpecObject_var pTestvar(NULL_var);
                if((pAssObjInPub=pDocPublisher->GetFinalObject("BOLT_ASS_AXIS"))!=NULL)       
                //“BOLT_ASS_AXIS”为发布的一个轴线对象
                //if((pDocPublisher->GetDirectObject("BOLT_ASS_AXIS",(CATBaseUnknown*&)pAssObjInPub,oSubPublicationName))==1)
                {                       
                        CATLine *axis;
                        //pAssObjInPub->QueryInterface(IID_CATLine,(void**)&axis);

                        //方式1——————————————————————————————————
                        axis=(CATLine*)pAssObjInPub;
                        pTestvar=axis;
                        CATILinkableObject_var  geometry1;
                        geometry1=pTestvar;
                        int iCreation=0;
                        GetProductConnector(geometry1,
                                                                   piInstanceProd,                                          
                                                                   iActiveComponent,
                                                                   0,
                                                                   pConnectorAxisOnBolt,   
                                                                   iCreation); //获取了pConnectorAxisOnBolt
                        //方式2——————————————————————————————————
                        //pConnectorAxisOnBolt=(CATIConnector *)pAssObjInPub;


                        //查看是否能获得装配连接对象pConnectorAxisOnBolt
                        if(pConnectorAxisOnBolt==NULL)//
                                cout<<"不能发现轴线:BOLT_ASS_AXIS装配连接对象!"<< endl;
                        else
                        {
                                cout <<"发现了轴线:BOLT_ASS_AXIS装配连接对象!"<< endl;
                        }
                        //piInstanceBolt=piInstanceProd;                       
                }
                ......
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
 楼主| 发表于 2005-12-25 11:24:32 | 只看该作者

以前讨论过的问题

马上注册登录,享用更多网站功能!

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

x
板凳
 楼主| 发表于 2005-12-25 11:39:09 | 只看该作者

请指教

马上注册登录,享用更多网站功能!

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

x
地板
 楼主| 发表于 2005-12-27 17:50:23 | 只看该作者

马上注册登录,享用更多网站功能!

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

x
5
 楼主| 发表于 2005-12-28 14:44:12 | 只看该作者

终于解决了

马上注册登录,享用更多网站功能!

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

x
6
发表于 2012-10-13 21:51:17 | 只看该作者

马上注册登录,享用更多网站功能!

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

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-12 05:17 , Processed in 0.024397 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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