最新的.NET教程之VB.NET

来源:互联网 发布:mac 进入mac系统 编辑:程序博客网 时间:2024/05/13 04:36

 第 1章
Hello World: 工程的创设

在这一章中,我们将不运用ObjectARX指引来创造一个新的工程。我们将应用Visual Studio .NET来创办一个新的类库工程。经过这个工程,你可以创设一个能被AutoCAD装载的.NET dll资料。这个dll资料会向AutoCAD加入一个名叫“HelloWorld”的新下令。当用户运作这个下令后,在AutoCAD 命令行上将展示“Hello World”文本。
一) 起步Visual Studio.NET,取舍”资料>新建>工程”(File> New> Project)。在新基建工程对话框入选择工程部类为”Visual Basic 工程”,其后抉择”种库”模板,在工程名字框中输入”Lab一”,其后取舍工程寄存的位置。点击确定旋钮来创设工程。
二) 在工程的Class一.vb资料中,一个国有种“Class一”已经被系统自动创造了。接下来向这个类加入下令。要加入下令,你务必运用AutoCAD .NET托管打包种。这些托管打包类包孕在两个托管模块中。要加入对这两个托管模块的引述,请用鼠标右键单击”引述”其后取舍”增添摘引”。在弹出的”增添摘引”对话框当选择”浏览”。在”抉择组件”对话框中,抉择AutoCAD 2006的装配索引(这边假设为C:/Program Files/AutoCAD 2006/),在这个索引下找出“acdbmgd.dll”其后抉择并打开它。再一次取舍”浏览”,在AutoCAD 2006的装配索引下找出“acmgd.dll”并打开它。应这两个组件被加入后,请单击”增添摘引” 对话框中的”确定”旋钮。正象它们的名字所表示的,acdbmgd.dll包孕ObjectDBX托管种,而acmgd.dll包孕AutoCAD托管种。
三) 应用对象浏览器(Visual Studio.NET的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的种。请铺展“AutoCAD .NET Managed Wrapper”对象(在对象浏览器中展示为acmgd),在整个课程中我们将应用这个对象中的种。在本章中,我们将运用 “Autodesk.AutoCAD.EditorInput.Editor”种的一个范例来在AutoCAD命令行中展示文本。请再铺展“ObjectDBX .NET Managed Wrapper” 对象(在对象浏览器中展示为acdbmgd),这个对象中的种将被用于访问和编者AutoCAD图形中的实业(这一部分内容将在之后的章节中引见)。

四) 摘引了ObjectARX .NET 打包类后,我们就可以导入它们。在Class1类的宣言话语(坐落Class一.vb资料的顶部的)头里,导入ApplicationServices, EditorInput 和 Runtime定名空间。

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime

五) 接下来在种Class1中加入下令。要加入能在AutoCAD 中调用的下令,你务必运用“CommandMethod”属性。这个属性由Runtime定名空间提供。在种Class1中加入下列属性和子程序。注意续行符” _”的应用。

Public Class Class一
_
Public Sub HelloWorld()

End Sub
End Class


六) 应“HelloWorld”下令在AutoCAD中运作的时分,上头定义的HelloWorld子程序就会被调用。在这个头程序中,一个Editor种的范例将被创设。Editor种拥有访问AutoCAD命令行的相干步骤,它还包括选择对象和其它一些主要的效能。AutoCAD目前活动文档的Editor对象可以施用Application种来访问。应Editor对象被创办后,你可以施用它的WriteMessage步骤在命令行中展示“Hello World”文本。在HelloWorld子程序中加入以次代码:

Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
ed.WriteMessage("Hello World")

七) 要在AutoCAD中调试这个程序,你可以让Visual Studio.NET起动一个AutoCAD历程。在解决方案管理器中右键单击“Lab一”,其后抉择”属性”。在Lab一的属性页对话框中,取舍” 配备属性>调试”。在”起步”项中,抉择”起动一个外部程序”,接下来单击删节号旋钮其后取舍AutoCAD 2006装配索引下的acad.exe。设立美之后,按F五来起步一个AutoCAD历程。这么就会编译你的程序其后自动起步AutoCAD,而应编译后有错处的时分就会终止。请匡正你也许遇到的任何错处。
八) “NETLOAD”下令被用于装载你方才编译的托管程序。在AutoCAD命令行中输入NETLOAD,会出现”抉择.NET组件”的对话框。取舍上头生成的“lab一.dll”其后打开它。
九) 在命令行中输入“HellowWorld”。如其一切顺利的话,命令行中将展示“Hello World”文本。切换到Visual Studio.NET,在ed.WriteMessage(“Hello World”);话语处加入一个断点。在AutoCAD中再度运作HelloWorld下令,你会注意到你可以追踪代码的运作。Visul Studio.NET的”调试”菜单有好几项可以用以追踪程序的运作。
如果有时间的话,请浏览一下子CommandMethod属性。你会发现它有七种不同的模式。在上面的例证中,我们应用了最容易的方式,它惟独一个输入参数(下令的名字)。你可以运用其它的模式来统制下令的工作方式,比如你可以确定下令组的名字、大局平手部名字、下令标识(下令何以来运作)等。

第2章 .NET AutoCAD 指引及容易用户输入
在第一章中,我们应用的是类库模板,这么就只好手工加入acdbmdg. dll 和acmgd.dll这两个引述。在这一章中,我们将施用AutoCAD托管C#应用程序引导来创办.NET工程,它会自动加入之上两个摘引。在开始本章先期,你第一得装配ObjectARX指引(ObjectARX2006开发包的/utils/ObjARXWiz/ArxWizards.msi)。



一) 起动Visual Studio .NET,取舍”资料>新建>工程”(File> New> Project)。在新基建工程对话框当选择工程部类为”Visual Basic工程”,其后抉择“AutoCAD Managed VB Project Application”模板。在工程名字框中输入”Lab二”,其后取舍工程寄存的位置。点击确定旋钮,“AutoCAD Managed VB Application Wizard”对话框将会出现。由于我们不需要应用非托管代码,之所以不用取舍“Enable Unmanaged Debugging”项。“Registered Developer Symbol”将会运用你在装配ObjectARX指引时输入的值。单击”finish”旋钮来创造工程。
二) 底下来看一下指引生成的工程。在解决方案浏览器中,你会看到acdbmgd 和 acmgd已经被引述了。在Class.vb资料中,“Autodesk.AutoCAD.Runtime”定名空间已被导入,工程施用“Registered Developer Symbol”的名字来定名缺省的国有种。指引还为类加入了一个CommandMethod属性和一个函数,它们用来AutoCAD下令。
三) 在前一章中,我们施用一个“Autodesk.AutoCAD.EditorInput.Editor”种的范例对象在AutoCAD命令行上输出文本。在这一章中,我们将应用这个种来提醒用户在AutoCAD图形当选择一个点,其后将用户抉择的点的x,y,z值显示出来。和前一章同样,请导入Autodesk.AutoCAD.ApplicationServices 和 Autodesk.AutoCAD.EditorInput定名空间。

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput

四) 把引导生成的CommandMethod属性的值改成故意义一些的名字如“selectPoint”(函数的名字可以不要批改)。PromptPointOptions种用以设立揭示字符串和其它的一些统制揭示的选项。这个种的一个范例作为参数被传到到Editor.GetPoint步骤。在函数的开始,范例化这个种,设立字符串参数为“Select a point”。由于 Editor.GetPoint步骤会回来一个PromptPointResult种的范例对象,之所以我们也要把它范例化。

Dim prPointOptions As PromptPointOptions =
New PromptPointOptions("Select a point")
Dim prPointRes As PromptPointResult

五) 接下来范例化一个Editor种的对象并施用参数为PromptPointOptions对象的GetPoint步骤。用GetPoint步骤的回到值来给上头宣言的PromptPointResult对象赋值。赋值美之后,我们可以测试PromptPointResult对象的状态,如其不是OK便回来。

Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
prPointRes = ed.GetPoint(prPointOptions)

If prPointRes.Status <> PromptStatus.OK Then
Return Nothing
End If

六) 如其PromptPointResult对象回到了一个有效的点,我们就可以应用WriteMessage步骤把结果输出到命令行。PromptPointResult.Value的ToString步骤使输出十分简单:

ed.WriteMessage("You selected point " & prPointRes.Value.ToString())

七) 按F五来运作一个调试AutoCAD的历程。(注意:指引已经设立好用acad.exe来调试)在AutoCAD命令行中输入NETLOAD,抉择Lab二.dll并打开。在命令行中输入你起的下令名字(selectPoint)。在抉择点的提醒停,单击图形中的任1点。如若一切正常的话,你可以在命令行受看到你所选的点的座标值。在Class.vb资料的“Return Nothing”行加入断点,其后再度运作selectPoint下令。这一次,在取舍点的揭示下按ESC键而不是取舍一个点。PromptPointResult对象的状态就不是OK了,之所以上头代码中的if话语就会被执行,“Return Nothing”话语就会被调用。
八) 接下来我们将加入除此以外一个下令,它可以获取两个点其间的距离。指引没平添下令的效能,之所以我们务须手工平添。在Class.vb资料的取舍点的函数(getPoint)下边平添一个名叫getDistance的新下令。加入下令的步骤请参照上一章的内容或本章的源代码,这边就不列出了。运用CommandMethod属性并使字符串参数为“getdistance”或其它相仿的名字。在下令的函数中应用PromptDistanceOptions替代PromptPointOptions。当然GetDistance步骤的回来值是一个PromptDoubleResult种的范例对象,之所以请用PromptDoubleResult来顶替PromptPointResult:

Dim prDistOptions As PromptDistanceOptions = New PromptDistanceOptions("Find distance, select first point:")

Dim prDistRes As PromptDoubleResult
prDistRes = ed.GetDistance(prDistOptions)


九) 和前方的下令同样,也可以测试PromptDoubleResult的状态,其后用WriteMessage步骤在命令行中展示值。

If prDistRes.Status <> PromptStatus.OK Then
Return Nothing
End If

ed.WriteMessage("The distance is: " & prDistRes.Value.ToString)
本文来源:
我的异常网
Dotnet Exception