找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 509|回复: 1

[ARX程序]:AcBrEdge::getCurve函数(请斑竹,高手们帮忙看看)

[复制链接]
发表于 2006-5-11 11:54:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
for( brFaTrav.setBrep( *pBrep); !brFaTrav.done(); brFaTrav.next() ) //有几个域(几个分开的域共同组成一个面域)
        {
                REGION_FACE regionFace; //连通域
                AcBrFaceLoopTraverser faLoTrav;
                AcBrFace face;
                brFaTrav.getFace(face);
                for( faLoTrav.setFace(face); !faLoTrav.done(); faLoTrav.next() ) //一个域的 内切边界,与外切边界
                {
                        AcBrLoopEdgeTraverser loEdTrav;
                        loEdTrav.setLoop(faLoTrav);
                        REGION_BOUNDARY curves; //连通 域 的边界
                        if( loEdTrav.setLoop(faLoTrav) == AcBr::eOk )
                        {
                                for( ; !loEdTrav.done(); loEdTrav.next() )
                                {
                                        REGION_CURVE regionCurve;
                                        AcBrEdge edge;
                                        loEdTrav.getEdge(edge);
                                        edge.getCurveType(regionCurve.type);
                                        if(regionCurve.type == AcGe::kLineSeg3d)
                                        {
                                                AcGeCurve3d* pLineSeg;
                                                edge.getCurve(pLineSeg);
                                                regionCurve.pCurve = pLineSeg;
                                                regionCurve.bulge = 0.0;
                                        }
                                        else if(regionCurve.type == AcGe::kCircArc3d)
                                        {
                                                AcGeCurve3d* pArc;
                                                edge.getCurve(pArc);
                                                regionCurve.pCurve = pArc;
                                                CString s; s.Format("%f,%f",((AcGeCircArc3d*)pArc)->endAng(),((AcGeCircArc3d*)pArc)->startAng()); AfxMessageBox(s);
                                                double ang = 0.25 * (((AcGeCircArc3d*)pArc)->endAng() - ((AcGeCircArc3d*)pArc)->startAng()); //???此处我要取出弧的参数,可是起始角,中止角总返回0
                                                regionCurve.bulge = tan(ang);
                                        }
                                        AcBrVertex ptV1, ptV2;
                                        edge.getVertex1( ptV1 );
                                        edge.getVertex2( ptV2 );
                                        ptV1.getPoint(regionCurve.pt1);
                                        ptV2.getPoint(regionCurve.pt2);
                                        curves.append(regionCurve);
                                }
                        }
                        regionFace._inBoundaryArr.append(curves);
                        //regionFace._outBoundary = curves;
                }
                if(!regionFace._inBoundaryArr.isEmpty()) //最后进入边界数组的边界为域的外边界
                {
                        regionFace._outBoundary = regionFace._inBoundaryArr[regionFace._inBoundaryArr.length()-1];
                        regionFace._inBoundaryArr.removeAt(regionFace._inBoundaryArr.length()-1);
                }
                region.append(regionFace);
        }

我的问题就是,我用AcBrEdge::getCurve() 函数取出的AcGeCurve3d,判断其如果是弧的话,就取到它的弧参数(角度等等),可是取到的都是0,而起始点,中止点可以取到,如果是线的话也可以取到参数,就是弧的起始角,中止角取不到....有大侠用过没??这是怎么回事啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-5-13 11:29:36 | 显示全部楼层
没有人知道吗?
我也想知道阿
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-12 05:54 , Processed in 0.219490 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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