AutoCAD二次开发C语言第一个ObjectArx程序HelloWorld.docx
《AutoCAD二次开发C语言第一个ObjectArx程序HelloWorld.docx》由会员分享,可在线阅读,更多相关《AutoCAD二次开发C语言第一个ObjectArx程序HelloWorld.docx(13页珍藏版)》请在冰豆网上搜索。
AutoCAD二次开发C语言第一个ObjectArx程序HelloWorld
AutoCAD2013二次开发C++语言的第一个ObjectArx2013程序HelloWorld
前言
AutoCAD2013二次开发C++语言的ObjectArxSDK开发包,自ObjectArx2013开始,不再支持MicrosoftVisualStudio中的ObjectArxAddin工具条。
配套的VisualStudio2010版的ObjectarxWizards2013安装后,ObjectArx嵌入工具栏并不存在,常用的ObjectArxCommand命令按钮不存在。
然而,网络上大部分使用ObjectarxWizards向导生成HelloWorld程序,均是基于ObjectArxCommand命令按钮来编写的。
我的电脑是64位Win10,安装VisualStudio2010和AutoCAD2013-64位,编写第一个HelloWorld困扰了我很长的时间。
编写此文,希望能帮助到有同样困惑的朋友。
第一步安装配置ObjectArx2013和ObjectarxWizards2013
此部分在网络上有大量的资料可查,这里不再赘述。
值得提醒的要点有:
1.VisualStudio2010/AutoCAD2013/ObjectArx2013/ObjectarxWizards2013这四个程序的版本必须配套。
2.Win10-64位系统在安装ObjectarxWizards2013时应当选择兼容模式。
3.安装ObjectarxWizards2013时,需要指定ObjectArx2013和AutoCAD2013的文件夹。
64位系统的AutoCAD2013一般安装在ProgramFiles目录,而ObjectarxWizards2013使用兼容模式安装时,常常默认目录为ProgramFiles(x86),这时候不要直接按下一步,注意修改好实际路径。
4.Autodesk.arx-2013.props文件有错误,产生“未能加载项目文件。
给定编码中的字符无效。
第1行,位置1”问题。
需要将第一行的
锘?
?
xmlversion="1.0"encoding="utf-8"?
>
改为
xmlversion="1.0"encoding="GB2312"?
>
修改文件的地址如下,共两个文件。
找不到的,可搜索Autodesk.arx-2013.props
C:
\ProgramFiles(x86)\Autodesk\ObjectARX2013Wizards\Autodesk.arx-2013.props
C:
\ProgramFiles(x86)\Autodesk\ObjectARX2013Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2013.props
第二步使用ObjectarxWizards2013向导新建项目
打开VisualStudio2010,依次点击文件-新建-项目
如果ObjectarxWizards2013正确安装,可以在VisualC++项看到AutoDesk。
选择AutoDesk中的ObjectArx/DBXProject。
名称/位置/解决方案3项按默认或按需要修改。
我在这里直接默认。
按确定后弹出Wizard向导设置对话框。
在YourRegisteredDevelopSymbol项填入标志,这里我填AAA。
注意我填的这3个AAA,后面会出现。
然后直接按Finish完成。
第三步找到acrxEntryPoint.cpp文件
如无意外,可以在解决方案资源管理器-源文件中看到acrxEntryPoint.cpp文件。
如果看不到解决方案资源管理器,可以在视图菜单中调出来。
第四步修改acrxEntryPoint.cpp文件
打开acrxEntryPoint.cpp文件如下。
可以在下方看到acrxEntryPoint.cpp字样。
继续往下查看,找到staticvoidAAAMyGroupMyCommand()这一行。
注意看到3个大写的AAA,这是我在前面填写的标志。
同时注意到//Putyourcommandcodehere这一行注释,翻译成中文是“请将命令代码填写在这里”。
将acutPrintf(_T("\nHelloWorld!
"));填写到空白处,如下所示。
这行代码表示要在CAD命令栏打印HelloWorld!
信息。
这样,所有的代码修改已经完成了,可以直接编译了。
在编译之前,我们继续查看文件的末尾处,这里有需要注意的地方。
找到ACED_ARXCOMMAND_ENTRY_AUTO这一行。
1.注意到3个大写的AAA,留心其后的AAAMyGroup,MyCommand与前面staticvoidAAAMyGroupMyCommand()的关系。
2.注意MyCommandLocal,这是等会在AutoCAD2013要输入的命令。
第五步编译程序
因为我的AutoCAD2013是64位版本的,在VisualStudio2010上方将编译平台改为x64。
点击菜单-生成-生成解决方案。
留意下方的输出信息,如果看不到可以将信息栏拉高。
如果找不到,可以在菜单-视图-输出里重新显示。
如无意外,可以看到生成成功的信息。
第六步加载程序
在解决方案资源管理器中,右击项目,在右键菜单中找到,在Windows资源管理器中打开文件夹,点击。
VisualStudio2010会打开本项目所在的Windows目录。
我们生成的目标文件不在这里,往上一级目录查看。
打开x64目录,一直到.arx文件出现。
打开AutoCAD2013,可以通过以下两种方式加载AAAArxProject11.arx程序。
1.使用APPLOAD命令。
2.直接拖动到CAD绘图区域。
若成功加载,将在命令栏返回文件路径。
输入MYCOMMANDLOCAL命令,命令栏中返回HelloWorld!
字样。
表明程序编译成功。
请注意这个MYCOMMANDLOCAL命令。
并与上文ACED_ARXCOMMAND_ENTRY_AUTO这一行联系起来。
第七步卸载程序
在ObjectArx2013开发中,我们经常需要修改和调试程序。
若.ARX程序程序文件已加载,VisualStudio2010重新编译生成的时候会失败,提示文件已占用,不能修改等等。
这时我们需要在AutoCAD中卸载该程序。
在AutoCAD中输入APPLOAD命令,打开加载/卸载应用程序对话框。
在已加载的应用程序列表中找到刚刚加载的AAAArxProject11.arx,点击卸载。
这样,VisualStudio2010就可以重新编译该程序了。
全文完。