明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1727|回复: 2

怪事情,哪位知道,选择集?

[复制链接]
发表于 2006-5-7 15:42:00 | 显示全部楼层 |阅读模式
用下面程序,进行选择,不知道为什么,这个图形里的这几条线,居然选不中,很是不解,哪位高手帮我看看,谢谢!
注意:选择裁切线要选外围的l3DPolyline白色多边形
  1. Sub Test_cut()
  2. Dim ss As AcadSelectionSet
  3. Dim obj As AcadEntity
  4. Dim pArray() As Double
  5. 'Dim pArray As Variant
  6. Dim basePnt As Variant
  7. Dim i As Integer
  8. 'Dim groupCode As Variant, dataCode As Variant
  9. Dim Coord As Variant
  10. On Error Resume Next
  11. 'ThisDrawing.Utility.Prompt vbCr & "选择要裁切范围线:"
  12. ThisDrawing.Utility.GetEntity obj, basePnt, "选择要裁切范围线:"
  13. If Err Then
  14.    Exit Sub
  15. Else
  16.          Do While ThisDrawing.SelectionSets.count > 0
  17.             ThisDrawing.SelectionSets.Item(0).Delete
  18.          Loop
  19.          Set ss = ThisDrawing.SelectionSets.Add("tt")
  20.         Coord = obj.Coordinates '获取顶点坐标数组
  21.         ReDim pArray(0 To UBound(Coord)) As Double
  22.         For i = 0 To UBound(Coord)
  23.             pArray(i) = Coord(i)
  24.         Next i
  25.         Call ss.SelectByPolygon(acSelectionSetFence, pArray)
  26.         If ss.count > 0 Then
  27.         Dim removeObjects(0 To 0) As AcadEntity
  28.           Set removeObjects(0) = obj
  29.            ss.RemoveItems removeObjects
  30.            For i = 0 To ss.count - 1
  31.              ss.Item(i).Highlight True
  32.            Next
  33.         End If
  34. End If
  35. End Sub
 楼主| 发表于 2006-5-7 18:36:00 | 显示全部楼层
图形传不上去,没办法
发表于 2006-5-8 08:57:00 | 显示全部楼层

楼上的,你的程序有问题,通过坐标选择的时候应该输入三维坐标变量,由Pline的Coordinates 属性得到是二维坐标,你改成这样就行了

。。。。。。

 Set ss = ThisDrawing.SelectionSets.Add("tt")
         Coord = obj.Coordinates '获取顶点坐标数组
         ReDim pArray(0 To UBound(Coord) + (UBound(Coord) + 1) / 2) As Double
         Dim j As Integer
         For i = 0 To UBound(Coord)
             pArray(i) = Coord(i)
         Next i
         For i = 1 To (UBound(Coord) + 1) / 2
            For j = UBound(pArray) To i * 3 - 1 Step -1
                pArray(j) = pArray(j - 1)
            Next
            pArray(i * 3 - 1) = obj.Elevation
         Next
         Call ss.SelectByPolygon(acSelectionSetFence, pArray)

。。。。。。

这样做就是人为的增加一个Z轴坐标值。。。。。。^_^

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 04:16 , Processed in 0.191295 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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