码迷,mamicode.com
首页 > 其他好文 > 详细

使用画圆的方法来标注指定Id的实体

时间:2015-09-06 17:38:05      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

//entId为指定实体的Id

void SignEnt(AcDbObjectId entId)
{
AcDbEntity *pEnt = NULL;
AcDbBlockReference *pRef;
//打开对应实体
Acad::ErrorStatus es = acdbOpenObject(pEnt, entId, ZcDb::kForRead, false);
if ( Acad::eOk != es )
{
acutPrintf(_T("\n打开对应Id的实体失败!"));
return ;
}
if(pEnt->isKindOf(AcDbBlockReference::desc()))
{
//将实体转化为块参照
pRef = AcDbBlockReference::cast(pEnt);

//获得块参照的外框
AcDbExtents exts;
pRef->getGeomExtents(exts);

AcGePoint3d ptMin = exts.minPoint();//外框最小点
AcGePoint3d ptMax = exts.maxPoint();//外框最大点

//获取块参照的外框中心点, MidPoint函数为自己编写,即求两点之间的中心点
AcGePoint3d ptCenter = MidPoint(ptMin, ptMax);
pRef->close();

//获得两点连线的一半长度,HalfLength函数为自己编写,即求两点连线的长度的一半
double radius = HalfLength(ptMin, ptMax);

//以插入点为圆心画圆,标记重复的编号
AcGeVector3d vec(0, 0, 1);

//创建实体圆
AcDbCircle *pCircle = new AcDbCircle(ptCenter, vec, radius);


//将圆添加到模型空间,PostToModelSpace函数为自己编写的,作用是向模型空间中添加实体
PostToModelSpace(pCircle);
}

使用画圆的方法来标注指定Id的实体

标签:

原文地址:http://www.cnblogs.com/pengjun-shanghai/p/4786341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!