前言 :
本文是基于AutoCAD2021 SDK 即ObjectARX_for_AutoCAD_2021_Win_64bit_dlm ,实现AutoCAD二次开发,主要讲解如何基于SDK 实现自己初步简单的命令开发。
开发环境搭建 下载安装如下软件以及SDK
AutoCAD2021 、VisiualStudio2019、
ObjectARXWizard2021、
ObjectARX_for_AutoCAD_2021_Win_64bit_dlm
搭建完二次开发环境后 我们在VS2019中创建一个ARXProject项目
步骤如下
打开VS2019后我们选择AutoCAD项目模板创建 项目
以下是我们使用的俩个 AutoCAD 模板的区别
OMF 项目:用于创建传统的 ObjectARX 模块,这些模块通常包含用于扩展 AutoCAD 功能的 C++ 类和函数。OMF 文件是编译后的二进制文件,可以在 AutoCAD 中通过 netload 命令加载。
ARX/DBX 项目:用于创建 ARX (AutoCAD Runtime eXtension) 或 DBX (Database eXtension) 插件。ARX 插件允许您使用 C++ 直接扩展 AutoCAD 的功能,而 DBX 插件则是用于数据库访问的扩展。
对于大多数 AutoCAD 二次开发任务,您应该使用 ARX/DBX 项目,因为它提供了更现代和完整的开发环境,并且支持最新的 AutoCAD 功能和 API。
点击下一步 我们这里需要MFC支持 所以勾选
3.创建好了项目之后 给到模板如下
在这里我们最主要要关注的是acrxEntryPoint.cpp
这里提供了对提供了一个名为arxEntryPoint.cpp的文件,它包含了必要的入口点函数acrxEntryPoint。这个文件通常是项目初始化和清理代码的地方。
它继承自AcRxArxApp。这个类重写了On_kInitAppMsg和On_kUnloadAppMsg等方法
virtual AcRx::AppRetCode On_kInitAppMsg(void* pkt) { // TODO: Add your initialization code here acutPrintf(L"Hello ARX is loaded.\n"); // Register your commands here return AcRx::kRetOK; }
virtual AcRx::AppRetCode On_kUnloadAppMsg(void* pkt) { // TODO: Add your unloading code here // Unregister your commands here return AcRx::kRetOK;
接下来就是如何注册创建一个自己的命令
创建一个hello.cpp
// 命令函数的实现
void helloWorld() {
acutPrintf(L"\nHello World2024/12/4!!!!!!");
}
在入口点注册 卸载
virtual AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
// TODO: Add your initialization code here
acedRegCmds->addCommand(_T("LBCommandS"), _T("MNCMD"), _T("MyNewCommand"), ACRX_CMD_MODAL, helloWorld);
virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
// TODO: Unload dependencies here
acedRegCmds->removeGroup(_T("LBCommandS"));
这样在 运行的时候加载 .arx文件
键入命令 MNCMD 会输出打印 helloWord() 函数命令。
下篇我们来看如何创建一个圆 直线的命令。
标签:AutoCAD,入门,pkt,AppRetCode,AutoCAD2021,AcRx,here,二次开发,your From: https://blog.csdn.net/wahahshdjdjdn/article/details/144309937