得到选中的实体,修改实体如等分线段
AcGeVector3d是点阵的集合,通过等分点的差集得到。
新的点可以通过点与点阵相差得到。

static void ArxProject2partLine(void)
{ads_name entName;ads_point pt;acedEntSel( _T("\n选择:"),entName,pt);//得到选中的实体AcDbObjectId ObjId;//得到实体IDif( acdbGetObjectId(ObjId,entName) != Acad::eOk )//如果没有选中的实体则返回{acutPrintf( _T("\nno"));return;}AcDbEntity* pEnt;//得到实体if( acdbOpenObject(pEnt,ObjId,AcDb::kForRead) == Acad::eOk){acutPrintf( _T("\nok"));AcDbLine* pLine = (AcDbLine* )pEnt;//强制转换AcGePoint3d ptStart = pLine->startPoint();//得到起点AcGePoint3d ptEnd = pLine->endPoint();pEnt->close();//根据点和线的方向生成点组,绘制线段int nPart = 5;//五等分AcGeVector3d Vect = (ptEnd - ptStart)/nPart;//矩阵,点与点的差集平分可得到for (int n=0; n<nPart; n++){AcDbObjectId ObjIdNew;MakeLine(ptStart+n*Vect,ptStart+(n+1)*Vect,ObjIdNew);//等分线段的方法}//将选中的线段删除,if( acdbOpenObject(pEnt,ObjId,AcDb::kForWrite) == Acad::eOk ){pEnt->erase();pEnt->close();}}
}
**将实体添加到数据库**
static Acad::ErrorStatus AddToDb(AcDbEntity* ent, AcDbObjectId& objId)
{    Acad::ErrorStatus      es;AcDbBlockTable*        pBlockTable;AcDbBlockTableRecord*  pSpaceRecord;if ((es = acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead))!= Acad::eOk) {return es;}if ((es = pBlockTable->getAt(ACDB_MODEL_SPACE, pSpaceRecord,AcDb::kForWrite)) != Acad::eOk) {return es;}if ((es = pBlockTable->close()) != Acad::eOk) {return es;}if ((es = pSpaceRecord->appendAcDbEntity(objId, ent)) != Acad::eOk) {return es;}return pSpaceRecord->close();
}static void MakeLine(AcGePoint3d ptStart,AcGePoint3d ptEnd,AcDbObjectId lineId){AcDbLine *pLine = new AcDbLine(ptStart,ptEnd);if(AddToDb(pLine,lineId)!=Acad::eOk)//传入指针,传出idAfxMessageBox( _T("加入实体到数据库失败!"));pLine->close();}

C++ ARX CAD二次开发实体操作相关推荐

  1. CAD 二次开发 图层操作(3)取得指定图层下的所有对象id

    对于CAD二次开发的人来说,可能需要对某一图层下的实体(点,线,面域,块,三维实体)进行不同的操作.下面的方法,即可实现获取指定图层名称下的所有实体ID. 输入参数为图层名称: 返回值为:对象主键集合 ...

  2. CAD 二次开发 图层操作(1)创建图层

    CAD二次开发的资料比较少,除了李冠亿先生的<深居浅出AutoCAD二次开发>这本书之外,目前没有找到合适的参考资料.现将自己工作中用的的一些方法贴出来.方便各位网友快速入门. #regi ...

  3. 【CAD二次开发】实现双击实体的响应

    一.基本双击响应实现 通过向导在VS中创建MFC支持的新项目: 项工程中添加普通CDoubleClick类, 基类选择AcDbDoubleClickEdit: 类的头文件为: class CDoubl ...

  4. 关于objectArx /CAD二次开发中“属性块”操作

    关于objectArx /CAD二次开发中"属性块"操作 属性块就是在图块上附加一些文字属性(Attribute),这些文字可以非常方便地修改.属性块被广泛应用在工程设计和机械设计 ...

  5. c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等

    c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...

  6. 我的CAD二次开发程序中的操作excel的部分

    这是我的CAD二次开发程序中的操作excel的部分,特此分享 using System; using System.Collections.Generic; using System.Text; us ...

  7. c# cad 二次开发 类库 块的操作

    c# cad 二次开发 类库 块的操作 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServi ...

  8. c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格

    c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCA ...

  9. c# cad二次开发实现注记搜索跟扩展属性搜索,并点击即可定位到位置,添加了界面操作

    c# cad二次开发实现注记搜索跟扩展属性搜索,并点击即可定位到位置,添加了界面操作 在这里插入图片描述 using Autodesk.AutoCAD.DatabaseServices; using ...

最新文章

  1. 【转】early-z、z-culling、hi-z、z-perpass
  2. 存储过程 触发器 约束
  3. free -m 下的含义
  4. SAP License:部分清帐和剩余清帐的区别(实例)
  5. 像素生存者2为什么显示服务器不可用,像素生存者2为什么更新了玩不了 | 手游网游页游攻略大全...
  6. 两款程序员的好帮手——BitNami,Hoo WinTail
  7. windows7电脑备份系统教程
  8. nokia手机的含义
  9. 手机cpu性能天梯图2022 手机cpu性能排行2022 手机cpu哪个好
  10. B树代码实现--C++
  11. Jenkin权限控制——基于角色授权策略
  12. 日本某地发生了一件谋杀案
  13. 【小程序】QQ小程序的入门与开发
  14. 从一个url地址到最终页面渲染完成,发生了什么?
  15. 计算机冷门领域,毕业后很吃香的三大“冷门”专业!不比热门专业差,适合中等考生...
  16. VC++ Tab Control控件的基本用法
  17. 应届生面试要点总结(10)操作系统相关
  18. vscode运行php报错php not found
  19. 自己训练的Resnet部署(python版本)
  20. Android 监听home、锁屏、解屏简单实现

热门文章

  1. 七彩动态|棱镜七彩获“北京国家金融科技认证中心”颁发的「金融开源技术服务商能力评估证书」
  2. iuplua 简易记事本开发
  3. 程序猿生存指南-32 实习招聘(下)
  4. 湖南hp服务器虚拟化解决方案,惠普扩展HP ProLiant服务器虚拟化功能
  5. 荣耀智慧屏鸿蒙安装第三方软件的方法,华为荣耀智慧屏安装第三方软件的教程,图文详解,一看就会!...
  6. 力天创见Brickstream客流统计系统
  7. Photoshop极坐标滤镜巧绘三维游泳圈
  8. SQLServer用windows身份验证后没有权限问题
  9. Lanecat网猫内网功能介绍
  10. Carsim 对开路面和对接路面