autocad .net开发指南_基于C#的AutoCAD开发实例2

本教程介绍了如何使用AutoCAD .NET Managed C#应用程序向导创建工程,自动引用acdbmgd和acmgd库。通过Editor类,向导生成的代码实现了提示用户选择点并在命令行显示坐标的功能。此外,教程还添加了一个新命令,计算两个点之间的距离,增强了用户交互体验。
摘要由CSDN通过智能技术生成

9752d37dd232b9feb770388b1a3ab9ac.png

.NETAutoCAD向导及Editor类

f9f6fee950569acd70a13bd03c5bf0c4.gif

在第一章中,我们使用的是类库模板,这样就不得不手工加入acdbmdg.dll 和acmgd.dll这两个引用。在这一章中,我们将使用AutoCAD托管C#应用程序向导来创建.NET工程,它会自动加入以上两个引用。在开始本章之前,你首先得安装ObjectARX向导( ObjectARX2006开发包的utilsObjARXWizArxWizards.msi)。

1

启动Visual Studio .NET,选择“文件>新建>工程”(File>New>Project)。在新建工程对话框中选择工程类型为 “VisualC#工程”,然后选择“AutoCAD Managed CS Project Application”模板。在工程名字框中输入“Lab2”,然后选择工程存放的位置。点击确定按钮,“AutoCAD Managed CSharp Application Wizard”对话框将会出现。因为我们不需要使用非托管代码,所以不要选择

“EnableUnmanagedDebugging”项。“Registered Developer Symbol”将会使用你在安装ObjectARX向导时输入的值。单击“finish”按钮来创建工程。

2

下面来看一下向导生成的工程。在解决方案浏览器中,你会看到acdbmgd和acmgd已经被引用了。在Class.cs文件中,

“Autodesk.AutoCAD.Runtime”命名空间已被导入,工程使用“Registered Developer Symbol”的名字来命名缺省的公有类。向导还为类加入了一个CommandMethod属性和一个函数,它们用于AutoCAD命令。

3

在前一章中,我们使用一个

“Autodesk.AutoCAD.EditorInput.Editor”类的实例对象在AutoCAD命令行上输出文本。在这一章中,我们将使用这个类来提示用户在AutoCAD图形中选择一个点,然后将用户选择的点的x,y,z值显示出来。和前一章一样,请导入

Autodesk.AutoCAD.ApplicationServices和

Autodesk.AutoCAD.EditorInput命名空间。

4

把向导生成的CommandMethod属性的值改为有意义一些的名字如“selectPoint”(函数的名字可以不用修改)。PromptPointOptions类用来设置提示字符串和其它的一些控制提示的选项。这个类的一个实例作为参数被传入到Editor.GetPoint方法。在函数的开始,实例化这个类,设置字符串参数为“Select a point”。因为Editor.GetPoint方法会返回一个PromptPointResult类的实例对象,所以我们也要把它实例化。

PromptPointOptions prPointOptions = newPromptPointOptions ("Select a point");

PromptPointResult prPointRes;

5

接下来实例化一个Editor类的对象并使用参数为PromptPointOptions对象的GetPoint方法。用GetPoint方法的返回值来给上面声明的PromptPointResult 对象赋值。赋值好以后,我们可以测试PromptPointResult 对象的状态,如果不是OK就返回。

prPointRe = ed.GetPoint (prPointOptions);

if(prPointRes.Status!=PromptStatus.OK)

{

ed.WriteMessage("Error");

}

6

如果PromptPointResult对象返回了一个有效的点,我们就可以使用WriteMessage方法把结果输出到命令行。PromptPointResult.Value的ToString方法使输出非常容易:

ed.WriteMessage ("You selected point"

prPointRes.Value.ToString)

7

按F5来运行一个调试AutoCAD的进程。(注意:向导已经设置好用acad.exe来调试)在AutoCAD命令行中输入NETLOAD,选择Lab2.dll并打开。在命令行中输入你起的命令名字

(selectPoint)。在选择点的提示下,单击图形中的任一点。如果一切正常的话,你可以在命令行中看到你所选的点的坐标值。在Class.cs文件的“ed.WriteMessage("Error");”行加入断点,然后再次运行selectPoint命令。这一次,在选择点的提示下按ESC键而不是选择一个点。

PromptPointResult对象的状态就不是OK了,所以上面代码中的if语句就会被执行,

“ed.WriteMessage("Error")”;语句就会被调用。

8

接下来我们将加入另外一个命令,它可以获取两个点之间的距离。向导没有添加命令的功能,所以我们必须手工添加。在Class.cs文件的选择点的函数(getPoint)下面添加一个名为

getDistance的新命令。加入命令的方法请参考上一章的内容或本章的源代码,这里就不列出了。使用CommandMethod 属性并使字符串参数为“getdistance”或其它类似的名字。在命令的函数中使用PromptDistanceOptions代替PromptPointOptions。当然GetDistance方法的返回值是一个PromptDoubleResult类的实例对象,所以请用PromptDoubleResult来代替PromptPointResult:

PromptDistanceOptions prDistOptions=new

PromptDistanceOptions("Find distance, select first point:");

PromptDoubleResult prDistRes;

prDistRes=ed.GetDistance(prDistOptions);

9

和前面的命令一样,也可以测试

PromptDoubleResult的状态,然后用

WriteMessage方法在命令行中显示值。

If (prDistRes.Status != PromptStatus.OK)

{

ed.WriteMessage ("Error");

}

else

{

ed.WriteMessage ("The distance is: " + prDistRes.Value.ToString ());

}

8f31cfc387bb3c77dc58fab1e0d1a21e.gif
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AutoCAD .net开发人员手册中文版 文档介绍: 当前版本为20101128版,为第一个CHM版本,如需更新版本,请及时关注http://www.01vb.com,也可以查看CHM文件中的前言部分的版本通知。 因本版本制作仓促,还有如下不完善的内容。 1、还有一章内容没有翻译完成; 2、目录部分和索引部分还是英文版本,但具体页面中全部是中英文对照(有些在提示中有些在翻译上面)。 本《AutoCAD .NET 开发人员手册》由01VB编程站翻译并提供,版权所有,原英文版本版权归原版权所有者所有。本手册为免费版本,可在网上随意发送,但必须注明出处(01VB编程站及网站链接http://www.01vb.com)及翻译者。 序言 自从 AutoCAD 支持使用 .NET 开发以来,所有关于 .NET 的官方开发资料全部是英文版本,给国内开发者的学习带来了一定的阻碍,为了给广大 .NET 爱好者提供更多方便,于是决定翻译一部分资料。 因本人英文水平及CAD二次开发水平有限,翻译的资料中也许有表达不清楚的地方,请大家谅解,也可以在资料底部找到留言的链接,给我留言或直接点击QQ联系我。 01VB编程站是一个非营利性的网站,但是,网站要生存,必须有经济来源。因此,本人在本手册中的投放了广告,但是,广告都是在正文内容的底部,不影响阅读。原则上我不鼓励大家点击上面的广告,除非真的对广告内容感兴趣。因广告给您带来的不便,还望谅解。 最近一段时间,老婆一直生病,始终没有痊愈,在此,我希望老婆能快点儿好起来, 并想对她说一句:老婆,别哭,好好养病,病痛在你身,也疼在我心。你累了,我会背你;钱花光了,我会去挣,身体是第一位的。如果你也想给我老婆送上祝福,请留言,谢谢!(2010.11.24) 翻译历史 2010年8月中旬 开始,期间由于本人生病,中断了几天,还有部分内容没有翻译完成,仍然在翻译中。 11.6 更新《图层状态管理器的使用》部分。 11.07 更新《文字样式》部分 11.08 更新完《创建和编辑AutoCAD图元》这章。 11.11 更新 《标注的概念》 部分 11.12 更新《创建标注》部分 11.15 更新完 《创建引线和注释》 部分 11.20 更新完《形位公差》 部分 11.24 更新到 《在三维空间中编辑 》 11.28 修正手册中的脚本错误,进行CHM格式文档的制作并在01VB编程站首发。 感谢 《AutoCAD .NET 开发人员手册》的翻译过程得到 明经通道 网站 "明经 AutoCAD.NetApi 群"中许多网友的帮助,像 MCCAD、雪山飞狐、Still等等,另外还有其它人记不清楚了,因为太多太多,总之两个字,谢谢。 版权 本开发人员手册版权属01VB编程站网站所有。 翻译者:黄明新(平凡)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值