创建ZWCAD实体--弧长标注

来源:互联网 发布:平果平板软件 编辑:程序博客网 时间:2024/05/16 15:43
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Geometry


Public Class ZwcadApps


    <CommandMethod("CreateArcD")> _
    Public Sub CreateArcD()
        Dim ZcDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZcDB As Database = ZcDoc.Database
        Dim ZcEd As Editor = ZcDoc.Editor




        Using ZcTran As Transaction = ZcDB.TransactionManager.StartTransaction()
            Dim ZcBLT As BlockTable = ZcTran.GetObject(ZcDB.BlockTableId, OpenMode.ForRead)
            Dim ZcBLTR As BlockTableRecord = ZcTran.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
            Dim ent As Arc = Nothing
            Do
                Dim peo1 As New PromptEntityOptions(vbLf & "Select an arc:")
                peo1.SetRejectMessage(vbLf & "Must be an arc")
                peo1.AddAllowedClass(GetType(Arc), True)
                Dim per1 As PromptEntityResult = ZcEd.GetEntity(peo1)
                If per1.Status <> PromptStatus.OK Then
                    Return
                End If
                ent = DirectCast(ZcTran.GetObject(per1.ObjectId, OpenMode.ForRead), Arc)
            Loop While ent Is Nothing


            Dim peo2 As New PromptPointOptions(vbLf & "Specify point:")
            Dim per2 As PromptPointResult = ZcEd.GetPoint(peo2)
            If per2.Status <> PromptStatus.OK Then
                Return
            End If
            Dim pt2 As Point3d = per2.Value


            Dim styleID As ObjectId = ZcDB.Dimstyle
            Dim DimEnt As ArcDimension = New ArcDimension(ent.Center, ent.StartPoint, ent.EndPoint, pt2, "<>", styleID)


            ZcBLTR.AppendEntity(DimEnt)
            ZcTran.AddNewlyCreatedDBObject(DimEnt, True)


            ZcTran.Commit()
        End Using
    End Sub


End Class
原创粉丝点击