C#语言还是比较常见的东西,这里我们主要介绍C# PromptPointResult对象,包括介绍调试AutoCAD的进程等方面。
实例化一个Editor类的对象并使用参数为PromptPointOptions对象的GetPoint方法。用GetPoint方法的返回值来给上面声明的C# PromptPointResult对象赋值。赋值好以后,我们可以测试C# PromptPointResult对象的状态,如果不是OK就返回。
- prPointRes = ed.GetPoint(prPointOptions);
- if (prPointRes.Status != PromptStatus.OK)
- {
- ed.WriteMessage("Error");
- }
如果C# PromptPointResult对象返回了一个有效的点,我们就可以使用WriteMessage方法把结果输出到命令行。PromptPointResult.Value的ToString方法使输出非常容易:
- ed.WriteMessage("You selected point "
- prPointRes.Value.ToString)
按F5来运行一个调试AutoCAD的进程。(注意:向导已经设置好用acad.exe来调试)在AutoCAD命令行中输入NETLOAD,选择Lab2.dll并打开。在命令行中输入你起的命令名字(selectPoint)。在选择点的提示下,单击图形中的任一点。如果一切正常的话,你可以在命令行中看到你所选的点的坐标值。在Class.cs文件的“ed.WriteMessage("Error");”行加入断点,然后再次运行selectPoint命令。这一次,在选择点的提示下按ESC键而不是选择一个点。C# PromptPointResult对象的状态就不是OK了,所以上面代码中的if语句就会被执行,“ed.WriteMessage("Error")”;语句就会被调用。
接下来我们将加入另外一个命令,它可以获取两个点之间的距离。向导没有添加命令的功能,所以我们必须手工添加。在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);
【编辑推荐】