通过过滤器选择对象

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




Public Class Class1
    <CommandMethod("AutoMerge")> _
    Public Sub AutoMerge()


        Dim ZcDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZcDB As Database = ZcDoc.Database
        Dim ZcEd As Editor = ZcDoc.Editor


        Dim tvs As TypedValue() = New TypedValue(0) {New TypedValue(CInt(DxfCode.Start), "ACAD_TABLE")}
        Dim sf As New SelectionFilter(tvs)
        Dim psr As PromptSelectionResult = ZcEd.SelectAll(sf)


        If psr.Status = PromptStatus.OK AndAlso psr.Value.Count > 0 Then
            Using ZcTrans As Transaction = ZcDB.TransactionManager.StartTransaction()
               
                For Each obj As SelectedObject In psr.Value
                    Dim dbObj As DBObject = ZcTrans.GetObject(obj.ObjectId, OpenMode.ForWrite)
                    Dim tbl As Table = TryCast(dbObj, Table)
                    Dim columns As Int16 = tbl.NumColumns
                    tbl.MergeCells(New TableRegion(0, 0, 0, columns - 1))
                Next


                ZcTrans.Commit()
            End Using
        End If
    End Sub


End Class


‘多个过滤条件

 'Dim tvs As TypedValue() = New TypedValue() {New TypedValue(CInt(DxfCode.[Operator]), "<or"), New TypedValue(CInt(DxfCode.[Operator]), "<and"), New TypedValue(CInt(DxfCode.LayerName), "0"), New TypedValue(CInt(DxfCode.Start), "LINE"), New TypedValue(CInt(DxfCode.[Operator]), "and>"), New TypedValue(CInt(DxfCode.[Operator]), "<and"), _
        ' New TypedValue(CInt(DxfCode.Start), "CIRCLE"), New TypedValue(CInt(DxfCode.[Operator]), ">="), New TypedValue(CInt(DxfCode.Real), 10.0), New TypedValue(CInt(DxfCode.[Operator]), "and>"), New TypedValue(CInt(DxfCode.[Operator]), "or>")}


        'Dim sf As New SelectionFilter(tvs)
        'Dim psr As PromptSelectionResult = ed.SelectAll(sf)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值