改变对象的显示顺序--类似绘图次序的前置和后置

来源:互联网 发布:羽毛球比赛直播软件 编辑:程序博客网 时间:2024/04/28 10:08
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.EditorInput




Public Class ZwApp


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


        Dim peo As New PromptEntityOptions(vbLf & "Select object:")
        Dim per As PromptEntityResult = ZcEd.GetEntity(peo)
        If per.Status <> PromptStatus.OK Then
            Return
        End If


        If per.Status = PromptStatus.OK Then
            Using ZcTrans As Transaction = ZcDB.TransactionManager.StartTransaction()
                Dim ZcBLT As BlockTable = ZcTrans.GetObject(ZcDB.BlockTableId, OpenMode.ForRead)
                Dim ZcBLTR As BlockTableRecord = ZcTrans.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)


                Dim Ent As Entity = ZcTrans.GetObject(per.ObjectId, OpenMode.ForWrite)
                Dim objIdCol As ObjectIdCollection = New ObjectIdCollection()
                objIdCol.Add(Ent.ObjectId)


                Dim DraOd As DrawOrderTable = ZcTrans.GetObject(ZcBLTR.DrawOrderTableId, OpenMode.ForWrite)
                DraOd.MoveToTop(objIdCol)
                'DraOd.MoveToBottom(objIdCol)


                ZcTrans.Commit()


            End Using
        End If
    End Sub

End Class

执行MoveToTop命令,可以将重叠在下面的对象显示在上面,即前置。如果要将上面的显示在下面(后置),这可以将代码中的 DraOd.MoveToTop(objIdCol)改为'DraOd.MoveToBottom(objIdCol)即可。