### AutoCAD编程技巧详解 #### 一、ObjectARX与AutoCAD版本匹配及开发环境配置 **1. 经典组合:ObjectARX2002 + AutoCAD2002 + VC6.0 + Assist6.0 + VSS6.0** - **配置说明:** - **AutoCAD版本:** AutoCAD2002 - **ObjectARX版本:** ObjectARX2002 - **IDE:** Visual C++ 6.0 (VC6.0) - **辅助工具:** Assist6.0 (用于增强代码编辑功能) - **版本控制系统:** VSS6.0 (用于代码版本管理) **2. 稳定组合:ObjectARX2004/2005 + AutoCAD2004/2005 + VC.Net2002** - **配置说明:** - **AutoCAD版本:** AutoCAD2004/2005 - **ObjectARX版本:** ObjectARX2004/2005 - **IDE:** Visual C# .NET 2002 (VC.Net2002) **3. 需要特殊处理的组合:ObjectARX2005 + AutoCAD2004/2005 + VC.Net2003** - **配置说明:** - **AutoCAD版本:** AutoCAD2004/2005 - **ObjectARX版本:** ObjectARX2005 - **IDE:** Visual C# .NET 2003 (VC.Net2003) - **特殊处理:** 需要调用或验证大量VC7.0的库文件才能成功编译。 - **解决方案:** 将VC2002安装目录下的VC7atlmfclib中的相关文件(例如 mfc70.lib、mfc70d.lib 等)拷贝到VC2003的相应位置。 **4. ObjectARX2006 + AutoCAD2006 + VC.Net2003 + AssistX + VSS6.0D** - **配置说明:** - **AutoCAD版本:** AutoCAD2006 - **ObjectARX版本:** ObjectARX2006 - **IDE:** Visual C# .NET 2003 (VC.Net2003) - **辅助工具:** AssistX (代替了Assist6.0) - **版本控制系统:** VSS6.0D (改进版的VSS) - **特殊处理:** 同样需要VC7.0的库文件。 - **解决方案:** 1. 复制VC2003的相关库文件(如 mfc71.lib、mfcs71.lib),并将其重命名为类似 *70* 的文件(如 mfc70.lib、mfcs70.lib)。 2. 拷贝VC2002的相关库文件到VC2003的对应安装目录下。 **5. ObjectARX2006 + AutoCAD2006 + V#.Net2003 .NetARX编程组合** - **配置说明:** - **AutoCAD版本:** AutoCAD2006 - **ObjectARX版本:** ObjectARX2006 - **IDE:** Visual C# .NET 2003 (V#.Net2003) - **特殊处理:** 编译的程序文件名为.dll,在AutoCAD中的加载命令为 `NetLoad`,但没有卸载命令,只能通过关闭AutoCAD来实现。 - **调用ARX函数的方法:** 使用 `using` 命令引入相关的命名空间,类似于VC中的 `#include`。 **6. ObjectARX2007/ObjectARX2008 + AutoCAD2007/2008 + VC.Net2005 + VisualAssistv10.2.1442.0 + VisualSourceSafe2005** - **配置说明:** - **AutoCAD版本:** AutoCAD2007/2008 - **ObjectARX版本:** ObjectARX2007/ObjectARX2008 - **IDE:** Visual C# .NET 2005 (VC.Net2005) - **辅助工具:** VisualAssistv10.2.1442.0 (增强代码编辑功能) - **版本控制系统:** VisualSourceSafe2005 (VSS2005) #### 二、AutoCAD菜单定制与保存 - **菜单加载过程:** - 当用户发出菜单命令时,AutoCAD会按照以下顺序加载菜单文件: 1. 加载指定菜单名的 `.mnc` 文件。 2. 如果找不到 `.mnc` 文件,则尝试加载同名的 `.mns` 文件,并将其编译成 `.mnc` 文件。 3. 如果 `.mnc` 和 `.mns` 文件均不存在,则尝试加载 `.mnu` 文件,并完成编译和加载。 - **菜单修改与保存:** - **修改`.mnu`文件:** - 在启动AutoCAD之前删除 `.mnc` 和 `.mns` 文件,或者重新加载 `.mnu` 菜单模板文件。 - 加载 `.mnu` 文件时,需将文件类型设置为 “Menu template (*.mnu)”。 - **使用AutoCAD功能修改菜单:** - 修改自动记录在 `.mns` 文件中。 - 为了使修改固定下来,在删除 `.mns` 文件之前,应将修改的内容移到 `.mnu` 文件中,并备份该文件。 - **覆盖原有菜单:** - 如果修改的是基础菜单 `acad.mnu`,则应在重新安装AutoCAD之后,用修改过的 `acad.mnu` 替换原始的 `acad.mnu` 文件,并删除 `.mnc` 和 `.mns` 文件。 #### 三、创建ObjectARX DLL程序步骤 1. **项目创建:** - 在项目选项中选择 "MFC App Wizard (DLL)",然后选择 "MFC Extension DLL",并输入项目名称。 2. **MFC设置:** - 在 "Project Settings" 对话框中,"General" 标签页的 "Microsoft Foundation Classes" 区域选择 "Use MFC in a Shared DLL"。 3. **宏替换:** - 打开由 AppWizard 创建的 `.cpp` 项目文件,删除 `AFX_EXTENSION_MODULE` 宏,并增加 `AC_IMPLEMENT_EXTENSION_MODULE(emx)` 宏。 - 删除不必要的代码,并添加必要的代码。 4. **输出文件名设置:** - 在 "Link" 标签页中,"General" 栏的 "Output file name" 项输入编译后的应用程序名,后缀为 `.arx`。 5. **链接器设置:** - 在 "Link" 标签页中,"Output" 栏的 "Base address" 项输入 `"0x1c000000"`,"Entry-point symbol" 项输入 `"DllEntryPoint@12"`。 6. **编译与测试:** - 按照以上步骤进行配置后,即可编译创建的ObjectARX DLL程序,并在AutoCAD环境中进行测试和调试。 通过上述配置和步骤,开发者可以有效地利用AutoCAD提供的二次开发工具ObjectARX,创建出功能强大的扩展插件,提升AutoCAD的使用效率和灵活性。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助