乐筑天下

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

如何在获取选择集中多个块的插入点?

[复制链接]

1

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2005-3-5 14:49:00 | 显示全部楼层 |阅读模式
Sub PrintModelSpace()       
                         On Error Resume Next
                         Dim insert_x As Double, insert_y As Double, xscl As Single
                         Dim FilterType(0) As Integer
                         Dim FilterData(0) As Variant
                         Dim ii As Integer
                         Dim attributeobj As AcadAttribute
                         Dim obj As AcadBlockReference
                         Dim var As Variant
                         FilterType(0) = 2
                         FilterData(0) = "tk"
                         Dim sel As AcadSelectionSet                         '选择集
                         Set sel = ThisDrawing.SelectionSets.Add("ssel")
                         If Err Then
                                         Err.Clear
                                         ThisDrawing.SelectionSets("ssel").Delete
                                         Set sel = ThisDrawing.SelectionSets.Add("ssel")
                         End If
                         sel.Select acSelectionSetAll, , , FilterType, FilterData
                         For ii = 1 To sel.Count
                                                         Set obj = sel.Item(ii)
                                                         insert_x = obj.InsertionPoint(0)
                                                         insert_y = obj.InsertionPoint(1)
                                                         xscl = obj.XScaleFactor
                         Next ii
End Sub
以上程序是想在图中选择块名为tk的块,然后分别获得每个块的插入点和X比例,但是只能得到第一个块名为tk的插入点和X比例,为什么?有没有人能帮帮我??
回复

使用道具 举报

55

主题

282

帖子

5

银币

中流砥柱

Rank: 25

铜币
502
发表于 2005-3-5 17:03:00 | 显示全部楼层
你应该先用选择集选择图形上所有的图块,然后再判断块名是不是“tk”。
回复

使用道具 举报

1

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
12
发表于 2005-3-5 18:08:00 | 显示全部楼层
能不能给些代码?还有,有很可能图块很多,这样一来会使会速度很慢,而且效率也不是很高.
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2005-3-5 18:17:00 | 显示全部楼层
Sub tt3()
On Error Resume Next
Dim ss As AcadSelectionSet
Dim ft(1) As Integer, fd(1)
Dim obj As AcadBlockReference
ft(0) = 0: fd(0) = "Insert"
ft(1) = 2: fd(1) = "tk"
ThisDrawing.SelectionSets("Test").Delete
Set ss = ThisDrawing.SelectionSets.Add("Test")
ss.Select acSelectionSetAll, , , ft, fd
For Each obj In ss
                                                         insert_x = obj.InsertionPoint(0)
                                                         insert_y = obj.InsertionPoint(1)
                                                         xscl = obj.XScaleFactor
Next obj
End Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-16 19:43 , Processed in 2.316449 second(s), 60 queries .

© 2020-2025 乐筑天下

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