CAD二次开发环境搭建详细介绍

最近进行CAD二次开发的研究,发觉网上看起来像是很多资料但是实用的不多,而且有些资料还特别的旧。在本篇文件中,我将最近自己的学习跟大家分享一下。另外还会附上简单的资料。

环境:Win10 VS2015 AutoCAD2017 ObjectARX 这里需要自己提前安装好VS2015和AutoCAD,这个比较简单自己百度一下就好,所以不做介绍。

另外需要准备的资料:Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe
ObjectARXWizards-2017.zip
官方下载路径:https://www.autodesk.com/developer-network/platform-technologies/autocad

第一步:

1.双击将==Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe==文件解压到直接喜欢放置的路径下;
2.解压ObjectARXWizards-2017.zip文件,得到==ObjectARXWizards.msi==文件。这里需要注意下,如果直接双击.msi文件安装,在使用VS2015时会出现使用Autodesk向导创建项目时不成功的情况。

不过有解决办法的。在安装.msi文件之后,找到文件Autodesk.arx-2017.props 然后找到并修改 ”C:\ObjectARX</ArxSdkDir> 为C:\Autodesk\Autodesk_ObjectARX_2017_Win_64_and_32_Bit
C:\Autodesk\Autodesk_ObjectARX_2017_Win_64_and_32_Bit就是你的ObjectARX SDK包解压的位置。除了修改文件还有一个方法是将 Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe解压得到的文件拷贝到C:\ObjectARX\中。

讲过上面的操作,可以看到下面一样的截图:
这个ObjectARXWizards.msi我是安装到默认路径下。
打开VS点新建项目可以看到:
经过上面的操作,就是把开发环境搭好了。

第二步:

这一步先介绍手动创建项目的过程。
1.创建一个win32空的dll项目:


2.创建好项目后,先向项目中添加文件:
stdafx.h stdafx.cpp
在stdafx.h stdfx.cpp的文件中分别输入下面代码:

stdafx.h#pragma once#define WIN32_LEAN_AND_MEAN#include <Windows.h>#include "tchar.h"
===============================================
stdfx.cpp#include "stdafx.h"

3.接着需要进行项目的配置:
属性->配置属性->常规->目标文件扩展名 由.dll->.arx;
属性->配置属性->C/C+±>常规->附加包含目录:
前面配置的ObjectARX的头文件路径,我电脑这里是(注意我建的是64位的):

属性->配置属性->C/C+±>常规->代码生成->运行库 选 多线程DLL/MD

属性->配置属性->链接器->常规->附加库目录:

属性->配置属性->链接器->输入->附加库依赖:
rxapi.lib,acdb21.lib,acge21.lib,acad.lib,ac1st21.lib,accore.lib
这个比较简单,不附图了。
配置到这里就完成了。
4.这里继续创建文件以及添加简单的代码:
4.1创建HelloARX.cpp文件并添加如下代码:

#include "stdafx.h"
BOOL APIENTRY DLLMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{return TRUE;
}

这是dll的入口。
4.2创建HelloARX.def模块文件并添加如下代码:

LIBRARY HelloARX
DESCRIPTION "First ARX Application"EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE


4.3创建Arx.cpp文件并添加如下代码:

#include <aced.h>
#include <rxregsvc.h>
#include "stdafx.h"void InitApp();
void UnloadApp();void HelloWorld();void InitApp()
{acedRegCmds->addCommand(L"HelloArx", L"Hello", L"Hello", ACRX_CMD_MODAL, HelloWorld);
}void UnloadApp()
{acedRegCmds->removeGroup(L"HelloArx");
}void HelloWorld()
{acutPrintf(L"\nHello World!");
}extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) {switch (msg){case AcRx::kNullMsg:break;case AcRx::kInitAppMsg:acrxDynamicLinker->unlockApplication(pkt);acrxRegisterAppMDIAware(pkt);InitApp();break;case AcRx::kUnloadAppMsg:UnloadApp();break;case AcRx::kLoadDwgMsg:break;case AcRx::kUnloadDwgMsg:break;case AcRx::kInvkSubrMsg:break;case AcRx::kCfgMsg:break;case AcRx::kEndMsg:break;case AcRx::kQuitMsg:break;case AcRx::kSaveMsg:break;case AcRx::kDependencyMsg:break;case AcRx::kNoDependencyMsg:break;case AcRx::kOleUnloadAppMsg:break;case AcRx::kPreQuitMsg:break;case AcRx::kInitDialogMsg:break;case AcRx::kEndDialogMsg:break;case AcRx::kSuspendMsg:break;case AcRx::kInitTabGroupMsg:break;case AcRx::kEndTabGroupMsg:break;default:break;}return AcRx::kRetOK;
}

到这里可以生成HelloARX.arx文件了。

第三步:

启动AutoCAD2017加载,我们自己生成的插件。将插件直接拖放进CAD或者使用appload命令加载即可。加载完后,在命令行输入hello,即可看到Hello World!打印出来,到这里可以确认我们的项目创建成功了。

这里是手动创建的过程,如果使用向导比这个过程更简单的,这里先不进行介绍了。
如有错误欢迎指正谢谢!

另外这里附上本次创建项目的包提供参考(如果需要使用我的项目,则需要将库的头文件路径以及库路径修改为本地电脑的)。
项目模板链接:https://download.csdn.net/download/qq_32396555/11201373
书籍资料参考链接:https://download.csdn.net/download/qq_32396555/11201381
官方参考资料:Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe这个解压后有个docs文件夹,文件夹下的arxdoc.chm双击打开它,可以看到官方的介绍。创建环境的的以及查看API。

AutoCAD二次开发之ObjectARX环境搭建(AutoCAD2017 VS2015 Win10)相关推荐

  1. mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...

  2. JSP开发之TomcatEclipse环境搭建(创建项目运行一个简单的jsp文件)

    通过之前的内容,咱们现在已经安装好了Tomcat服务器了,但是为了项目创建和扩展,咱们还需要使用Eclipse这个东西来搭建一个编码环境.废话不多说,咱们可以在https://www.eclipse. ...

  3. 区块链开发之Truffle环境搭建

    前言 truffle是以太坊目前最流行的一个开发框架,通过truffle我们可以开发基于以太坊的去中心化应用(Dapp).这篇文章介绍如何安装truffle并运行第一个Dapp程序. 预备环境要求: ...

  4. ESP8266-NodeMCU物联网开发之Arduino环境搭建

    Arduino教程传送门

  5. AutoCAD .Net二次开发之Editor选择集

    AutoCAD .Net二次开发之Editor选择集 PickFirst选择集 一般选择集 选择集过滤SelectionFilter Editor的路径: Autodesk.AutoCAD.Appli ...

  6. AutoCAD .Net二次开发之JIG动态绘制详解

    AutoCAD .Net二次开发之JIG动态绘制详解 AutoCAD平台动态绘制分两种,单实体绘制EntityJig和多实体绘制DrawJig,需要自己自定义类去继承.(本人的理解全放在了代码注释中, ...

  7. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  8. C#进行MapX二次开发之MapX基础知识

    C#进行MapX二次开发之MapX基础知识 MapX的主要技术特点 (1). 以表(Table)的形式组织信息 每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件.为使用MapIn ...

  9. C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处

    我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1.Data2.Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed P ...

最新文章

  1. 独家 | Meta的新学习算法可以教AI进行多任务处理
  2. python基础语法有哪些-Python基础语法知识有哪些?
  3. linux基础面试题(46个汇总)
  4. html原生上传,一个基于HTML5及原生JS的文件上传组件--JohnUploader
  5. 阿里文娱首次公开!AI 如何对爆款内容未卜先知?
  6. vscode用鼠标滚轮_前端开发神器 VSCode 使用总结
  7. windows 搭建kms服务器激活_windows下搭建MQTT服务器
  8. hdu 2255 奔小康赚大钱 KM算法
  9. C#ORM系统 Moon.ORM使用方法
  10. 新手在前期应该怎样发“外链”(4)之终级外链法
  11. 线段树扫描线(1---算矩形的总面积)
  12. java项目代码加密
  13. 交易类APP原型设计分享 - 5miles
  14. 【三极管知识】之【9011,9012,9013,9014,8050,8550 三极管的区别】
  15. 小米路由器3实现锐捷认证[免刷固件]
  16. 一种无法用言语表达的爱——父爱
  17. GIT创建版本库及版本的迭代
  18. Codeforces Round #548 (Div. 2) C. Edgy Trees(思维+dfs)
  19. 山东自然人dai开给于企业核定征收纳税
  20. yum update和yum upgrade的真正区别

热门文章

  1. SQL查询某个字段最长的数据
  2. VS2008 .ncb工程文件导致调试错误
  3. duplicate value for resource 'attr/mvGravity' with config ''.
  4. 关于 myeclipse CI 无法激活的问题,
  5. Cad二次开发ResolveEventArgs
  6. 消息称小米汽车总部将落户北京
  7. MediaPipe基础(8)手势控制音量
  8. Adjtimex介绍
  9. 基于STM32的485通讯传感器采集程序
  10. Excel的数据批量替换