天气与日历 切换到窄版

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

‎从 ObjectARX 中的某个区域(实体或实体)获取点

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
‎从 ObjectARX 中的某个区域(实体或实体)获取点‎   Get points from a region (solid or body) in ObjectARX
[code]// Make sure you uncomment the following

//      #define _BREP_SUPPORT_

// On your StdAfx.h header file

// This will enable BREP on the code

static void getPoints(

            AcDbObjectId id,

            AcGePoint3dArray &points )

{   

  AcBrBrep*pBrep = new AcBrBrep;

  pBrep->setSubentPath( AcDbFullSubentPath( id, kNullSubentId ));  

  AcBrBrepFaceTraverser brFaTrav;

  for (brFaTrav.setBrep(*pBrep);!brFaTrav.done();brFaTrav.next())

  {      

    AcBrFaceLoopTraverser faLoTrav;      

    AcBrFace face;   

    brFaTrav.getFace(face);   

    for(faLoTrav.setFace(face);!faLoTrav.done();faLoTrav.next())

    {         

      AcBrLoopEdgeTraverser loEdTrav;

      if(loEdTrav.setLoop(faLoTrav) == AcBr::eOk)

      {           

        for( ; !loEdTrav.done(); loEdTrav.next())

        {            

          AcBrEdge edge;   

          loEdTrav.getEdge(edge);

          AcBrVertex start;     

          edge.getVertex1( start );  

          AcGePoint3d pt;           

          start.getPoint( pt );   

          points.append( pt );      

        }         

      } // else its an isolated loop   

    }   

  }

  delete pBrep;

}



static void AdskPointsFromRegion_GetPoints(void)

{

  ads_name eName;  

  ads_point pt;  

  if( RTNORM != acedEntSel(

    _T("\nPlease select a region "),

    eName, pt ) )

    return;

  AcDbObjectId id;

  acdbGetObjectId( id, eName );

  AcDbRegion*pRegion;   

  acdbOpenObject(pRegion, id, AcDb::kForRead );

  if( pRegion == NULL )   

    return;

  AcGePoint3dArray points;

  pRegion->close();

  getPoints( id, points );

  int nPoints = points.length();

  for( int i=0; i<nPoints; i++ )

  {

    acedGrDraw(

      asDblArray(points[i]),

      asDblArray(points[(i+1)%nPoints]), 1,0 );

  }

}[/code]

 

 

 

 

‎从 ObjectARX 中的某个区域(实体或实体)获取点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 13:32 , Processed in 0.146633 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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