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

iCAx开思网

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

如何获得操作树中的镜像操作

[复制链接]
跳转到指定楼层
1
发表于 2014-5-19 15:15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我要判断零件的对称性问题,想通过提取镜像操作获得,求教如何获取镜像操作?谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2014-5-29 20:30:27 | 只看该作者
CATIGSMSymmetry
3
发表于 2014-5-29 21:17:02 | 只看该作者
linlily0925 发表于 2014-5-29 20:30
CATIGSMSymmetry

嗯,已经解决一部分了,下面这段代码只能检测到以实体为对象的镜像特征,而以特征树上选择的对象生成的镜像特征就识别不出来,应该是GetBReps()函数的问题,不知道该怎么改

                        CATLISTV(CATISpecObject_var) filletFeatures;
                        CATIDescendants *pPartAsDescendant = NULL;
                        rc = spPart->QueryInterface(IID_CATIDescendants, (void**)&pPartAsDescendant) ;
                        if( FAILED(rc) )
                        {
                                cout <<" The MechanicalPart does not implement CATIDescendant" << endl;
                        }

//                        pPartAsDescendant->GetAllChildren("CATIFillet", filletFeatures);
                        pPartAsDescendant->GetAllChildren("CATIMirror", filletFeatures);
                        cout<<filletFeatures.Size()<<"个倒角操作"<<endl;

                        for(int currentFillet=1; currentFillet<=filletFeatures.Size(); currentFillet++)
                        {
                        const CATISpecObject_var& currentfilletFeature = filletFeatures[currentFillet];
                        if ( NULL_var != currentfilletFeature )
                        {
                                //
                                // 6-2 Gets the BRep associated with the fillet
                                //
                                CATIMfGeometryAccess *pFilletAsGeomAccess = NULL;
                                        rc= currentfilletFeature->QueryInterface(IID_CATIMfGeometryAccess,
                                        (void**)&pFilletAsGeomAccess) ;

                                if ( SUCCEEDED(rc) )
                                {
                                        CATLISTV(CATBaseUnknown_var) filletBReps;
                                        pFilletAsGeomAccess->GetBReps(filletBReps);     
                                        // 6-3 Colorizes BRep
                                        for(int currentBRep=1; currentBRep<=filletBReps.Size(); currentBRep++)
                                        {
                                                CATIVisProperties *pFilletBrepAsGraphics = 0;
                                                const CATBaseUnknown_var& currentfilletBRep = filletBReps[currentBRep];
                                                if (NULL_var != currentfilletBRep)
                                                        rc =  currentfilletBRep->QueryInterface(IID_CATIVisProperties,
                                                        (void**)&pFilletBrepAsGraphics) ;
                                                else
                                                        rc = E_FAIL;

                                                if ( SUCCEEDED(rc) )
                                                {               
                                                        CATVisPropertiesValues color;
                                                        color.SetColor(0, 255, 0); // green
                                                        pFilletBrepAsGraphics->SetPropertiesAtt(color, CATVPColor, CATVPMesh);

                                                        pFilletBrepAsGraphics->Release();
                                                        pFilletBrepAsGraphics = NULL ;
                                                }
                                        }
                                        pFilletAsGeomAccess->Release();
                                        pFilletAsGeomAccess = NULL ;
                                }
                        }
                        }
                        pPartAsDescendant->Release();
                        pPartAsDescendant = NULL ;
                }

4
发表于 2014-7-27 09:05:15 | 只看该作者
有没有简单点的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-22 21:06 , Processed in 0.024824 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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