摘要: 使用定时器可以延时操控cad,不影响视图操作。如果你在定时器运行期间使用命令,可能会导致定时器生成的实体无法刷新,变为当前不可见实体。 示例代码 //声明静态全局变量 static int nPrintNumber=0; void CALLBACK MyCopyFunc(HWND hwnd,UINT 阅读全文
posted @ 2020-12-18 15:31 edata 阅读(449) 评论(0) 推荐(2) 编辑
摘要: 测试代码如下 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 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 这是根据拾取点来获取 点实体AcDbPoint 的结果,明显遍历更快。 虽然有点以偏概全,但对于条件固定的选择,使用遍历是个更高效率的选择。 以下是测试源码。 static void getpoint1() { ads_name ss; ads_point pt; if (RTNORM!=acedG 阅读全文
posted @ 2020-10-24 16:19 edata 阅读(1139) 评论(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 阅读(1315) 评论(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 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: wblockCloneObjects从块定义写块到外部文件简单例子 AcDbObjectIdArray objIds; ads_name ent; ads_point pt; if (RTNORM != acedEntSel(_T("\n选择一个块参照对象:"),ent,pt)) { acutPri 阅读全文
posted @ 2020-09-25 12:28 edata 阅读(757) 评论(1) 推荐(0) 编辑
摘要: 三点引线附着块参照实例 // 创建AcDbLeader引线 ads_point p1,p2,p3; if (RTNORM != acedGetPoint(NULL,_T("\n请选择引线第一点: "),p1)) return; if (RTNORM != acedGetPoint(p1,_T("\n 阅读全文
posted @ 2020-07-19 17:11 edata 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: jigcpp主要修改 附上jigcpp文件 // (C) Copyright 2005-2007 by Autodesk, Inc. // // Permission to use, copy, modify, and distribute this software in // object co 阅读全文
posted @ 2020-05-10 22:42 edata 阅读(1891) 评论(1) 推荐(0) 编辑
摘要: 从ObjectARX 2013开始,ObjectARX向导取消了工具条,工具条可以添加管理命令,而没有工具条,添加命名比较麻烦, 一般都是复制粘贴修改向导提供的命令名,个人感觉比较麻烦. 所以我觉得使用vc助手va_x的代码片段功能可以实现简单的命令添加. 方法如下 片段参考代码 static vo 阅读全文
posted @ 2020-05-10 21:14 edata 阅读(1193) 评论(4) 推荐(1) 编辑
摘要: 属性块属性值遍历参考代码. //获取块参照属性 ads_name ent; ads_point pt; if (RTNORM != acedEntSel(NULL,ent,pt)) { acutPrintf(_T("\n未选择有效对象!")); return; } AcDbObjectId objI 阅读全文
posted @ 2020-04-07 22:30 edata 阅读(1675) 评论(0) 推荐(1) 编辑
摘要: 前言 用ARX智能指针打开对象,可以不在乎是否close,但同时也要注意这个变量的作用域(生命周期)问题,ARX智能指针,他的原理是利用类的析构造函数特性自动关闭对象. 这里的智能指针指的是AcDbObjectPointer这一类使用AcDbObjectPointerBase基类派生的类模板统称. 阅读全文
posted @ 2020-04-06 20:00 edata 阅读(1968) 评论(0) 推荐(1) 编辑
摘要: 有不少人是从autolisp转向ObjectARX开发,习惯了一些lisp的数据结构.虽然objectARX编程和lisp编程是不同编程语言,但是编程思想是可以相互借鉴的. 就拿这个点表排序来说,在lisp中常用的方式就是构建一个(点 图元名)的表集合,使用vl-sort来排序. 而在ObjectA 阅读全文
posted @ 2020-04-02 13:37 edata 阅读(1267) 评论(0) 推荐(0) 编辑
摘要: 转载来源:https://www.cnblogs.com/PiaoDbg/archive/2012/03/04/2379336.html C++ Unicode SBCS 函数对照表,以备日后查阅 GenericSBCSUNICODE TCHAR char wchar_t _TEOF EOF WEO 阅读全文
posted @ 2020-03-27 21:38 edata 阅读(539) 评论(0) 推荐(0) 编辑
摘要: C1189 Winver 0x501 fatal error C1189: #error: MFC does not support WINVER less than 0x0501. 方式一&方式二 注释掉后,vs会自动从WinSDKVer.h头文件获取 _WIN32_WINNT not defin 阅读全文
posted @ 2020-03-17 20:08 edata 阅读(2219) 评论(0) 推荐(0) 编辑
摘要: 简单模拟多段线绘制Pline命令过程的撤销功能 这是关于多段线pline命令中的撤销功能的简单代码 代码使用了事务管理器来执行增加对象和撤销处理. 代码 AddEntToCurSpace 添加实体对象到当前数据库当前空间 代码 结束语:使用事务管理器的时候,事务中的对象不能使用close()关闭对象 阅读全文
posted @ 2020-03-11 17:16 edata 阅读(1128) 评论(0) 推荐(0) 编辑