编辑ZWCAD实体--偏移对象

Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Geometry


Public Class ZwcadApps


    <CommandMethod("OffsetObject")> _
    Public Sub OffsetObject()
        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 Ent As Curve
            Do
                Dim peo As New PromptEntityOptions(vbLf & "Select object:")
                peo.SetRejectMessage(vbLf & "Must be curve.")
                peo.AddAllowedClass(GetType(Curve), True)


                Dim per As PromptEntityResult = ZcEd.GetEntity(peo)
                If per.Status <> PromptStatus.OK Then
                    Return
                End If


                Ent = DirectCast(ZcTran.GetObject(per.ObjectId, OpenMode.ForWrite), Curve)
            Loop While Ent is Nothing




            Dim pro1 As New PromptDoubleOptions(vbLf & "Input offset distance:")
            Dim proR1 As PromptDoubleResult = ZcEd.GetDouble(pro1)
            If proR1.Status <> PromptStatus.OK Then
                Return
            End If
            Dim dist As Double = proR1.Value


            Dim curves As List(Of Curve) = New List(Of Curve)()
            Dim Coffset As DBObjectCollection = Ent.GetOffsetCurves(dist)


            For Each i As Object In Coffset
                curves.Add(DirectCast(i, Curve))
            Next
            Dim ZcBLT As BlockTable = ZcTran.GetObject(ZcDB.BlockTableId, OpenMode.ForRead)
            Dim ZcBLTR As BlockTableRecord = ZcTran.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
            For Each j As Object In curves
                ZcBLTR.AppendEntity(j)
                ZcTran.AddNewlyCreatedDBObject(j, True)
            Next
            
            ZcTran.Commit()
        End Using
    End Sub


End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值