vba选择集的问题
Dim blk As AcadBlockReferencePrivate Sub CommandButton1_Click()
'打开一个图幅
If Len(Dir("E:\擦窗机总库\底架总成\180固定方管\513.8.dwg")) <> 0 Then
ThisDrawing.Application.Documents.Open "E:\擦窗机总库\底架总成\180固定方管\513.8.dwg"
'
Else
MsgBox "指定的文件不存在!"
End If
'选择该对应的主视图
Dim filterType1(0 To 2) As Integer
Dim filterData1(0 To 2) As Variant
Dim ssetObj1 As AcadSelectionSet
filterType1(0) = 2
filterData1(0) = "180主视图"
filterType1(1) = 100
filterData1(1) = "AcDbBlockReference"
Set ssetObj1 = CreateSelectionSet("180主视图")
ssetObj1.SelectOnScreen filterType1, filterData1
If ssetObj1.Count = 0 Then
ThisDrawing.Utility.Prompt "用户取消放置状态,退出" & vbCrLf
Exit Sub
End If
For Each elem In ssetObj1 '把指定动态块过滤出来
Dim vv As Long
If blk.IsDynamicBlock Then
' 获得动态块的自定义特性
dyBlkPropCol = blk.GetDynamicBlockProperties
For vv = 0 To UBound(dyBlkPropCol)
Set DBlockProperties = dyBlkPropCol(vv)
With DBlockProperties
If .PropertyName = "底架轨距" Then
.Value = CDbl(GJ)
Exit For
End If
End With
Next vv
blk.Update
End If
Next
End Sub目的是想通过vba打开一个图幅,选择其中一个名叫“180主视图”动态块,对其中的一个自定义参数进行操作。
你的问题是什么 ?测试文件在哪?
是选不上吗?
filterType1(0) = 2
filterData1(0) = "180主视图"
filterType1(1) = 100
filterData1(1) = "AcDbBlockReference"
好像顺序反了,试试
filterType1(0) = 100
filterData1(0) = "AcDbBlockReference"
filterType1(1) = 2
filterData1(1) = "180主视图" zzyong00 发表于 2015-11-18 22:15 static/image/common/back.gif
你的问题是什么 ?测试文件在哪?
是选不上吗?
我的问题是不能选中动态块,并且动态块的参数没有驱动 dage23wo 发表于 2015-11-18 23:12 static/image/common/back.gif
我的问题是不能选中动态块,并且动态块的参数没有驱动
你还在整这个啊 wangshuping42 发表于 2015-11-23 13:06 static/image/common/back.gif
你还在整这个啊
主要是老板要搞这个,没办法 跟你说动态块是没办法用选择集来选中的,好像不支持。
如果要这么做,只能在添加零件的时候给新加入的动态块添加一个标记,以后就用这个标记来选中它。
这个标记可以使扩展数据 wangshuping42 发表于 2015-11-27 14:48 static/image/common/back.gif
跟你说动态块是没办法用选择集来选中的,好像不支持。
如果要这么做,只能在添加零件的时候给新加入的动态 ...
谢谢前辈的指点,我去试下
页:
[1]