https://adndevblog.typepad.com/autocad/2019/03/condition ... r-entities-on-multiple-layers.html
https://through-the-interface.typepad.com/thro ... 2008/07/conditional-sel.html
程序代码: |
Public Shared Sub FC()
' Get the current document editor
Dim acDocEd As Editor = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Editor
' Create a TypedValue array to define the filter criteria
'All objects meeting any of the Four criteria will get selected
'Criteria 1
'Criteria 2
Dim acTypValAr As TypedValue() = {New TypedValue(CType(DxfCode.[Operator], Integer), "<or"), New TypedValue(CType(DxfCode.[Operator], Integer), "<and"), New TypedValue(CType(DxfCode.Start, Integer), "TEXT"), New TypedValue(CType(DxfCode.LayerName, Integer), "Centro"), New TypedValue(CType(DxfCode.[Operator], Integer), "and>"), New TypedValue(CType(DxfCode.[Operator], Integer), "<and"), _
TypedValue(CType(DxfCode.Start, Integer), "LWPOLYLINE"), New TypedValue(CType(DxfCode.[Operator], Integer), "<or"), New TypedValue(CType(DxfCode.LayerName, Integer), "Secao_Projeto"), New TypedValue(CType(DxfCode.LayerName, Integer), "Pontos_AcimaTolerancia"), New TypedValue(CType(DxfCode.LayerName, Integer), "Pontos_AbaixoTolerancia"), New TypedValue(CType(DxfCode.LayerName, Integer), "Pontos_ForaTolerancia"), _
TypedValue(CType(DxfCode.LayerName, Integer), "Pontos_NaTolerancia"), New TypedValue(CType(DxfCode.[Operator], Integer), "or>"), New TypedValue(CType(DxfCode.[Operator], Integer), "and>"), New TypedValue(CType(DxfCode.[Operator], Integer), "or>")}
' Assign the filter criteria to a SelectionFilter object
Dim acSelFtr As New SelectionFilter(acTypValAr)
' Request for objects to be selected in the drawing area
Dim acSSPrompt As PromptSelectionResult
acSSPrompt = acDocEd.GetSelection(acSelFtr)
' If the prompt status is OK, objects were selected
If acSSPrompt.Status = PromptStatus.OK Then
Dim acSSet As SelectionSet = acSSPrompt.Value
Autodesk.AutoCAD.ApplicationServices.Core.Application.ShowAlertDialog("Number of objects selected: " + acSSet.Count.ToString())
Else
Autodesk.AutoCAD.ApplicationServices.Core.Application.ShowAlertDialog("Number of objects selected: 0")
End If
End Sub
<or
<and
Layer == "0"
Entity type == "LINE"
and>
<and
Entity type == "CIRCLE"
Radius >= 10.0
and>
or>
[本日志由 tiancao1001 于 2019-05-26 05:13 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |