百思不解AcDbBlockReference
拟从图形中提取一个AcDbBlockReference,如:BLOCK REFERENCE图层: ttt
空间: 模型空间
颜色: BYLAYER 线型: CONTINUOUS
句柄 = 1c665
块名: "tkaaa"
使用以下代码:
FilterType(0) = 0
FilterData(0) = "Block Reference" '此处不知用什么会有效果。
FilterType(1) = 8
FilterData(1) = "ttt"
mode1 = acSelectionSetAll
Set ssBlockRef = acadDoc.SelectionSets.Add("NewSelectionSet")
ssBlockRef.Select mode1, , , FilterType, FilterData
结果是ssBlockRef.count=0 也就是一个也没有选上。
希大家不吝赐教。
目的主要是快速获取块参照的插入点而已。
有点挠头。
用这个笨方法吧,保证 适用
Dim BLKpnt As Variant
Dim blkRef As AcadBlockReference
Dim objEnt As AcadEntity
For Each objEnt In ThisDrawing.ModelSpace
If TypeOf objEnt Is AcadBlockReference Then
'*********可以加入过滤条件
Set blkRef = objEnt
BTLname = blkRef.Name
BLKpnt = blkRef.InsertionPoint
End If
Next
谢了,这个方法我用过,感觉遍历整个文件速度太慢所以才想好办法的。
已经成功了,呵呵,就是把过滤条件减少,只过滤一个图层的图元,快了一点。
FilterData(0) = "Block Reference" '此处不知用什么会有效果。
改成FilterData(0) ="INSERT"
页:
[1]