利用c#进行autocad的二次研发(一)_c#应用
2008-02-23 05:46:57来源:互联网 阅读 ()
众所周知,对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;i<3;i )
startPoint[i]=Convert.ToDouble(str[i]);//将str数组转为double型
str=textBox2.Text.Split(,);//取出直线终点坐标输入文本框的值
for(int i=0;i<3;i )
endPoint[i]=Convert.ToDouble(str[i]);
a.ActiveDocument.ModelSpace.AddLine(startPoint,endPoint);//在AutoCAD中画直线
a.Application.Update();//更新显示
好了,简单吧,您能够试着编译一下。关于上面一些语句的用法,我会在下一讲中作周详介绍。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 利用c#进行autocad的二次研发(二)_c#应用 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash