使用 VB.NET 和 AutoCAD .NET 打印出 RXClass 信息
在这篇文章中,让我们详细了解一下 RXClass,看看它在使用 AutoCAD .NET 编程时能给我们带来什么。那么我们将来可能会很好地利用它。
这是在 RXClass 中检查 Circle 类的测试命令和代码:
<CommandMethod("RxClassInfo")> _
Public Shared Sub RxClassInfo_Method()
Dim ed As Editor = MgdAcApplication.DocumentManager.MdiActiveDocument.Editor
Dim rxClass__1 As RXClass = RXClass.GetClass(GetType(Circle))
Dim str As String = "RXClass info for Circle:" & vbLf
str += String.Format(vbTab & "Name: {0}" & vbLf, rxClass__1.Name)
str += String.Format(vbTab & "DxfName: {0}" & vbLf, rxClass__1.DxfName )
str += String.Format(vbTab & "AppName: {0}" & vbLf, rxClass__1.AppName)
str += String.Format(vbTab & "ClassVersion: {0}" & vbLf, rxClass__1.ClassVersion)
str += String.Format(vbTab & "父: {0}" & vbLf,rxClass__1.MyParent.Name)
str += String.Format(vbTab & "ProxyFlags: {0}" & vbLf, rxClass__1.ProxyFlags)
str += String.Format(vbTab & "AutoDelete: {0}" & vbLf, rxClass__1.AutoDelete)
str += String .Format(vbTab & "IsDisposed: {0}" & vbLf, rxClass__1.IsDisposed)
ed.WriteMessage(str)
End Sub
这里是输出:
命令:RxClassInfo
RXClass info for Circle:
名称:AcDbCircle
DxfName:CIRCLE
AppName:ObjectDBX Classes
ClassVersion:19.0.0.0
Parent:AcDbCurve
ProxyFlags:0
AutoDelete:False
IsDisposed:False
因此,RXClass 的名称可以预期为前缀 AcDb 加上 AutoCAD .NET 类名,而 DxfName 是 .NET 类名的大写。AppName 似乎始终是 AutoCAD 本机类的 ObjectDBX 类。尽管测试命令/代码在 AutoCAD 2012(内部/注册表版本 18.2)中运行,但此处的 ClassVersion 为 19.0.0.0。Circle 的父 RXClass 也是预期的 AcDbCurve。ProxyFlags 为 0 表示 Circle 不是来自第三方或定义它的应用程序(例如 ObjectDBX)正在加载和启用。AutoDelete 和 IsDisposed 很简单。
领先的AutoCAD .NET 插件向导 (AcadNetAddinWizard)提供了各种项目向导、项目向导、编码器和小部件,以帮助对 AutoCAD .NET 插件进行编程。
https://spiderinnet1.typepad.com/blog/2015/02/prin ... ing-vbnet-and-autocad-net.html