ObjectARX开发
文章平均质量分 64
ObjectARX开发
墨然回首.
图形引擎开发
展开
-
ObjectARX acrxEntryPoint.cpp(89): error C3861: “ChangeColor”: 找不到标识符
定义#include "Modify.h"#pragma onceclass Modify{public: Modify(); static AcDbObjectId CreateLine(); static ErrorStatus ChangeColor(AcDbObjectId entId, Adesk::UInt16 colorIndex); ~Modify();};定义#...原创 2018-06-28 10:44:10 · 950 阅读 · 0 评论 -
【CAD二次开发】-ObjectARX-JIG基本的拖动 BasicJig
(1)使用ObjectARX向导创建一个新项目,命名为BasicJigdeveloper symble随意填写:选择:使用MFC共享DLL必须使用MFC,否则后面会出现编译错误: fatal error C1189: #error: WINDOWS.H already included. MFC apps must not #include <windows.h&...原创 2018-09-13 07:10:25 · 4121 阅读 · 2 评论 -
【CAD二次开发】-ObjectARX-光标提示实体信息(EntInfoTip)
基本思路:(1) 创建一个新工程EntInfoTip.添加一个从AcEdInputPointMonitor类继承的类CEntInfoTipHandler.类CEntInfoTipHandler的头文件实现代码:class CEntInfoTipHandler : public AcEdInputPointMonitor{public: CEntInfoTipHandl...原创 2018-09-24 08:10:31 · 2893 阅读 · 0 评论 -
[ObjectARX]-在图形数据库之间传递数据 Wblock
(1)使用ObjectARX向导创建一个新工程,名称为Wblock.添加普通类CBlockUtil,并在类中添加函数CopyBlockDefOtherDwg,用于将其他Dwg文件 中的块定义赋值到当前图形数据库。实现代码:AcDbObjectId CBlockUtil::CopyBlockDefFromOtherDwg(const TCHAR* fileName, const TC...原创 2018-10-05 17:26:13 · 2724 阅读 · 2 评论 -
【CAD二次开发】-ObjectARX-组字典(Group)
(1)使用ObjectARX创建一个新工程Group.注册命令AddGroup,提示用户选择实体,将其创建成一个编组,实现函数为:static void AAAMyGroupAddGroup() { //提示用户选择多个实体 AcDbObjectIdArray entIds; if (CSelectUtil::PromptSelectEnts(TEXT("\n选择要成组的...原创 2018-09-28 07:39:08 · 2238 阅读 · 1 评论 -
[ObjectARX]-几何类的使用
打开VS2015,使用ObjectARX向导创建新工程,名为BaseGeometryClass。(1)计算直线几何类和 圆弧几何类的交点。注册命令InsertsetWith,实现代码:static void AAAMyGroupIntersectWith() { // 计算所要计算交点的几何类对象 AcGeCircArc2d geArc(AcGePoint2d::kOrigi...原创 2018-11-03 23:25:28 · 3659 阅读 · 0 评论 -
【ObjectARX】--创建和访问图形数据库(DwgDatabase)
(1)使用ObjectARX创建新工程DwgDatabase,选择MFC支持。(2)注册一个命令CreateDwg创建一个新的图形文件,并保存在AutoCAD的安装路径中.实现函数为:static void AAAMyGroupCreateDwg() { // 创建新的图形数据库,分配内存空间 AcDbDatabase *pDb = new AcDbDatabase(tr...原创 2018-10-02 21:36:56 · 4634 阅读 · 4 评论 -
[ObjectARX]修改实体的比例
本应用程序示范了怎样对选择集使用ads_matrix数据类型的矩阵和怎样使用对ads_matri x数据类型进行操作的选择集函数acedXformSS().本程序示例了实体的比例变换。 acrxEntryPoint.cpp命令函数的实现: static void aaaMyGroupMyCommand () { acutPrintf(_T("\n进入aaaMyGroupMyCommand...原创 2018-11-03 07:48:41 · 833 阅读 · 1 评论 -
[ObjectARX]-修改实体的图层 CH3_2
摘要: 编写了ObjectARX程序,能够选择一组实体,并把这些实体的图层改为选中目标实体所在的图层。实现代码:入口函数acrxEntryPoint.cpp的实现:static void aaaMyGroupMyCommand () { ads_name srcSS; ads_name targEnt; int rc; ads_point pickPt;...原创 2018-11-02 08:04:55 · 1190 阅读 · 0 评论 -
[ObjectARX]示范创建新图层和iterator的使用
在该应用程序中,示范创建一个新的图层,怎样设置层的颜色和线型;示范怎样使用浏览器(iterator).一、命令函数aaaMyGroupMyCommand的实现:static void aaaMyGroupMyCommand () { acutPrintf(_T("\n进入Mycommand函数!")); ACHAR lyrName[256]; ACHAR kw[20]; ...原创 2018-11-10 21:25:58 · 809 阅读 · 0 评论 -
[ObjectARX]创建一个浏览器(iterator),遍历符号表记录
创建一个浏览器(iterator),用于遍历线型表中的符号表记录。步骤:首先以读操作模式打开线型表;之后创建一个新的浏览器;然后创建一个指向线型表的指针;在for循环中使用浏览器函数遍历线性表记录,得到每条记录的线型名;在退出for循环后,我们就删除浏览器,并关闭线型表。实现源代码:static void aaaMyGroupMyCommand () { A...原创 2018-11-06 07:25:00 · 486 阅读 · 0 评论 -
ObjectARX2018+AutoCAD2018+VS2015开发环境配置
步骤一、开发工具准备1.Visual Studio 2015 下载含(更新3)及密钥:http://blog.postcha.com/read/66 (下载社区版即可)Visual Studio 2015安装步骤:https://jingyan.baidu.com/article/c45ad29c223421051753e23a.html2.ObjectARXWizards.msi 2...原创 2018-12-27 16:25:55 · 13131 阅读 · 8 评论 -
[ObjectARX]-创建多边形网格
完整的实现代码:static void AAAMyGroupMyCommand () { // Put your command code here acutPrintf(_T("\nHello World!")); //创建一个简单的多边形网格 AcGePoint3dArray ptArr; ptArr.setLogicalLength(8); for (int...原创 2019-03-22 07:59:52 · 1404 阅读 · 0 评论 -
ObjectARX(C++)-CAD二次开发调试方法
1.创建一个ObjectARX项目2.在acrxEntryPoint.cpp中添加以下代码用于调试测试: static void AAAMyGroupMyCommand () { // Put your command code here ads_point p1, p2; p1[X] = 0.0; p1[Y] = 0.0; p1[Z] = 0.0; p2[...原创 2019-05-30 15:48:47 · 5178 阅读 · 4 评论 -
ObjectARX二次开发视频教程(C++)-创建模态对话框
由于ObjectARX开发的视频较少,而关于MFC的教程更少,所以我录制了这个视频,作为给大家参考,当然这适合没有MFC基础的同学,讲的不好,请大家多多包容。教程描述: 使用ObjectARX中基于MFC的类库创建模态对话框。效果:视频地址:腾讯视频: 《CAD开发视频教程-ObjectARX创建模态对话框》,点击链接观看, https://u...原创 2019-06-07 08:13:47 · 1812 阅读 · 1 评论 -
编译错误:WINDOWS.H already included
在ObjectARX(VC)开发中,遇到下面的编译错误:fatal error C1189: #error: WINDOWS.H already included. MFC apps must not #include <windows.h>主要的原因是使用到了CString类,如: CString prompt = TEXT("\n指定标注插入点:"); 解...原创 2018-09-11 07:32:03 · 1992 阅读 · 2 评论 -
【CAD二次开发】-ObjectARX-扩展字典和有名对象字典(Xrecord)
思路:(1)使用ObjectARX向导创建一个新工程Xrecord.注册命令AddXRecord,提示用户选择一个实体,并将一些附加的数据保存到该实体的扩展字典中。实现函数: static void AAAMyGroupAddRecord() { //提示用户选择所要添加扩展记录的图形对象 AcDbEntity *pEnt = NULL; AcGePoint3d ...原创 2018-09-27 07:41:07 · 4580 阅读 · 0 评论 -
[ObjectARX] ArxDbg介绍、自动加载及其下载
一、ArxDbg介绍ArxDbg是ObjectARX SDK中包含多年的示例项目的名称。它的主要目的是演示如何使用ObjectARX API,但它本身就是一个完全独立的实用程序。ObjectARX程序员经常在开发期间使用此实用程序来测试和执行他们的应用程序代码,但它对任何人都有用,而不仅仅是程序员。 如您所见,UI由单个上下文菜单组成。我最喜欢的功能之一是能够通过绘图数据库,查看...原创 2018-09-24 21:49:46 · 7511 阅读 · 2 评论 -
在ObjectARX中使用MFC-标签式对话框
先附上流程图:(1) 创建工程 (2)插入一个对话框双击.rc文件右键-》选中添加资源修改对话框ID:IDD_OPTION_SHEET 在上面添加一个Tab控件, 修改ID:IDC_TAB(3)为此对话框添加映射类COptionSheet,基类为CAcUiTabMainDialog (4)再插入一个对话框资源(ID...原创 2018-08-14 21:52:27 · 3585 阅读 · 2 评论 -
ObjectARX(VC)-符号表之视口-创建4个等大的视口
(1)注册一个命令AAAMyGroupCreate4VPorts()(2)获得视口表AcDbViewportTable *pVPortTbl = NULL;acdbHostApplicationServices()->workingDatabase() ->getViewportTable(pVPortTbl, AcDb::kForWrite);//使用“写”的模式打开数...原创 2018-08-22 07:30:55 · 884 阅读 · 0 评论 -
ObjectARX(VC)-符号表之视口-在图纸空间创建一个新的视口
(1)注册一个命令static void AAAMyGroupCreateVPortInSpace(){}(2)指定当前布局 Acad::ErrorStatus es = acdbHostApplicationServices()->layoutManager() ->setCurrentLayout(TEXT("布局1")); if (es != Ac...原创 2018-08-22 08:38:58 · 2105 阅读 · 0 评论 -
ObjectARX(C++)-ADSRX和用户交互-用户交互的实现(UserIntereaction)
一,(1)使用的ObjectARX向导创建新工程用户交互 (2)编译,如果出现以下错误: 错误C2338:/ RTCc拒绝符合代码,因此C ++标准库不支持它。删除此编译器选项,或定义_ALLOW_RTCc_IN_STL以确认您已收到此警告。解决方法:(3)新建一个常见的过滤器:右键 - “添加筛选器(4)在普通文件夹中新建相互作用文件夹 (5...原创 2018-08-26 08:52:50 · 2599 阅读 · 1 评论 -
在ObjectARX中使用MFC-可停靠窗体
(1)使用的ObjectARX创建一个新工程 添加对话框: 添加“绘制直线”按钮: (3)设置对话框的“可见”为真 (4)为对话框添加ObjectARX MFC类 (5)创建可停靠窗体的类当现在基类的时候,会弹出下图警告对话框,提示说:输入一个资源ID,然后系统会自动创建一个子对话框。当我输入一个ID时,程序会出错,这...原创 2018-08-17 14:11:38 · 4049 阅读 · 2 评论 -
AutoCAD二次开发-ObjectARX(C++)-符号表之UCS
使用ObjectARX中创建一个新的项目,命名为OperateUCS。 一,注册一个命令NewUcs,创建一个新的UCS(1)获得当前图形的UCS表 AcDbUCSTable *pUcsTbl = NULL; acdbHostApplicationServices()->workingDatabase() ->getUCSTable(pUcsTbl, AcDb...原创 2018-08-23 09:06:42 · 2622 阅读 · 0 评论 -
ObjectARX(C++)-ADSRX和用户交互-选择集(SelectionSet)
一,选择集的创建和删除(1)使用的的ObjectARX的向导创建一个新工程名称为SelectionSet 创建完成后,编译,若出错: 错误C2338:/ RTCc拒绝符合代码,因此C ++标准库不支持它。删除此编译器选项,或定义_ALLOW_RTCc_IN_STL以确认您已收到此警告。需要做如下修改:①debug设置为64位②较小类型检查设置为:否(2)注册...原创 2018-08-31 07:51:54 · 6979 阅读 · 0 评论 -
在ObjectARX中使用MFC-使用MfcGridCtrl
(1)在VC ++中使用的ObjectARX向导创建一个新工程GridDialog1 在项目的文件夹中添加一个Common文件夹;从我分享的百度云连接中的MfcGridCtrl文件夹复制到公共文件夹中;链接:https://pan.baidu.com/s/1sKbKdT-kHD76iNsYDBmuvw密码:3oui将文件夹中的所有头文件和的.cpp文件都添...原创 2018-08-21 08:43:33 · 1849 阅读 · 0 评论 -
ObjectARX(VC++)-ADSRX和用户交互-acedCommand函数和结果缓冲区
创建一个ObjectARX工程,名称为Resbuf。一、注册一个新命令AddCircle1(1)--------------------- (2)代码实现: static void AAAMyGroupAddCircle1() { // Put your command code here //声明ADS变量 ads_point ptCenter = { 0...原创 2018-08-25 17:17:55 · 4549 阅读 · 0 评论 -
【CAD二次开发】-ObjectARX-设置自定义对象的子实体层
声明:本文的为翻译文章,原文地址为:http://adndevblog.typepad.com/autocad/objectarx/ 有时候我们希望将自定义对象的子实体设置为特定图层。当相应的图层发生变化(例如可见性,颜色等)时,实体将相应地更新。 解决方案非常简单。 worldDraw-> subEntityTraits()。setLayer允许我们为特定图层指定自定...翻译 2018-09-05 21:50:55 · 3122 阅读 · 0 评论 -
CAD二次开发-ObjectARX(C++)-查找所有AcDbLine直线的交点
(1)使用ObjectARX向导创建一个项目LineIntersections(2)首先,我们需要准备我们的CMap结构,以便能够将AcGePoint3d作为映射键来处理。我们的想法是对通过每个交叉点的所有线进行分组。 CMap不支持AcGePoint3d,因为它不知道如何散列它以及如何将它作为密钥进行比较。为此,我们需要定义HasKey和CompareElements函数模板。先定...原创 2018-09-04 07:59:22 · 5809 阅读 · 1 评论 -
【CAD二次开发】-ObjectARX-双击实体的响应 (AcDbDoubleClickEdit)
思路:一、基本双击响应实现(1)在vs2015中使用ObjectARX创建一个新项目DoubleClick,并选择 MFC支持。向工程中添加一个普通类CDoubleClickCircle,它的基类设置为AcDbDoubleClickEdit:类的头文件为:class CDoubleClickCircle : public AcDbDoubleClick...原创 2018-09-19 08:42:38 · 4758 阅读 · 5 评论 -
【CAD二次开发】-ObjectARX-JIG 一拖多 (MultipleEntJig)
本文介绍的例子是沿一个圆弧实体等间距放置若干个图块,用户拖动光标时圆弧的形状发生变化,同时插入的块参照的位置也会随之变化。技术路线: (1)使用ObjectARX向导创建新工程MultipleEntJig 向工程中添加一个普通类CArcBlockJigEntity,将它的父类设置为AcDbEntity 类CArcBlockJigEntity ...原创 2018-09-16 11:07:54 · 2829 阅读 · 2 评论 -
【CAD二次开发】-ObjectARX-扩展数据 (Xdata)
基本思路:(1)创建一个新项目,命名为Xdata.注册一个命令AddXData.实现代码为:static void AAAMyGroupAddXData() { // 提示用户选择所要添加扩展数据的图形对象 AcDbEntity *pEnt = NULL; AcGePoint3d pickPoint; if (CSelectUtil::PromptSelect...原创 2018-09-24 20:57:08 · 5812 阅读 · 0 评论 -
ObjectARX开发视频教程(C++)-创建模态对话框绘制直线
概要:在ObjectARX中使用MFC创建非模态对话框,并使用对话框创建一条直线。效果:视频教程链接:腾讯视频:《ObjectARX二次开发视频教程-对话框-创建直线》,点击链接观看,https://url.cn/5FTwqBV?sf=uriB站:https://www.bilibili.com/video/av54950041/项目完整代码:链接:...原创 2019-06-07 21:40:07 · 1550 阅读 · 0 评论