一、本节课程
Arx二次开发创建第一个应用程序
二、本节要讲解的知识点
1、手动创建ARX的应用的步骤。
2、应用向导创建ARX应用程序的步骤。
三、具体内容
1、需求:创建一个Hello World应用程序,在AUTOCAD的命令行输出“Hello World”。
2、手动创建一个ARX应用程序:C++开发ARX应用程序,实际上我们ARX应用程序就是一个动态链接库,它的后缀只是没用.DLL来表示而已,是用.ARX 来表示的。与常规的DLL程序一样,ARX程序在AUTOCAD调用时加载,与AUTOCAD本身的代码是相互独立的。
设置编译器的参数,包括代码的生成方式。
设置连接器的参数,包括输出文件的名称,添加链接库文件等。
新建一个DLL文件,引用ARX API的头文件和库文件,然后设置编译器参数和连接器参数。将生成文件的后缀改为“.DLL”文件即可。在代码里面创建两个函数分别用户初始化和卸载ARX程序。 void InitApp(); void UnloadApp();
具体请参见收费课程C++ ARX开发的免费试听部分。
3、向导创建一个ARX应用程序:
(1)ObjectARX应用程序:在AUTOCAD中调用。
(2)ObjectDBX应用程序:在所有的REALDWG宿主程序中调用(包括AUTOCAD),自定义实体开发的时候,可以创建此类程序。
(3)Console程序:高版本的AUTOCAD出现的一种开发方式。(AUTOCAD2013以后出现的一种新的开发方式),将AUTOCAD Console应用程序放置在服务器端(比如说服务器端自动打印),特点就是不需要交互,运行速度很快。
4、向导自动帮我们生成了一些头文件和源文件。其中acrxEntryPoint.cpp是ARX程序的入口点。
(1)ARX模块加载时执行的函数
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
//通常需要加入的代码,在这里可以放入软件锁检测的代码。
return (retCode) ;
}
(2)ARX模块卸载时执行的函数
virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
return (retCode) ;
}
5、此外向导还创建了命令的模板,我们可以根据模板来定义自己想要定义的命令:MyCommand。
(1)第一处修改
ACED_ARXCOMMAND_ENTRY_AUTO(CArxProject2App, yunyouMyGroup,CommandABC, CommandABC, ACRX_CMD_MODAL, NULL)
(2)第二处修改
static void yunyouMyGroupCommandABC () {
}
6、在命令中实现一个HelloWorld的打印。
static void yunyouMyGroupCommandABC () { acutPrintf(TEXT("Hello world!"));}
四、总结
1、手动创建ARX的应用的步骤请参见收费课程的试听部分。
2、应用向导创建ARX应用程序的步骤。
3、如何在ARX中添加命令和命令实现函数。
4、创建第一个应用程序Hello World。