1 环境搭建(VS 2017 + CAD 2019)

CAD版本一般要比VS版本晚两年以上,比如我现在使用VS2017,则CAD要用2019版,至于CAD2018能不能用没试验过,有兴趣的小伙伴可以试试。

(1)下载

以上两项都能在Autodesk网站下载:

ObjectARX_2019autoCADnetwizards

(2)安装ObjectARX类库

双击Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx选个非中文路径解压,记住路径备用。

(3)安装dotnet_wizards

双击安装autoCADnetwizards2019,向导可以帮我们配置好环境,当然也可以自己配置,但是还是直接用人家提供的向导方便。

其中发现的坑:

这里我安装的时候碰到一个,打开wizard后提示需要framework4.7,而我明明安装了framework4.7.2,折腾了半天最后把4.7.2卸了,发现.4.7安装不上,提示我安装了更高版本,尼玛,我明明没有安装4.6.2以上的.net版本了。这个软件也是做的烂,非得是.net framework4.7,高了不行。

老毛病,win10是预装4.7的,尤其是现在都会帮你更新到4.7.2,所以向导不认。我寻思着把4.7.2卸了,再装4.7就行,结果使出浑身解数都找不到在哪卸(有会的同学望告知),所以只能手动配置。

友情提醒,建议安装不上就别折腾了,手动配置环境也不费事的,请看第三部分“手动配置环境”。

2 使用.net wizards C#模板创建Hello World

完成上述步骤打开VS2017,新建项目,可以发现C#下面出现了Autodesk选项,framework固定为4.7,点击确定。

接下来选择:ObjectARX SDK(上面第一步的路径) 和 CAD 软件安装目录。

点击Ok后创建完成。

此时在解决方案栏里有了两个cs:myCommand.cs和myPlugin.cs,选择myCommand.cs找到如下代码:

public void MyCommand() // This method can have any name
{
// Put your command code here
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed;
if (doc != null)
{
ed = doc.Editor;
ed.WriteMessage("Hello, this is your first command.");
}
}

这是其自动生成的示例,在CAD里输入"MyCommand"命令可以输出"Hello, this is your first command."的信息,我们可以改成熟悉的"Hello World"。

F5启动,系统会自动打开CAD,在CAD中输入命令"netload",打开“选择.NET程序集”框,找到我们刚生成的dll。

注:启动前选Debug的话,生成的dll在:工程文件夹\bin\Debug里。选择后会询问安全性,选加载。这样我们的dll就加载进来了,命令栏输入mycommand,回车会显示“Hello World”,则运行成功。

在VS里设置断点,再回CAD输一遍mycommand命令,可以看见断点也能正常运作。

3 手动配置环境

开启CAD .Net C#二次开发之路,在上面一小节中可能遇到了挫折,不过也可以使用手动配置,所以上面的安装错误无所谓。

3.1     导入引用

首先创建一个类库或者根据个人需要其他什么的应用,创建的时候要注意,要选framework4.7。然后将

accoremgd.dll

AcCui.dll

acdbmgd.dll

acmgd.dll

这几个dll导入到引用,这几个文件可以在cad的安装目录里找到,如:X:\XX\CAD2019\AutoCAD 2019。

3.2  配置启动CAD

我希望点击“启动”按钮能打开CAD,这里需要在项目的属性>调试>启动外部程序里选择cad安装目录下的acad.exe。

3.3 添加using

最后把之前的using拷进来就行了,代码和第二章的一样。

using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Geometry;

using Autodesk.AutoCAD.EditorInput;

3.4 参考源码

CAD_DEV_HelloWord.rar (2019.3.10更新)

3.5 优质的参考资源

官方教程--AutoCAD.NET Training Labs。

官方教程--My First AutoCAD Plug-in,有8个课时,很详细。

4 参考文献

AutoCAD2019.Net二次开发学习,2018.11.

ObjectARX 2018 + AutoCAD2018 + VS2018 C# 创建第一个 Hello word程序

使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)

AutoCAD二次开发——AutoCAD.NET API开发环境搭建

CAD二次开发c#(一)搭建环境

CAD二次开发起步的更多相关文章

  1. Cad 二次开发关于SelectCrossingPolygon和SelectFence返回结果Status为error的小测试

    CAD2008的二次开发,有个很奇怪的现象,只要你选择的点集不在当前视图上SelectCrossingPolygon和SelectFence返回结果Status就会为error,所以要获取正确的结果, ...

  2. CAD二次开发

    用C#有一段时间了,由于单位需要,开始接触CAD二次开发,网上一搜,加入CAD开发的群,零零碎碎看了一些文章和博客,没有系统地的知识,能解决一些小问题.最近开始系统学习,再次推荐两本书,一本事纸质版的 ...

  3. 推荐两个不错的CAD二次开发(.Net)手册

    推荐两个不错的CAD二次开发(.Net)手册 http://www.mjtd.com/helpcenter/netguide/index.html http://www.ceesky.com/book ...

  4. CAD 二次开发 -- 自动加载开发的DLL

    CAD二次开发可以采用写扩展DLL的方式实现.该DLL的函数可以被CAD调用. 但是调用前,必须用命令netload 将该dll加载到CAD. 其实可以修改注册表,当CAD软件启动后,自动加载扩展DL ...

  5. C#进行CAD二次开发环境配置

    最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...

  6. CAD二次开发中浮动面板不浮动的问题

    CAD二次开发中创建了一个浮动面板,想让它创建出来后以浮动状态显示, 但是DockSides.None设置完后,面板还是不浮动.搞了很久,最后原来是 需要先设置Visible,再设置DockSides ...

  7. CAD二次开发控件,dwg控件,网页DWG控件,手机浏览编辑DWG控件

    梦想绘图插件5.2(MxDraw5.2) 是国内最强,最专业的CAD开发插件(控件),不需要AutoCAD就能独立运行. 控件使用VC 2010开发,具有30万行代码规模,最早从2007年第一个版本完 ...

  8. C# ObjectArx cad二次开发

    1 环境搭建:安装CAD 和objectArx库,这里安装的是cad2012和objectArx2010 ,vs是2010 2 新建一个类库项目,引用objectArx安装目录下inc文件夹下的AcD ...

  9. CAD二次开发(.net)优秀网站分享

    Autodesk官方网站 官方帮助文档:AutoCAD 2016 帮助: Managed .NET Developer's Guide (.NET) (autodesk.com) DXF帮助手册:DX ...

随机推荐

  1. 一个完整的Installshield安装程序实例-转

    一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...

  2. 009_【OS X和iOS系统学习笔记】 OS X架构

    1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件. 2.Darwin是操作系统的类UNIX核心,本身由内核.XNU和运行时组成. 3.uname指令:可以得到有关架构的详细信息以及 ...

  3. centos7.2环境yum方式快速搭建lnmp环境nginx+mariadb+php-fpm

    centos7.2环境yum方式安装nginx+mariadb+php-fpm 1.安装lnmp环境 安装epel源 yum install -y epel-release 安装 MySQL + PH ...

  4. 使用配置文件启动MongoDB

    Ubuntu 16.04 (阿里云ECS),MongoDB 4.0, 原来,已经写了10篇MongoDB的随笔了.可是,自己居然没有使用配置文件启动过MongoDB,对其更多的配置是不明白的. 昨天( ...

  5. H5新增语义化标签

    一.根据页面的结构,由div派生的标签. <header> <footer> <nav> 导航 在H4中导航栏一般用ul-li标签,H5中可以直接用<nav& ...

  6. 动态规划(dp)专题

    航线设置   问题描述在美丽的莱茵河畔,每边都分布着N个城市,两边的城市都是唯一对应的友好城市,现需要在友好城市间开通航线以加强往来,但因为莱茵河常年大雾,如果开设的航线发生交叉就有可能出现碰船的现象 ...

  7. Kosaraju算法学习

    Kosaraju 算法学习 序 这星期捣鼓了一个新的算法--Kosaraju算法 今天分享给大家 简介 Kosaraju算法,其实与tarjan算法差不多.但是码量较小,容易记忆.其时间复杂度与tar ...

  8. Jupyter notebook安装与使用

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言. 安装 安装python 3 pip安装 pip3 install - ...

  9. ps -aux与ps -ef

    ps -aux与ps -ef这两个命令显示的结果是差不多的. 不同之处就是显示风格不同,前者是BSD风格,后者SYSTEM V(其实我不太明白这尼玛风格是什么跟什么,我看起来都差不多啊) 然后重要的不 ...

  10. Oracle中Blob和Clob

    http://www.cnblogs.com/ztf2008/archive/2009/05/16/1458432.html Blob是指二进制大对象也就是英文Binary Large Object的 ...