AutoCAD二次开发之ObjectARX环境搭建(AutoCAD2017 VS2015 Win10)
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)相关推荐
- mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL
一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...
- JSP开发之TomcatEclipse环境搭建(创建项目运行一个简单的jsp文件)
通过之前的内容,咱们现在已经安装好了Tomcat服务器了,但是为了项目创建和扩展,咱们还需要使用Eclipse这个东西来搭建一个编码环境.废话不多说,咱们可以在https://www.eclipse. ...
- 区块链开发之Truffle环境搭建
前言 truffle是以太坊目前最流行的一个开发框架,通过truffle我们可以开发基于以太坊的去中心化应用(Dapp).这篇文章介绍如何安装truffle并运行第一个Dapp程序. 预备环境要求: ...
- ESP8266-NodeMCU物联网开发之Arduino环境搭建
Arduino教程传送门
- AutoCAD .Net二次开发之Editor选择集
AutoCAD .Net二次开发之Editor选择集 PickFirst选择集 一般选择集 选择集过滤SelectionFilter Editor的路径: Autodesk.AutoCAD.Appli ...
- AutoCAD .Net二次开发之JIG动态绘制详解
AutoCAD .Net二次开发之JIG动态绘制详解 AutoCAD平台动态绘制分两种,单实体绘制EntityJig和多实体绘制DrawJig,需要自己自定义类去继承.(本人的理解全放在了代码注释中, ...
- Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)
鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于Intel ...
- C#进行MapX二次开发之MapX基础知识
C#进行MapX二次开发之MapX基础知识 MapX的主要技术特点 (1). 以表(Table)的形式组织信息 每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件.为使用MapIn ...
- C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处
我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1.Data2.Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed P ...
最新文章
- 独家 | Meta的新学习算法可以教AI进行多任务处理
- python基础语法有哪些-Python基础语法知识有哪些?
- linux基础面试题(46个汇总)
- html原生上传,一个基于HTML5及原生JS的文件上传组件--JohnUploader
- 阿里文娱首次公开!AI 如何对爆款内容未卜先知?
- vscode用鼠标滚轮_前端开发神器 VSCode 使用总结
- windows 搭建kms服务器激活_windows下搭建MQTT服务器
- hdu 2255 奔小康赚大钱 KM算法
- C#ORM系统 Moon.ORM使用方法
- 新手在前期应该怎样发“外链”(4)之终级外链法
- 线段树扫描线(1---算矩形的总面积)
- java项目代码加密
- 交易类APP原型设计分享 - 5miles
- 【三极管知识】之【9011,9012,9013,9014,8050,8550 三极管的区别】
- 小米路由器3实现锐捷认证[免刷固件]
- 一种无法用言语表达的爱——父爱
- GIT创建版本库及版本的迭代
- Codeforces Round #548 (Div. 2) C. Edgy Trees(思维+dfs)
- 山东自然人dai开给于企业核定征收纳税
- yum update和yum upgrade的真正区别