明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1758|回复: 2

请教大虾们~~如何将一个多边形用矩形外接?

[复制链接]
发表于 2006-8-24 11:17:00 | 显示全部楼层 |阅读模式

AutoCAD中的一个多边形图形,想把它用矩形外接,框起来.

我对objectarx还不很熟悉,不清楚有那些方法实现

有没有直接操作的函数?

要不然就先读多边形的每个顶点,经过判断后用直线化一个矩形?

帮我讲讲可能实现的思路好吗?谢谢~~~~~~~~~~~~!!

发表于 2006-8-24 21:42:00 | 显示全部楼层

用 getGeomExtents 得到实体的外围框后再添加一个轻多段线就可以吧...

void test()
{
 ads_name en;
 ads_point pt;
 if(acedEntSel("\nSpecify a object:",en,pt)!=RTNORM)
  return;
 AcDbObjectId eId;
 acdbGetObjectId(eId,en);
 AcDbEntity *pEnt;
 acdbOpenAcDbEntity(pEnt,eId,AcDb::kForRead);
 AcDbExtents exts;
 if(pEnt->getGeomExtents(exts)!=Acad::eOk)
 {
  acutPrintf("\n**Error on get the extents point...");
  pEnt->close();
  return;
 }
 acutPrintf("\nThe maxPoint=%0.4f,%0.4f",exts.maxPoint()[X],exts.maxPoint()[Y]);
 acutPrintf("\nThe minPoint=%0.4f,%0.4f",exts.minPoint()[X],exts.minPoint()[Y]);
 pEnt->close();
 
 // will be add a polyline to the ModelSpace
 // the vertex point will be add to the ptArray
 AcGePoint3dArray ptArray;
 ptArray.append(exts.minPoint());
 AcGePoint3d ptTemp;
 ptTemp[X]=exts.maxPoint()[X];
 ptTemp[Y]=exts.minPoint()[Y];
 ptTemp[Z]=exts.minPoint()[Z];
 ptArray.append(ptTemp);
 ptArray.append(exts.maxPoint());
 ptTemp[X]=exts.minPoint()[X];
 ptTemp[Y]=exts.maxPoint()[Y];
 ptTemp[Z]=exts.minPoint()[Z];
 ptArray.append(ptTemp);

 AcDb2dPolyline *pNewLine=new AcDb2dPolyline(AcDb::k2dSimplePoly,ptArray,0.0,Adesk::kTrue);
 pNewLine->setColorIndex(1);

 AcDbBlockTable *pBlockTable;
 acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
 AcDbBlockTableRecord *pMS;
 pBlockTable->getAt(ACDB_MODEL_SPACE,pMS,AcDb::kForWrite);
 pBlockTable->close();
 pMS->appendAcDbEntity(eId,pNewLine);
 pNewLine->close();
 pMS->close();
}

 楼主| 发表于 2006-8-25 11:28:00 | 显示全部楼层

哇塞~~~~~~~

大虾

谢谢你啊~~!!!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 22:32 , Processed in 0.174767 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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