- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用 C# 进行 AutoCAD 的二次开发(一) 转自明经通道
众所周知,对 AutoCAD 进行二次开发用到的主要 工具 有: ObjectArx,VBA,VLisp 。但它们的优缺点是显而易见的 :ObjectArx 功能强大 ,编
程效率高 ,但它的缺点是编程者必须掌握 VC++, 而这门语言非常的难学 ;VBA 和 VLisp 虽然简单易上手 ,但它们对于开发大型的程序好象无
能为力。那究竟有没有一种语言能结合它们的优点而尽量避免它们的缺点呢 ? 回答是肯定的 ,那就是微软新推出的 21 世纪编程语言 C# 。
关于 C# 的详细介绍,大家可以参考有关的文章。
C# 是通过 AutoCAD ActiveX 这座桥梁来和 AutoCAD 之间进行通讯的。 AutoCAD ActiveX 使用户能够从 AutoCAD 的内部或外部以
编程方式来操作 AutoCAD 。它是通过将 AutoCAD 对象显示到 “外部世界 ”来做到这一点的。一旦这些对象被显示,许多不同的编程语言
和环境就可以访问它们。关于 AutoCAD ActiveX 的情况,大家可以参考 AutoCAD 自带的帮助。
呵呵,说了这么多无聊的,还是让我们通过一个具体的例子来说明怎样利用 C#进行 AutoCAD 的二次开发吧。在介绍例子之前先讲
一下有关的配置:
(1)Visual Studio .net (2003 和 2002 都可以,我用的是 2002) (2 )AutoCAD2000 以上版本(我用的是 2004 )
这个例子非常简单,就是通过 C#建立的窗体来启动 AutoCAD 并画一条直线。下面是编程的具体步骤:
(1)通过 Visual Studio .net 建立一 C# 的 windows 应用程序。
(2)在 “解决方案资源管理器 ”中右击 “引用 ”标签,在弹出的菜单中选择 “添加引用 ”,在 “添加引用 ”对话框中选择 “com选项卡下的下拉列
表框中的 “AutoCAD 2004 Type Library 项(注意:不同版本的 CAD 的数字不同) ,单击右边的 “选择 ”按钮,最后单击下面的 “确定 ”按钮。
(3)在 C#窗体中加入两个文本框和一个按钮, 分别用于输入直线起点、 终点的坐标和在 CAD 中画直线。 下面主要解释一下添加的代码。
(a)在程序的开头加入: using AutoCAD;// 导入 AutoCAD 引用空间
(b)在窗体的变量声明部分加入 : private AcadApplication a;// 声明 AutoCAD 对象
(c)在窗体的构造函数部分加入: a=new AcadApplicationClass();// 创建 AutoCAD 对象
a.Visible=true;// 使 AutoCAD 可见
(d)在按钮的消息处理函数中加入:
double[] startPoint=new double[3]; // 声明直线起点坐标
double[] endPoint=new double[3];// 声明直线终点坐标
string[] str=textBox1.Text.Split(,);// 取出直线起点坐标输入文本框的值,文本框的输入模式为" x,y,z "
for(int i=0;i3;i++)
startPoint =Convert.ToDouble(str);// 将 str 数组转为 double 型
str=textBox2.Text.Split(,);// 取出直线终点坐标输入文本框的值
for(int i=0;i3;i++)
end
文档评论(0)