VBA中可以用GetBoundingBox来取得实体的最大点和最小点。在.NET中可以使用GeometricExtents来达到这种效果。
Imports ZwSoft.ZwCAD.ApplicationServicesImports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Geometry
Namespace SuperHatch
Public Class SHMain
<CommandMethod("SuperHatch")> _
Public Sub SuperHatch()
Dim zcDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim zcDB As Database = zcDoc.Database
Using zcTran As Transaction = zcDB.TransactionManager.StartTransaction
Dim zcBLT As BlockTable
zcBLT = zcTran.GetObject(zcDB.BlockTableId, OpenMode.ForRead)
Dim zcBLTR As BlockTableRecord
zcBLTR = zcTran.GetObject(zcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim zcCircle As Circle = New Circle
zcCircle.Center = New Point3d(2, 3, 0)
zcCircle.Radius = 10
zcBLTR.AppendEntity(zcCircle)
zcTran.AddNewlyCreatedDBObject(zcCircle, True)
Dim midpoint As Point3d = zcCircle.GeometricExtents.MinPoint
Dim maxpoint As Point3d = zcCircle.GeometricExtents.MaxPoint
zcTran.Commit()
End Using
End Sub
End Class
End Namespace