将一个块添加到另一个块中

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


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


        Using ZcTrans As Transaction = ZcDB.TransactionManager.StartTransaction()
            Dim ZcBT As BlockTable = ZcTrans.GetObject(ZcDB.BlockTableId, OpenMode.ForWrite)
            If ZcBT.Has("testA") And ZcBT.Has("testB") Then
                Dim ZcBLTRa As BlockTableRecord = ZcTrans.GetObject(ZcBT("testA"), OpenMode.ForWrite)
                Dim brf As BlockReference = New BlockReference(ZcBLTRa.Origin, ZcBLTRa.ObjectId)


                Dim ZcBTR As BlockTableRecord = DirectCast(ZcTrans.GetObject(ZcBT(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
                ZcBTR.AppendEntity(brf)
                ZcTrans.AddNewlyCreatedDBObject(brf, True)


                Dim ent As Entity = DirectCast(brf, Entity).Clone()
                Dim ZcBLTRb As BlockTableRecord = ZcTrans.GetObject(ZcBT("testB"), OpenMode.ForWrite)
                ZcBLTRb.AppendEntity(ent)
                ZcTrans.AddNewlyCreatedDBObject(ent, True)


                Dim newBrf As BlockReference = New BlockReference(ZcBLTRb.Origin, ZcBLTRb.ObjectId)
                ZcBTR.AppendEntity(newBrf)
                ZcTrans.AddNewlyCreatedDBObject(newBrf, True)


                brf.Erase()


            Else
                ZcEd.WriteMessage(vbLf & "A block with this name doesn't exist.")
            End If
            ZcTrans.Commit()
        End Using
    End Sub
End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值