找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

CAA中创建交线的问题

[复制链接]
跳转到指定楼层
1
发表于 2005-5-29 16:09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手:
      我用CATIGSMFactory::CreateIntersect()创建一个投影曲线和另外一个曲线的11个点处的法线的交点,但是由于某些法线和投影曲线不一定相交(虽然它们在同一个平面上,可是投影曲线不够长),我在程序中用了一个for循环来完成相交:
for(int j=0;j<=10;j++)
{
//create intersection of lines and curve  
    CATISpecObject_var spInterectionOfLineAndCurve=NULL_var;
    ListForIntersect.Append(spProjection);
    ListForIntersect.Append(spLineNormalToCurve);
    spInterectionOfLineAndCurve=CAAGsiObjTool.CreateIntersect(ListForIntersect,FALSE);
}
因此这11个点处肯定有几个地方spProjection和spLineNormalToCurve没有交点,我想在这里怎么处理这种情况,因为不处理的话就会出现更新错误,如下图

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-5-29 18:35:33 | 只看该作者
判断得到的spInterectionOfLineAndCurve是否为空,若为空则删除节点。
我的想法,未验证,呵呵。
3
发表于 2005-5-29 20:37:19 | 只看该作者
你可以对你建的intersectionFeature进行更新,用CATTry截获错误信息
4
发表于 2005-5-29 22:16:12 | 只看该作者
好的,谢谢两位,我试试看。
:)
5
发表于 2005-5-30 11:41:41 | 只看该作者
截获了后怎么处理啊?是不是要删除这个节点,怎样删除一个节点呢?
6
发表于 2005-5-30 12:06:30 | 只看该作者
我试过了,在没有交点的地方(图中有感叹号的地方),spInterectionOfLineAndCurve也不是空的(!=NULL_var),用异常的方法acoka兄能不能说在具体些?
CATTry()
{
spInterectionOfLineAndCurve->UpDate();
然后呢?
}
7
发表于 2005-5-30 13:41:58 | 只看该作者
现在知道了怎么删除一个点,可是还是不知道怎么判断那些交点有问题,在程序中判断spInterectionOfLineAndCurve是否为空的方法好像行不通,用spInterectionOfLineAndCurve->Update();直接放在程序里不行,出错,提示更新错误,好像只有用异常处理了。
8
发表于 2005-5-30 15:21:31 | 只看该作者
方法1:
        CATCatch( CATError, pError ){
          if(!!pFirstError){
            更新出错;
        }
        CATEndTry;
  
方法2:
更新后求spInterectionOfLineAndCurve的body,
  
方法3:
更新后看 spInterectionOfLineAndCurve->IsUpToDate()
9
发表于 2005-5-31 19:54:16 | 只看该作者
对于方法1,是不是当出错的时候给用户一个提示信息,然后程序就中止了?
方法2没有理解。
方法3能否说具体些,能不能做到cms_nuaa 说的把有问题的节点删除掉?那些节点不是NULL_var。
10
发表于 2005-5-31 23:14:43 | 只看该作者
CATCatch( CATError, pError ){
          if(!!pError){
            pError->Release();
            pError = NULL;
            CATError::ClearLastError();
            这里删除点;
        }
        CATEndTry;  
  
2求Body,如果没有交差,Body应该为NULL,
  
3不推荐使用,因为它只能告诉你这个feature还没有更新而已,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-23 21:39 , Processed in 0.024761 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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