您的位置:首页 > 编程语言 > C#

CAD二次开发(C#)第一个例子

2017-06-26 21:21 781 查看
个人开发平台:vs2010,win7,CAD2010

C#开发CAD的顺序:

1.建立类库

2.添加引用:AcCui.dll,acdbmgd.dll,acmgd.dll;这三个dll在CAD的安装目录下

3.将添加的三个DLL的复制本地属性更改为False

4.将编译平台由.NET 4.0更改为.NET3.5或以下

5.在项目的调试选项中,添加启动外部选项,指定CAD的启动目录(cad.exe),debug时自动启动CAD

6.设计代码(命令):键入新设计的命令调试,设计命令时,必须使用【commandmethod(“新命令”)】属性。

7.调试 在CAD中键入 NETLOAD命令,选择生成的*.dll

示例:输出 HelloWorld

详细步骤:

1.建立一个类库项目:





2.添加引用:

AcCui.dll,acdbmgd.dll,acmgd.dll;这三个dll在CAD的安装目录下







添加完引用之后,解决方案中,引用部分如下:



3.更改三个DLL的复制本地属性为FALSE





其余2个DLL照上述操作,也把复制本地属性由true更改为False。

4.将编译平台由.NET4.0 更改为.NET3.5或以下

右键项目或者在项目菜单中,选择当前项目的属性(FirstCAD项目)



打开当前项目的属性,修改程序选择页中的目标框架,如果高于.NET3.5,更改到.NET3.5或以下。



5.在项目的调试选项中,添加启动外部选项,指定CAD的启动目录(cad.exe),debug时自动启动CAD

路径根据自己的安装情况填写



6.设计代码(命令):键入新设计的命令调试,设计命令时,必须使用【commandmethod(“新命令”)】属性

引入命名空间:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
namespace FirstCAD
{
public class Class1
{
}
}

最终代码效果如下:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.EditorInput;

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Runtime;

namespace FirstCAD

{

public class Class1

{

[CommandMethod(“HelloWorld”)]//设计的新命令

public void HelloWorld()//调用HelloWorld 命令要调用的函数

{

Document acDoc = Application.DocumentManager.MdiActiveDocument;//获取当前的活动文档

Editor acEd = acDoc.Editor;//当前的编辑器对象,命令行对象?

acEd.WriteMessage(“Hello World 2017 ,LEADSOFT.ORG”);//输出字符串

}

}

}

选择生成解决方案,如果无错误,准备进行调试,如果有错,修改代码。

7.调试 在CAD中键入 NETLOAD命令,选择生成的FirstCAD.dll

选择debug,启动调试,如果前面设置启动外部选项无误,应该自动启动CAD,在CAD命令行中,键入 NETLOAD 命令

打开选择文件对话框,选择刚生成的Dll,应该为FirstCAD.dll

应该在所建立项目下debug文件下有一个FirstCAD.dll ,选择它,之后确定

;键入命令 HelloWorld,命令行输出:

“Hello World 2017,LEADSOFT.ORG “







“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息