找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

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

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

[复制链接]
跳转到指定楼层
1
发表于 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
 楼主| 发表于 2005-12-25 11:24:32 | 只看该作者

以前讨论过的问题

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

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

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

请指教

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

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

x
4
 楼主| 发表于 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 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-11-19 14:12 , Processed in 0.027612 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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