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\中。

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

第二步:

这一步先介绍手动创建项目的过程。
1.创建一个win32空的dll项目:
Alt
Alt
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位的):
Alt
属性->配置属性->C/C+±>常规->代码生成->运行库 选 多线程DLL/MD
Alt
属性->配置属性->链接器->常规->附加库目录:
Alt
属性->配置属性->链接器->输入->附加库依赖:
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

Alt
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!打印出来,到这里可以确认我们的项目创建成功了。
Alt
这里是手动创建的过程,如果使用向导比这个过程更简单的,这里先不进行介绍了。
如有错误欢迎指正谢谢!

另外这里附上本次创建项目的包提供参考(如果需要使用我的项目,则需要将库的头文件路径以及库路径修改为本地电脑的)。
项目模板链接: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。
Alt

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值