当前版块:问答社区 > CASS

【AutoCAD二次开发】第七节 选择实体

Windows10
其他
CASS9
'第七节选择实体
Sub CreateSset() '创建选择集
  Dim sSet As AcadSelectionSet
  Set sSet = ThisDrawing.Application.ActiveDocument.SelectionSets.Add("选择集")
End Sub
Sub CreateSset2() '创建选择集,批处理
  Dim sSet As AcadSelectionSet
  For Each sSet In ThisDrawing.Application.ActiveDocument.SelectionSets
      If sSet.Name = "选择集" Then sSet.Delete
  Next
  Set sSet = ThisDrawing.Application.ActiveDocument.SelectionSets.Add("选择集")
  '执行操作代码...
  sSet.Delete
End Sub
Public Function AddEntToSset(objEnt As AcadEntity, sSet As AcadSelectionSet) '添加实体到选择集
  Dim objCollection(0) As AcadEntity
  Set objCollection(0) = ent
  sSet.AddItems objCollection
End Function
Sub GetEntity() '创建实体时选择实体
  Dim objCircle As AcadCircle
  Dim xyz(2) As Double
  xyz(0) = 0: xyz(1) = 0: xyz(2) = 0
  Set objCircle = ThisDrawing.Application.ActiveDocument.ModelSpace.AddCircle(xyz, 5)
End Sub
Sub GetEntity2() '通过创建先后顺序选择实体
  Dim objEnt As AcadEntity
  Set objEnt = ThisDrawing.Application.ActiveDocument.ModelSpace.Item(5)
End Sub
Sub GetEntity3() '通过句柄选择实体
  Dim objEnt As AcadEntity
  Set objEnt = ThisDrawing.Application.ActiveDocument.HandleToObject("3BA")
End Sub
Sub SelectOnScreenExample() '选择屏幕实体
  Dim sSet As AcadSelectionSet
  Dim objEnt As AcadObject
  For Each sSet In ThisDrawing.Application.ActiveDocument.SelectionSets
      If sSet.Name = "选择集" Then sSet.Delete
  Next
  Set sSet = ThisDrawing.Application.ActiveDocument.SelectionSets.Add("选择集")
  sSet.SelectOnScreen
  If sSet.Count > 0 Then
     For Each objEnt In sSet
         objEnt.color = acRed
     Next
  End If
  sSet.Delete
End Sub

全部评论

等级:LV30
积分:89907
岩柯 2020-01-01 07:02
学习了!
回复 0
1
提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消