明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2679|回复: 6

用菜单中的插入块命令插入的块,如何读块的属性、插入点及比例?

[复制链接]
发表于 2003-9-14 20:17:00 | 显示全部楼层 |阅读模式
假设有一个块名为ABC的块,用菜单中的插入块命令插入到图形中,用VBA如何按块名找到这个块,然后读取块的属性、插入点及比例?
发表于 2003-9-14 20:55:00 | 显示全部楼层
刚插入的块应该是最后一个实体,可以使用Set BlockRefObj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.count-1)来返回,之后就是对块引用进行操作了。使用GetAttributes返回所有的块属性集合,而InsertionPoint是返回插入点,XScaleFactor 、YScaleFactor 、ZScaleFactor分别返回三个方向的比例因子了。
 楼主| 发表于 2003-9-14 21:34:00 | 显示全部楼层
如果不是刚刚插入的块怎么办,能不能根据块名来查找?
发表于 2003-9-14 21:36:00 | 显示全部楼层
可以啊,可以通过过滤器来查找得到块。
 楼主| 发表于 2003-9-15 12:05:00 | 显示全部楼层
能讲清楚一些吗?我实在是搞不懂了!!
发表于 2003-9-15 20:19:00 | 显示全部楼层
  1. Sub SelectBlock()
  2.     Dim ss As AcadSelectionSet
  3.     On Error Resume Next
  4.     Set ss = ThisDrawing.SelectionSets.Add("mccad")
  5.     If Err Then
  6.         Set ss = ThisDrawing.SelectionSets("mccad")
  7.         ss.Clear
  8.     End If
  9.     Dim fType(1) As Integer
  10.     Dim fData(1) As Variant
  11.     fType(0) = 0
  12.     fData(0) = "INSERT"    '此处为块引用的图元类型
  13.     fType(1) = 2
  14.     fData(1) = "mccad"     '此处为块引用的名称
  15.     ss.Select acSelectionSetAll, , , fType, fData
  16.     ss.Highlight (True)
  17.     MsgBox "亮显的对象为满足条件的图块对象," _
  18.            & vbCrLf & vbCrLf & "总数: " & ss.Count, , _
  19.            "明经通道VBA示例"
  20.     ss.Highlight (False)
  21. End Sub
 楼主| 发表于 2003-9-16 21:25:00 | 显示全部楼层
谢谢版主,万分感谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 14:29 , Processed in 0.159741 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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