天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 4|回复: 0

判断一个点是否在面域上的边上), double dMinDist = 1;

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    int isPointOnRegion( bool& bIsOn, AcGePoint3d pt,AcDbObjectId regionId,double dMinDist )
    {
    Acad::ErrorStatus es;
    bIsOn = false ;

    AcDbRegion* pRegion ;
    es = acdbOpenObject( pRegion, regionId, AcDb::kForRead );
    if( es ) return 1;

    AcDbVoidPtrArray entitySet;
    es = pRegion->explode( entitySet );
    pRegion->close();
    if ( es )
    {
      return 2;
    }


    for ( int i = 0; i < entitySet.length() ; i ++ )
    {
      if(!((AcDbEntity*)entitySet[i])->isKindOf(AcDbCurve::desc())) continue;

      AcDbCurve *pCurve = ((AcDbCurve*&)entitySet[i]);
      if ( pCurve == NULL )
      {
       continue;
      }

      // 清空
      if( bIsOn )
      {
       delete pCurve;
       continue;
      }

      AcGePoint3d ptOn;
      es = pCurve->getClosestPointTo( pt, ptOn );
      if ( es )
      {
       delete pCurve ;
       return 3 ;
      }
      delete pCurve ;
      pt.z = ptOn.z = 0;

      if ( pt.distanceTo( ptOn ) <= dMinDist )
      {
       bIsOn = true ;
       break ;
       }
    }


    return 0;
    }

     

     

     

     

    判断一个点是否在面域上的边上), double dMinDist = 1;
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:25 , Processed in 0.057394 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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