2015年9月6日

计算两点之间连线的一半长度

摘要: double HalfLength(AcGePoint3d pt1, AcGePoint3d pt2){ double radius = 0; double len1 = ( pt2.y - pt1.y); double len2 = ( pt2.x - pt1.x); radius = sqrt(... 阅读全文

posted @ 2015-09-06 16:20 !!-阳光-!! 阅读(309) 评论(0) 推荐(0) 编辑

计算两点中的中点

摘要: //计算两点之间的中点AcGePoint3d MidPoint(AcGePoint3d pt1, AcGePoint3d pt2){ AcGePoint3d pt; pt.x = (pt1.x + pt2.x)/2; pt.y = (pt1.y + pt2.y)/2; pt.z = (pt1.z +... 阅读全文

posted @ 2015-09-06 16:19 !!-阳光-!! 阅读(480) 评论(0) 推荐(0) 编辑

检查所有实体的编号是否重复

摘要: //在cad画图中经常为遇到需要对实体进行编号的操作,这样就会存在可能因为认为操作而导致的编号重复的问题, 这样就需要程序有自动检测编号是否重复的问题,此代码是根据自己所做的项目进行编写的,所以不能使用与所有的 代码中,但思路可以借鉴。//检查所有实体的编号是否有重复部分void SignRepet... 阅读全文

posted @ 2015-09-06 16:18 !!-阳光-!! 阅读(812) 评论(0) 推荐(0) 编辑

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

摘要: //entId为指定实体的Idvoid SignEnt(AcDbObjectId entId){ AcDbEntity *pEnt = NULL; AcDbBlockReference *pRef; //打开对应实体 Acad::ErrorStatus es = acdbOpenObject(pEn... 阅读全文

posted @ 2015-09-06 16:14 !!-阳光-!! 阅读(662) 评论(0) 推荐(0) 编辑

获取具有指定扩展数据的所有实体的Id,并存入Id数组中

摘要: AcDbObjectIdArray ObtainEntId(){ //获取块表 AcDbBlockTable *pBlkTbl; acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlkTbl, ZcDb::kFo... 阅读全文

posted @ 2015-09-06 16:09 !!-阳光-!! 阅读(270) 评论(0) 推荐(0) 编辑

删除用户选中的实体

摘要: //功能:把用户选择的实体从该模型空间中删除,pEnt :选中的实体, 返回该实体的Id。AcDbObjectId RemoveEnt(AcDbEntity *pEnt){ //选择要删除的实体 ads_name ss; ads_point pt; int nRs = acedEntSel(_T("... 阅读全文

posted @ 2015-09-06 16:04 !!-阳光-!! 阅读(265) 评论(0) 推荐(0) 编辑

删除选中图层中的所有实体

摘要: //函数中的参数strLayerName :图层名;objIds :为该图层中所有实体的Id集合AcDbObjectIdArray EntIntLayer(CString strLayerName, AcDbObjectIdArray objIds){ //获得此图层空间内的所有实体 TCHAR *... 阅读全文

posted @ 2015-09-06 16:01 !!-阳光-!! 阅读(759) 评论(0) 推荐(0) 编辑

根据用户选择的实体,确定该实体所在的图层

摘要: CString LayerByEnt(AcDbObjectId objId){ //选择实体 ads_name ss; ads_point pt; int nRs = acedEntSel(_T("\n 请选择要删除图层的一个实体:"), ss, pt); if (RTNORM != nRs) { ... 阅读全文

posted @ 2015-09-06 15:55 !!-阳光-!! 阅读(390) 评论(0) 推荐(0) 编辑

导航