一 首先安装好vs05 vs10与cad2008
二 下载ObjectArx SDK
相关资料下载地址: 2019的地址 http://adndevblog.typepad.com/autocad/2018/04/autocad-2019-objectarx-and-net-wizards-.html http://download.autodesk.com/esd/objectarx/2019/Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx.exe 包括ARX2017和Wizard2017. http://usa.autodesk.com/adsk/servlet/index?id=1911627&siteID=123112 2017(32和64位版本) http://download.autodesk.com/esd/objectarx/2017/Autodesk_ObjectARX_2017_Win_64_and_32_Bit.sfx.exe 2016(32和64位版本) http://download.autodesk.com/esd/objectarx/2016/Autodesk_ObjectARX_2016_Win_64_and_32_Bit.exe 2015(32和64位版本) http://download.autodesk.com/esd/objectarx/2015/Autodesk_ObjectARX_2015_Win_64_and_32_Bit.exe 2014(32位和64位版本) http://download.autodesk.com/esd/objectarx/2014/Autodesk_ObjectARX_2014_Win_64_and_32Bit.sfx.exe http://download.autodesk.com/esd/objectarx/2014/Autodesk_ObjectARX_2014_Documentation.sfx.exe 2013(32位和64位版本) http://download.autodesk.com/esd/objectarx/2013/ObjectARX_2013_Win_64_and_32Bit.exe http://download.autodesk.com/esd/objectarx/2013/ObjectARX_2013_Documentation.exe 2012(32位和64位版本) http://download.autodesk.com/esd/objectarx/2012/ObjectARX_2012_Win_64_and_32Bit.exe 2011(32位和64位版本) http://download.autodesk.com/esd/objectarx/2011/ObjectARX_2011_Win_64_and_32Bit.exe 2010(32位和64位版本) http://download.autodesk.com/akdlm/esd/dlm/objectarx/ObjectARX_2010_Win_64_and_32Bit.exe 2009(32位和64位版本) http://download.autodesk.com/esd/objectarx/2009/ObjectARX_2009_Win_64_and_32Bit.exe 2008 32位版本: http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_32Bit.exe 64位版本: http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_64Bit.exe 2007 -Core http://download.autodesk.com/esd/objectarx/2007/Arx_Core.exe -SDK http://download.autodesk.com/esd/objectarx/2007/Arx_All.exe 2006 -Core http://download.autodesk.com/WebPub/autocad/oarx2006/Arx_Core.exe -SDK http://download.autodesk.com/WebPub/autocad/oarx2006/Arx_All.exe 2005 -Core http://download.autodesk.com/WebPub/Developer/autocad/Arx_Core2005.exe -SDK http://download.autodesk.com/WebPub/Developer/autocad/Arx_All2005.exe 2004 -Core http://download.autodesk.com/WebPub/autocad/oarx/arx_core.exe -SDK http://download.autodesk.com/WebPub/autocad/oarx/arx_sdk.exe 2002 -Core http://download.autodesk.com/pub/objectarx/objectarx_2002/K030.arx.plus.core.zip -SDK http://download.autodesk.com/pub/objectarx/objectarx_2002/K030.arx.plus.all.zip 2000 -Core http://download.autodesk.com/pub/objectarx/ObjectArxCore.exe -SDK http://download.autodesk.com/pub/objectarx/ObjectArxSDK.exe R14 -SDK http://download.autodesk.com/Pub/developer/sdk/obarxsdk.exeView Code
三 安装ObjectArx 2008
先做一个.reg 注册表文件,加入下面的语句,然后运行这个注册表
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Msi.Package\shell\runas] @="以管理员运行" [HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command] @="msiexec /i \"%1\""
然后打开C:\ObjectARX 2008\utils\ObjARXWiz目录(其他高版本的SDK要另外下载这个向导的)
再右键管理员模式运行ArxWizards.msi
这样在新建C++项目的时候会出现ObjectARX项目,如果新建出错,也就是你没有按照上面修改注册表安装.
这些是当前的项目设置: 您注册的开发人员符号: 纯ObjectARX应用程序 没有MFC支持 不是COM服务器 不是.NET混合管理模块 从任何窗口单击完成以接受当前设置。 创建项目后,请参阅项目的readme.txt文件,了解有关生成的项目功能和文件的信息。 实现_DEBUG预处理器符号 选择此选项可在调试项目配置中定义预处理器符号_DEBUG。 如果选择此选项,向导将在StdAfx.h中创建通常的_DEBUG解决方法,但在定义此符号时,不应包含Microsoft / Autodesk头。
输入你喜欢的前缀,然后是不是DEBUG.我先不勾
项目类型: ObjeCtARX(AutoCAD扩展名) 选择此选项可创建标准的ObjectARX应用程序 以便在AutoCAD中加载AutoCAD项目。 ObjectDBX(自定义对象启用程序) 选择此选项可创建标准的ObjectDBX自定义对象启用程序应用程序。
自定义对象启用码应用程序定义自定义对象和自定义实体可以加载到所有RealDWG主机应用程序中,
如AutoCAD/VoloView
第一个功能就是普通的功能,第二个是自定义图元用的.先用第一个入门吧.
附加SDK: OMF应用程序支持 选择此选项将强制向导创建OMF符合规范。 OMF 5.0版 OMF 5.x系列 地图API支持 选择此选项将强制向导包含映射标题和库。 地图2007 SDK 地图Spago SDK
都不选,下一步
MFC支持: 无MFC支持 具有静态链接的MFC的常规DLL。 使用MFC共享DLL的常规DLL 使用MFC共享DLL的扩展DLL(建议用于MFC支持) 团AutoCAD MFC扩展支持
MFC就是微软画面板的支持,所以要打钩.
COM服务器选项: 不是COM服务器: 实现COM服务器 使用ATL实现COM服务器(推荐) 对自定义对象使用ObjeCtARX AIL扩展 COM客户端选项: 导入QbjectDBX COM接口 导入AutoCAD COM接口
为了获取cad变量方便,导入cad的com接口.
对.net的支持,我虽然有net工程,但是这步我先不勾,日后再看看怎么改支持.
这样就可以了,按Finish完成.
按道理来说,现在你可以直接生成文件验证配置是否正确.....
添加命令:
右击,添加命令,一般来说改名称就好了.
然后在入口点 acrxEntryPoint.cpp 可以看见加入的命令.
其实那个a>的添加命令就是添加了这几句而已,可能是因为宏难找的原因吧......再添加一个试试吧..
嘿嘿.然后再试试复制粘贴,再看看a>内是不是有?所以可以摆脱用a>了呢!
然后去测试生成的arx是不是正常.
加入警告语句:
AfxMessageBox(_T("this is a test command0."));
然后到这个的项目文件夹(属性窗口下面就有) win32\debug目录中找到.arx拖入CAD2008,或ap加载.再输入自己的命令testcmd就能运行了。
注意一下vs很奇葩的设置是它有很多win32,x64的文件夹,因为微软就是那么奇葩...具体可能要了解一下vs的宏命令,设置输出的路径.
但是你找找就能知道.arx在哪个win32了.
到此为止,vs2005的arx工程就算是OJBK了..
移植到vs2010:
先安装一个Daffodil.ENU详情看下面两篇e大的文章.
也谈ObjectARX多版本批量编译
再谈VS2010编译更高平台vs2012(v110),vs2015(v140)的objectARX程序
用vs2010打开刚刚的vs2005工程,选择更新;
右击工程属性,所有配置,所有平台
1:选择v80工具集(没有的话,说明你没有看e大的文章)
2:如果没有配置后缀名,会出现这样错误,修改你的生成后缀名[配置属性]/[常规]/[目标拓展名]:arx
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath
(D:\桌面\JJBoxArx2008\Win32\Debug\JJBoxArx2008.dll) 与 Linker 的 OutputFile 属性值(D:\桌面\JJBoxArx2008\Win32\Debug\JJBJJBoxArx2008.arx)不匹配。
这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
[配置属性]/[C/C++]/[附加包含目录]: D:\ObjectARX 2008\inc 你的SKD路径
找不到.lib要添加这里路径
[配置属性]/[链接器]/[常规]/[附加库目录]: D:\ObjectARX 2008\lib 你的SKD路径
否则出现 LNK1104: 无法打开文件
[链接器]/[输入]/[附加依赖项]
(注意一下,vs2005写法)
rxapi.lib acdb17.lib acge17.lib acad.lib acedapi.lib
(注意一下,vs2010写法)
rxapi.lib;acdb17.lib;acge17.lib;acad.lib;acedapi.lib
还是无法打开的话
vs2005就去看看[工具]/[选项]/[项目和解决方案]/[ vc++目录] vs2010就去看看右击项目配置属性/[ vc++目录] 包含文件/包含目录 加入 D:\ObjectARX 2008\inc 库文件/库目录 加入 D:\ObjectARX 2008\lib
错误 error C1083: 无法打开包括文件:“map”: No such file or directory
用于“编辑并继续”的程序数据库 (/ZI) 设为空,删除-> 公共语言运行时支持 (/clr) 启用c++异常 是 (/EHsc) 基本运行时检查->默认值 调用约定写入-> __cdecl (/Gd)
三、包含文件 这个做法在vs2010已经没有了, [工具]/[选项]/[项目和解决方案]/[VC++目录],如图所示:
包含文件(添加图中前两个目录即可)
D:\ObjectARX 2008\inc D:\ObjectARX 2008\utils\brep\inc
库文件
D:\ObjectARX 2008\lib D:\ObjectARX 2008\utils\brep\lib