明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4073|回复: 2

[分享][原创]使用AutoCAD的SelectByPolygon方法创建选择集

[复制链接]
发表于 2008-7-17 00:13:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-5-22 16:37:51 编辑
  1. Function TestSelectByPoly() As AcadSelectionSet
  2.     ' 安全创建选择集
  3.     On Error Resume Next
  4.     Dim SSet As AcadSelectionSet
  5.     If Not IsNull(ThisDrawing.SelectionSets.Item("Example")) Then
  6.         Set SSet = ThisDrawing.SelectionSets.Item("Example")
  7.         SSet.Delete
  8.     End If
  9.     Set SSet = ThisDrawing.SelectionSets.Add("Example")
  10.      
  11.     ' 测试多段线作为选择边界
  12.     Dim objSelect As AcadLWPolyline
  13.     Dim ptPick As Variant
  14.     ThisDrawing.Utility.GetEntity objSelect, ptPick, vbLf & "请选择作为边界的多段线:"
  15.     If (objSelect Is Nothing) Then Exit Function
  16.     If objSelect.ObjectName = "AcDbPolyline" Then
  17.         If objSelect.Closed = False Then
  18.             MsgBox "作为边界的多段线不闭合!"
  19.             Exit Function
  20.         Else
  21.             Dim PointArrs() As Double
  22.             ReDim PointArrs((UBound(objSelect.Coordinates) + 1) * 3 / 2 - 1) As Double
  23.             Dim i As Integer
  24.             For i = 0 To ((UBound(objSelect.Coordinates) + 1) / 2 - 1)
  25.                 PointArrs(3 * i) = objSelect.Coordinates(2 * i)
  26.                 PointArrs(3 * i + 1) = objSelect.Coordinates(2 * i + 1)
  27.                 PointArrs(3 * i + 2) = 0
  28.             Next i
  29.             
  30.             SSet.SelectByPolygon acSelectionSetWindowPolygon, PointArrs '建立线内的选择集
  31.         End If
  32.     Else
  33.         MsgBox "你选择的不是多段线!", vbInformation + vbOKOnly
  34.         Exit Function
  35.     End If
  36.      
  37.     Set TestSelectByPoly = SSet
  38. End Function

评分

参与人数 1明经币 +2 收起 理由
mccad + 2 【好评】好程序

查看全部评分

发表于 2011-6-15 14:21:31 | 显示全部楼层
应该用代码配合说明,否则光贴代码,大家不知道你在干吗.
发表于 2011-6-16 19:07:59 | 显示全部楼层
楼主编这个很好用,简洁、严谨,支持一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:34 , Processed in 0.158925 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表