CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)

一、 VS和CAD版本问题
Microsoft Visual Studio是不依赖AutoCAD运行的面向对象编程环境。虽然Microsoft Visual Studio是AutoCAD及其他应用程序的外部环境,但它能与那些公开了自己的本地.NET API或ActiveX/COM库的应用程序进行交互。

https://blog.csdn.net/l93919861/article/details/83963673[各版本CAD VS ObjectARX的对应关系]

二、 VS + CAD 环境搭建
步骤:

  1. 创建类库项目:新建项目 -> 创建类库 -> 添加新的引用
  2. 添加新的引用:右击引用 -> 添加引用 -> l浏览 -> 到CAD安装目录下找到 AcCui.dll acdbmgd.dll acmgd.dll accoremgd.dll AdWindows.dll文件添加
    CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第1张图片
  3. 将刚刚新添的引用文件复制本地改为False:选中文件 -> 属性 -> 复制地址 -> False
  4. 新建类,类中添加所示引用,若添加成功则说明开发环境已经完毕,可以进行开发 CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第2张图片
    二、VS + CAD 环境调试
    在VS中调试代码,直接进行调试的话VS会报错,因为这个是类库文件,不是一些exe文件之类的,所以需要调试的话我们需要外部启动CAD。
    步骤:
  • 打开CAD安装根目录,找到acad.exe.config文件,打开,在文件中添加:
  • 调试之前启动外部程序。在类库项目上右键->属性,在启动外部程序中,找到CAD安装目录下的acad.exe文件。
    CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第3张图片
  • 添加程序:CAD命令栏输入netload -> 找到工程文件(*.dll)路径(一般在Debug或者Release目录下) -> 选中文件添加 -> 加载 -> 在命令行输入代码中自定义命令[Hello]

类中添加Hello方法

 [CommandMethod("SayHello")]
        public void SayHello()
        {
            Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
            editor.WriteMessage("Hello World");
        }

程序解释:
Hello方法上面有一个CommandMethod的特性,CAD在运行的时候会搜索所有有CommandMethod特性的方法来作为命令入口。
所以在CAD中输入SayHello命令就会执行该方法内的动作。

在方法内我们获取了一个Editor对象,该对象表示CAD的命令行输入输出区域。我们也可以看到这个Editor对象是通过应用程序 → 文档管理器 → 当前文档 → Editor来获取的。
CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第4张图片

问题解决方法:
1) 输入命令,却显示为未知命令
a. 检查引用文件复制本地的属性是否已经改成False
b. 调试页面启用调试器选择 “启用本机代码调试”【这是导致本次问题的源头】

CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第5张图片

2) 出现处理器框架不匹配警告
a. 试着将项目属性 -> 生成 -> X64 可以解决

CAD二次开发(C#) CAD2017+VS2015 (一 环境配置)_第6张图片

你可能感兴趣的:(CAD二次开发)