首页 > 编程知识 正文

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

时间:2023-05-05 23:28:03 阅读:247168 作者:3702

个人开发平台: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 “

“`

介绍两种方法来创建内存交换空间swap-linux运维logrotate-logrotate配置java继承问题Golang中的位操作实例代码分析

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。