C#操作CAD-初始化、引用dll

操作cad等方式有很多,比如C,C++,vb、lisp(效率最高,但是语言结构性太差)和C#,因为我等个人习惯和方便等原因,在此讲解一下用C#操作流程,后续会更新操作图层、扩展数据、绘图等操作步骤。当然前提是电脑上用cad程序,要不然没法调试哟!

1、第一步新建C#解决方案,然后新建类库。

2、引用cad内部dll接口。

引用acdbmgd.dll和acmgd.dll,它们在cad安装目录都能很容易找到。

别忘了引用后修改dll属性为复制到本地。

3、引用命名空间。

其实这一步可有可无,因为如果vs里面有类似resharp等插件等话,需要等时候会只能提示引用。在此把常用的命名空间写一下:

using Autodesk.AutoCAD.DatabaseServices;// (Database, DBPoint, Line, Spline)

using Autodesk.AutoCAD.Geometry ;//(Point3d, Line3d, Curve3d)

using Autodesk.AutoCAD.ApplicationServices;// (Application, Document)

using Autodesk.AutoCAD.Runtime;// (CommandMethodAttribute, RXObject, CommandFlag)

using Autodesk.AutoCAD.EditorInput ;//(Editor, PromptXOptions, PromptXResult)

using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;

为了后面编写代码的方面,也可有在类里面加上常用的类,比如:

public Document doc = AcadApp.DocumentManager.MdiActiveDocument;

public Database db = AcadApp.DocumentManager.MdiActiveDocument.Database;

public Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;

4、与用户前台交互数据的方式有两种,一种是用命令行输入自定义命名,一种是通过自定义winform通过按钮操作,原理都是一样。在此一一介绍。

首先,我们需要会用命令与前台交互,因为winform也是需要用命令调出的,这是基础必须掌握。

方法很简单,在类上加上标记就好了,比如:

[CommandMethod("myZoom")]
public void Zoom()
 {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Point2d pt1 = new Point2d(0, 0);
            Point2d pt2 = new Point2d(2, 2);
            string cmd = string.Format("Zoom {0},{1} {2},{3} ", pt1.X, pt1.Y, pt2.X, pt2.Y);
            doc.SendStringToExecute(cmd, true, false, false);
}

这就是一个我们自定义的图形缩放的命令,输入myZoom就可以自动缩放到由(0,0)和(2,2)为两个顶点的矩形大小。

5、好了,一个简单的功能就完成了,生成dll后我们该如何调用呢?

很简单,打开用cad打开dwg图形,在命令行输入netload(或者在菜单栏选择工具-加载net程序)然后选择刚刚生成的dll文件就好了。

然后输入myZoom试试,看看有没有变化?如果你有什么问题,请直接留言回复,我们一起学习一起进步。

后续请继续关注cad更多操作方式。

时间: 2024-10-25 06:38:44

C#操作CAD-初始化、引用dll的相关文章

.NetCore2.0引用DLL报System.InvalidOperationException: Can not find compilation library location for package 'XXX'

.NET CORE 2.0 MVC项目引用类库出现:System.InvalidOperationException: Can not find compilation library location for package 'XXX' 临时解决如下(据说2.0.1会修复):在Startup.cs文件中:修改: public void ConfigureServices(IServiceCollection services) { var mvcBuilder = services.AddMv

在SQL Server引用dll的流程

在SQL Server中引用dll分为两个步骤 1.创建一个dll文件 2.把dll文件放进SQL Server的程序集中.然后定义一个Function,就可以通过该Function来引用dll中的函数. 创建一个dll文件 1.点击“文件”->“新建”->“项目”->类库,把命名空间改成StringHelp,添加如下代码 namespace StringHelp //命名空间 { public class ClassConvert //类名 { //把输入的字符串中的小写字母变成大写字

C# 动态态引用DLL的方法

首先,我们需要封装一个dll,vs2008下建立一个类库,代码如下: using System; using System.Collections.Generic; using System.Linq; using using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace dll { public class addclass { public static In

C# 引用DLL版本冲突

已解决,到官网上下载旧key版本,然后再重定向即可. 手动引用两个版本的DLL错误的原因是我 publicKeyToken 大小写的问题(竟然没校验~~) 但我想不明白,这样搞如果依赖一多的话,甚至那个 publicKeyToken 都不统一的话,那管理起来不是会特别麻烦吗? 以下是原问题内容: 工程中要用到zookeeper,他依赖一个低版本的log4net,但是我想用高版本的log4net. 百度后发现可以使用 重定向程序集版本 来解决,但是实践后发现两个版本的 PublicKeyToken

cc2530操作任务系统初始化分析

操作系统任务初始化void osalInitTasks( void ){ uint8 taskID = 0; // 分配内存,返回指向缓冲区的指针 tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); // 设置所分配的内存空间单元值为0 osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); // 任务优先级由高向低依次排列,高优先级对应tas

vs2010生成Dll文件并引用dll(C#)

1.创建新C#控制台应用程序,项目命名createBll,打开Program.cs重命名为TestA(可以不重命名)并修改代码,如图: 写好后,可以写其它的类.cs文件 2.完成后,点击菜单栏的“项目”,下拉单选择“createDll属性”,打开如图窗口 在输出类型选择“类库”,然后关掉该窗口,生成解决方案,即生成了creatBll.dll文件,在项目下createBll\createBll\bin\Debug\createBll.dll目录下. 3.引用Dll文件,新建项目referenceD

关于ASP .Net Core 引用dll 一

一:ASP.Net Core 引用dll文件,不可以直接引用,必须在NuGet中引用才行. 二:如果想引用自己的dll文件,则需要注册NeGet账号,获取到API Key 才行,还需要下载NuGet安装包,下载路径  https://www.nuget.org/ API Key : https://www.nuget.org/account   ,选择第三个即可 将类库文件拖到右边Lib中 选择Publish 填写Publish key即 ApiKey即可 然后在NuGet 中就可以搜到了,如果

在C#中用COM操作CAD

一.介绍 AutoCAD的二次开发形式非常多, 有Autolisp,ObjectARX,VBA等,在本章我给大家介绍的是不太常用的COM方式操作CAD. 使用COM的方式有前期绑定和后期绑定2种. 二.示例代码 1.前期绑定 1 namespace ConsoleApplication2 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 Autodesk.AutoCAD.Interop.AcadApplication

在线转换网页版操作,CAD转换JPG格式

在线转换网页版操作,CAD转换JPG格式.在日常的CAD相关工作中,为了更好地绘图工作,总是会需要转换CAD图纸的格式.CAD转JPG是最常见的转换操作之一.有时候工作繁忙,使用CAD转换软件来转换可能非常麻烦.其实CAD转JPG可以在线转换,不使用任何CAD转换器也能完成.今天小编就给大家演示一下具体的转换方法.演示步骤如下: 步骤一:在浏览器里搜索迅捷CAD一词,找到网址进入官网界面. 步骤二:在迅捷CAD官网界面,移动光标到在线转换标签上,会看到下拉菜单显示的各种CAD转换按钮,我们点击C