乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 157|回复: 8

请帮忙吧,如何得到过滤选择集中的对象的属性呀!

[复制链接]

4

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-9-28 18:54:00 | 显示全部楼层 |阅读模式
如题。我做了一个直线的过滤的选择集,我需要了解直线的开始点以及终端点的坐标。我该如和做了。我首先定义了一个
   Dim sset As AcadSelectionSet
   dim Lline as acadline
  set lline=sset.item(i)
可是就是不行呀我该如何?!
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2002-9-28 20:29:00 | 显示全部楼层
Sub GetLinePnt()
    Dim ss As AcadSelectionSet
    Set ss = CreateSelectionSet()
    Dim fType As Variant
    Dim fData As Variant
    BuildFilter fType, fData, 0, "Line"
    ss.SelectOnScreen fType, fData
    Dim Lline As AcadLine
    Dim I As Integer
   
    Dim StarPnt As Variant
    Dim EndPnt As Variant
    Dim DispInfo As String
    For I = 0 To ss.Count - 1
        Set Lline = ss.Item(I)
        StarPnt = Lline.StartPoint
        EndPnt = Lline.EndPoint
        DispInfo = DispInfo & "第" & I + 1 & "根线的起点坐标:" & PTos(StarPnt) & " 终点坐标:" & PTos(EndPnt) & vbCrLf
    Next
        MsgBox DispInfo, , "乐筑天下制作例程 http://www.mjtd.com "
  End Sub
Public Sub BuildFilter(typeArray, dataArray, ParamArray gCodes())
    Dim fType() As Integer, fData()
    Dim index As Long, I As Long
   
    index = LBound(gCodes) - 1
        
    For I = LBound(gCodes) To UBound(gCodes) Step 2
        index = index + 1
        ReDim Preserve fType(0 To index)
        ReDim Preserve fData(0 To index)
        fType(index) = CInt(gCodes(I))
        fData(index) = gCodes(I + 1)
    Next
    typeArray = fType: dataArray = fData
End Sub
Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet    Dim ss As AcadSelectionSet
   
    On Error Resume Next
    Set ss = ThisDrawing.SelectionSets(ssName)
    If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
    ss.Clear
    Set CreateSelectionSet = ss
End Function
Private Function PTos(P As Variant) As String
    Dim S As String
    Dim pp(2) As Double
    pp(0) = P(0)
    pp(1) = P(1)
    S = RTOS(pp(0)) & ", " & RTOS(pp(1))
    If UBound(P) > 1 Then
       pp(2) = P(2)
        S = S & ", " & RTOS(pp(2))
    End If
    PTos = S
End Function
Private Function RTOS(Real As Double) As String
  RTOS = ThisDrawing.Utility.RealToString(Real, acDefaultUnits, LuPrec)
End Function
回复

使用道具 举报

4

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-9-30 10:08:00 | 显示全部楼层
真太感谢老大了。呵呵
回复

使用道具 举报

4

主题

20

帖子

5

银币

初来乍到

Rank: 1

铜币
36
发表于 2003-3-22 16:27:00 | 显示全部楼层
版主,能帮忙将以上代码转到vb中吗?
回复

使用道具 举报

1

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
8
发表于 2015-10-12 15:20:00 | 显示全部楼层

我也试试,谢谢您
回复

使用道具 举报

0

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
3
发表于 2015-11-4 12:11:00 | 显示全部楼层
求vb代码,谢谢大神啊啊·····················
回复

使用道具 举报

0

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
3
发表于 2015-11-4 12:11:00 | 显示全部楼层
求vb代码,谢谢大神啊啊·····················
回复

使用道具 举报

0

主题

15

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2018-5-6 21:57:00 | 显示全部楼层
如何过滤AcadBlockReference块中的属性(如用Block 命令手工定义的块的属性)
回复

使用道具 举报

0

主题

15

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2018-5-6 22:03:00 | 显示全部楼层

(entget(car(entsel)))
选择对象: ((-1 . ) (0 . "INSERT") (330 . ) (5 . "160")
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbBlockReference") (66 . 1) (2 . "属性块1") (10 167.816 113.892 0.0) (41 . 1.0)
(42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210
0.0 0.0 1.0))
可是我想要通过"属性块"内的“厚度”值过滤参数该怎么办?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-19 09:17 , Processed in 1.703402 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表