目录

一、新建项目

1、应用程序 目标框架 选择 4.7.2版

2、生成 目标平台选择x64

3、调试 启动外部程序 选择 acad.exe

二、添加autocad类库

三、如何运用命名空间

1、[CommandMethod("***")]

2、简单了解一些命名空间

3、编辑的命令如何添加对应头文件

四、调用命令打开AutoCAD,通过命令打印自定义内容


一、新建项目

打开vs2019,新建项目,选择C# 类库,框架选择(.NET Framework 4.7.2)

然后需要配置一些东西,避免以后出现错误

项目名右键选择属性

1、应用程序 目标框架 选择 4.7.2版

2、生成 目标平台选择x64

3、调试 启动外部程序 选择 acad.exe

二、添加autocad类库

在解决方案资源管理器里找到引用,右键选择添加引用,

浏览里找到三个文件 acmgd.dll、acdbmgd.dll、accoremgd.dll添加进来

这三个文件是在cad安装路径里,例如我的路径是E:\CAD\Autodesk\AutoCAD 2019

当然也可以查看类库里存在的内容,比如说是acdbmgd库,右键选择在对象浏览器中查看,里面存在很多的命名空间。

三、如何运用命名空间

使用一个方法,前面加一个   CommandMethod

1、[CommandMethod("***")]

这里怎么理解呢,就是AutoCAD命令窗口内输入的命令为test01时,就会自动调用下面的函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Yztest1
{public class Class1{//加一个命令[CommandMethod("test01")]//紧接着写一个函数public void test01(){}}
}

2、简单了解一些命名空间

下面对一些命名空间中出现的词进行简单的了解,以后慢慢都会学习到的

Application 指Autocad这个软件
Document Manager 包含所有的document对象(每一个打开的图形都有一个对应的document对象)
Document Window Collection 包括所有的document窗口对象(在DocumentManager中的每一个document对象都有一个document窗口)
InfoCenter 包括对信息中心(InfoCenter)工具栏的引用)
MainWindow 包含对Autocad应用程序窗口对象的引用
MenuBar 包含对Autocad菜单栏对应的COM菜单栏对象的引用
MenuGroups 包含COM的菜单组对象的引用,它包含每一个加载的CUIx文件的定制组名
Preferences 包含COM的参数选项对象的引用,它允许你修改选项(Options)对话框中的许多设置
Publisher 包含Publisher对象的引用,它用于发布图形
StatusBar 包含应用程序窗口的状态栏对象的引用
UserConfiguration 包含UserConfiguration对象的引用

其中的Document Manager 里包含的Document还包含了更多,这个表后面持续更新

Database

图形数据库
Editor autocad里面的命令行

3、编辑的命令如何添加对应头文件

要注意一些命令是需要对应的头文件的,比如下面的:

CommandMethod命令需要引用 using Autodesk.AutoCAD.Runtime头文件

Editor命令需要引用  using Autodesk.AutoCAD.EditorInput头文件

Application命令需要引用 using Autodesk.AutoCAD.ApplicationServices头文件

.........

那么在确定添加autocad相关的类库之后还会报错的情况下如何添加正确的头文件呢?

将鼠标放在报错地方,然后点击alt+enter就会跳出可选择的头文件,比如下面的图:

四、调用命令打开AutoCAD,通过命令打印自定义内容

输入命令如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//新添的头文件
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;namespace Yztest1
{public class Class1{//加一个命令[CommandMethod("test01")]//紧接着写一个函数public void test01(){//声明命令行对象Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;ed.WriteMessage("我是无敌哒无敌哒小可爱");}}
}

将代码运行,autocad就会自动启动,新建一个cad文件

在cad下面命令窗口输入NETLOAD命令,找到vs里面刚才代码生成的类库,

例如我的路径是E:\vsandcad\Yztest1\Yztest1\bin\Debug\Yztest1.dll 文件

出现了安全性问题,始终加载就可以了

然后就可以在命令窗口输入代码命令CommandMethod后面的test01

啊哈哈哈哈成功!!

之前可以发现Debug文件里 有很多文件,也可以通过以下操作缩减一下:

选中后来引用的三个 文件,右键属性里,复制本地将true改成false

修改后再运行程序查看文件就可以发现文件减少了

今天就到这明天继续~

AutoCAD2019+vs2019+C# 二次开发学习笔记day01(持续更新)相关推荐

  1. AutoCAD2019+vs2019+C# 二次开发学习笔记day05(持续更新)

    目录 一. 给定半径和圆心 绘制圆 Circle 1.代码记录 2.封装函数 二.给定两点绘制圆 1.代码记录 2.封装函数 三.给定三点绘制圆 1.代码记录 2.封装函数 四.多段线 Polylin ...

  2. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  3. 幻樱の安卓开发学习笔记(持续更新)

    安卓开发手册Java . 前言 . 本篇博客是我在开发过程中遇到的一些问题,我将这些问题记录了下来,以防踩重复的坑,希望对需要学习或者来看我踩坑的人有所帮助. . . . . 零.一些常用的依赖 1. ...

  4. Revit二次开发学习笔记

    Revit二次开发学习笔记1 20220314: 概念:Application与Document 接口函数:IExternalCommand.ActiveView与Selection 20220316 ...

  5. ① ESP8266 开发学习笔记_By_GYC 【更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印】

    ① ESP8266 开发学习笔记_By_GYC [更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印] 在我们日常的开发过程中,经常使用到的一个功能就是串口打印功能.在ESP826 ...

  6. C语言学习笔记Day3——持续更新中... ...

    上一篇文章C语言学习笔记Day2--持续更新中- - 八. 容器 1. 一维数组 1.1 什么是一维数组 当数组中每个元素都只带有一个下标(第一个元素的下标为0, 第二个元素的下标为1, 以此类推)时 ...

  7. CUDA学习笔记(持续更新——蜗速)

    CUDA学习笔记(持续更新--蜗速) 1.CUDA 程序实现流程如下 2.内存管理 3.核函数 4.全局数据访问唯一索引 5.设备管理 附录代码 1.CUDA 程序实现流程如下 将数据从CPU内存拷贝 ...

  8. 微服务基础知识点学习笔记(持续更新)

    微服务基础知识点学习笔记(持续更新) Conrtoller层 整体包括:HTTP协议,JavaWeb三大组件(filter.servlet.listener).SpringMVC(SpringMVC的 ...

  9. NumPy个人学习笔记【持续更新】

    NumPy个人学习笔记[持续更新] 来源:快速入门教程 - NumPy中文文档 目录 基础知识 数组的创建 打印数组 基本操作 通用函数 索引.切片和迭代 形状操作 更改数组的形状 将不同数组堆叠在一 ...

最新文章

  1. 不限文件类型的ftp服务器,ftp服务器文件类型
  2. Python 处理带中文 Excel 文件
  3. 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署
  4. 关于软件组织培训的几个值得提倡的建议
  5. Ubuntu下VIM使用指南
  6. SSH学习-Hibernate对象生命周期管理
  7. 聊聊身边的嵌入式,为什么老司机都爱后视镜
  8. 猛男教你写代码_猛男程序员,鼓存储器和1960年代机器代码的取证分析
  9. SQL关键字Pivot(行变列)
  10. JPA、Hibernate、Mybatis的区别
  11. php mongodb _id,mongodb php findone()由ID
  12. model.train() model.eval()
  13. 宠物商店 - MLDN 李兴华老师
  14. VS2012使用 MSDN教程
  15. <毕业设计>最适合大学生的12个Java系统项目(附源码)
  16. 3D空间扫描,用立体的眼光看懂世界
  17. java导出excel合并单元格
  18. 【电子科学系保研】-- 湖南大学保研之旅
  19. 苹果 iOS 10 更新消息汇总,iPhone 4s 可能用不了
  20. android输入法隐藏状态栏,android 输入法设置显示隐藏

热门文章

  1. unity外部摄像头占用问题
  2. Games104 Lecture 3 如何构建一个游戏世界
  3. Excel中IFERROR函数的使用方法
  4. java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象
  5. 自学行政管理简单还是计算机简单,学姐经验:适合考公务员的自考热门专业,建议收藏...
  6. 移动硬盘或者nvme硬盘安装ubuntu系统
  7. 在TeXShop中使用中文(for Mac OS)
  8. 《巫师3:狂猎》4.01版更新 PC端已上线
  9. 如何规划地域和可用区(相关定义和分析)
  10. 程序员夸夸群,减压堪比拥有一群鼓励师