iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 17560|回复: 0
打印 上一主题 下一主题

[技术交流] 请教下曲线类型判断过程中遇到的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-5 21:51:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
问题是这样的 想通过程序来得到与基准点相邻的两条拓扑线,其中一条是圆弧类型,另一条位直线类型。图中的白色线条是通过plane与实体模型做intersect相交出来的,现在已经得到了圆弧和直线的cell但是无论通过用IsATypeOf函数还是用QI到CATLine的方法都无法判断出来哪一条是圆弧或是直线

判断类型的程序段是这样的
for(int currentCell=1; currentCell<=cells.Size(); currentCell++)
{
    CATCell* _piLineCell=cells[currentCell];
    CATEdge * _piCurrentEdge=(CATEdge *)_piLineCell;
    CATVertex * _pStart=NULL;
    CATVertex * _pEnd=NULL;
    _piCurrentEdge->GetVertices(&_pStart,&_pEnd);
    if ((_piTheTopPtCell==_pStart)||(_piTheTopPtCell==_pEnd))
    {
        CATGeometry *pGeometry = _piLineCell->GetGeometry();
        if ((NULL != pGeometry))
        {
            cout<<"succeed get geo"<<endl;


            if (SUCCEEDED(pGeometry->QueryInterface(IID_CATLine, (void**)&spLine)))//((CATICGMUnknown*)pGeometry)->IsATypeOf(CATLineType)
            {
                cout<<"find the line"<<endl;
                //_piTheNextLineCell=_piLineCell;


            }
            else if (SUCCEEDED(pGeometry->QueryInterface(IID_CATCircle, (void**)&spCircle)))//((CATICGMUnknown*)pGeometry)->IsATypeOf(CATCircleType)
            {
                cout<<"find the circle"<<endl;
                //_piTheNextCircleCell=_piLineCell;
            }
            else
                cout<<"no type found"<<endl;
        }


    }


}
烦请路过的高手们解答下,多谢啦!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

GMT+8, 2024-11-24 10:22 , Processed in 0.017913 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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