摘要: 阅读全文
posted @ 2019-05-02 17:12 edata 阅读(4019) 评论(0) 推荐(2) 编辑
摘要: 测试代码 由于autocad没有公布动态块块定义的相关接口,无法遍历到可见性的名称列表,现有的api只能得到名称,不能确定是可见性还是其他属性,不能够精确的判断。 此例子可以通过遍历数据库所有对象,通过dxf名称获取可见性句柄,通过entget方式获取相关信息。代码如下。 AcDbDatabase 阅读全文
posted @ 2021-12-01 22:36 edata 阅读(22) 评论(0) 推荐(1) 编辑
摘要: ###代码 多段线带弧形宽度闭合效果 assertReadEnabled () ; AcGePoint2d p1(0,0); AcGePoint2d p2(10,0); AcGePoint2d p3(10,10); AcGePoint2d p4(0,10); AcGePoint2d p1x(0,1) 阅读全文
posted @ 2021-11-03 22:21 edata 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 标注文字处于标注块中 ads_point pt; ads_name ent; if (RTNORM != acedEntSel(_T("\n选择一个标注"),ent,pt)) { return; } AcDbObjectId objId; acdbGetObjectId(objId,ent); Ac 阅读全文
posted @ 2021-11-02 21:17 edata 阅读(75) 评论(0) 推荐(0) 编辑
摘要: ###模型空间的视口和图纸空间的视口一样可以叠加 ###叠加玩法ARX代码 //复制重叠模型空间当前视口 AcDbDatabase *pDb=curDoc()->database(); if (NULL == pDb) { acutPrintf(_T("\n获取数据库指针失败!")); return 阅读全文
posted @ 2021-11-02 20:47 edata 阅读(49) 评论(0) 推荐(1) 编辑
摘要: AcDbDatabase *pDb = acDocManager->mdiActiveDocument()->database(); if (!pDb) { acutPrintf(_T("\nNullDabase!")); return; } AcTransaction *pTrans = actr 阅读全文
posted @ 2021-10-05 13:34 edata 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 效果 方式一 通过实体所在对象的永久反应器获取组对象 ads_name ent; ads_point pt; if (RTNORM != acedEntSel(_T("\n选择对象: "),ent,pt)) { return; } AcDbObjectId objId; acdbGetObjectI 阅读全文
posted @ 2021-07-04 13:02 edata 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 新建MFC Dll项目 选择使用共享MFC 右键项目属性 选择所有配置,所有平台,修改目标扩展名为.arx 选择调试,在命令中浏览或编辑acadexe路径 选择链接器 ,找到输出文件地址,复制备用 回到调试在命名参数添加小写/LD+输出文件路径 /ld "$(OutDir)$(TargetName) 阅读全文
posted @ 2021-05-12 11:28 edata 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 新建MFC Dll项目,设置项目名称和保存位置. 默认即可 解决方案右键项目属性 修改目标扩展名为.arx,注意当前平台为win32 修改md模式 修改_DEBUG预定义为_NDEBUG 添加包含目录,当前win32添加 inc和inc-win32目录 添加库目录,lib-win32 选择链接器,常 阅读全文
posted @ 2021-05-11 23:26 edata 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 条件准备 ARXSDK 和 VS2019(要选择安装c++,mfc,windows10SDK) 略过! ARXSDK可以参考 https://www.cnblogs.com/edata/p/14243995.html VS2019自行解决. 新建mfc动态链接库 输入项目名称和项目保存位置 默认使用 阅读全文
posted @ 2021-05-11 22:43 edata 阅读(479) 评论(0) 推荐(0) 编辑
摘要: ObjectARX递归AcArray数组组合函数 图文by edata , 转载注明出处 http://www.cnblogs.com/edata ObjectARX QQ群: 630401507 (仅ObjectARX)AutoCAD.net QQ群: 193522571 (ObjectARX\A 阅读全文
posted @ 2021-02-15 12:18 edata 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 使用定时器可以延时操控cad,不影响视图操作。如果你在定时器运行期间使用命令,可能会导致定时器生成的实体无法刷新,变为当前不可见实体。 示例代码 //声明静态全局变量 static int nPrintNumber=0; void CALLBACK MyCopyFunc(HWND hwnd,UINT 阅读全文
posted @ 2020-12-18 15:31 edata 阅读(227) 评论(0) 推荐(1) 编辑
摘要: 测试代码如下 ads_point pt; ads_name ent; if (RTNORM != acedEntSel(_T("\n选择对象: "),ent,pt)) { return; } AcDbObjectId objId; acdbGetObjectId(objId,ent); if (ob 阅读全文
posted @ 2020-12-18 13:53 edata 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 这是根据拾取点来获取 点实体AcDbPoint 的结果,明显遍历更快。 虽然有点以偏概全,但对于条件固定的选择,使用遍历是个更高效率的选择。 以下是测试源码。 static void getpoint1() { ads_name ss; ads_point pt; if (RTNORM!=acedG 阅读全文
posted @ 2020-10-24 16:19 edata 阅读(526) 评论(0) 推荐(0) 编辑
摘要: //插入属性块简单例子2020-10-11 by www.cnblogs.com/edata //指定块名 CString blkName=_T("123"); //指定块插入点 AcGePoint3d insertPoint(100,100,0); //ARX智能指针打开块表 AcDbBlockT 阅读全文
posted @ 2020-10-11 23:44 edata 阅读(572) 评论(0) 推荐(0) 编辑
摘要: ads_name ss; struct resbuf *rb=acutBuildList(RTDXF0,_T("REGION"),RTNONE); acutPrintf(_T("\n请选择两个需要布尔运算(交集)的面域: ")); if(RTNORM != acedSSGet(NULL,NULL,N 阅读全文
posted @ 2020-09-28 12:22 edata 阅读(480) 评论(0) 推荐(0) 编辑