VBA-选择集
如何在vba中创建设备选择集?提前感谢
卡尔 设备选择集?
卡尔,你说的设备是什么意思?
毫升 也许他想要这样
Sub sss()
Dim SS As AcadSelectionSet
Set SS = ThisDrawing.SelectionSets.Add("SS")
SS.SelectOnScreen
Dim Ent As AcadEntity
Dim EntName As String
For Each Ent In SS
EntName = Ent.ObjectName
EntName = Mid(EntName, 5, 10)
MsgBox "This object selected is = " & EntName
Next Ent
SS.Delete ' to delete selection set exist
End Sub
我有一段代码,它创建了一个名为SYSNODE的块选择集
我想修改它以选择设备而不是块,但我不知道怎么做。
除了智能块之外,不确定如何定义它们。例如,我们使用的设备之一是插座。它存储设备的所有电气信息(面板、电路、电压、电流、导线尺寸等),然后我们使用标签显示某些信息。我认为设备仅在acad的MEP/ABS版本中可用。 哦,那就可以解释了
因此,它们不是块引用;否则,另一个代码将起作用。
在VBAIDE(VBA环境)中,如果转到“工具参考”(Tools References),
向下滚动,您可能会看到特定于该应用程序的类型库。
当我使用LDD时,有一个特定于这些对象的类型库。
因此,如果您看到MEP的类型库,然后选中该框,那么您应该能够访问这些对象进行编程。
当您发现这个对象(设备)在VBA中被调用时,您将能够在代码中包含它。如果还有问题,我们可以帮你更多。
毫升 好的,我能够找到一个设备的解决方案,但是有人知道如何创建动态块的选择集吗? 我手头没有代码,但基本上是为块创建一个过滤器 基本上,您将获得一组blockref并根据其属性查询它们。IsDynamicBlock
这就是我遇到的问题,我不知道如何设置过滤器。 Set objSelSet = objSelCol.Add("SSName")
intType(0) = 0: varData(0) = "INSERT"
intType(1) = 2: varData(1) = "BlkName"
objSelSet.Select Mode:=acSelectionSetAll, filtertype:=intType, filterdata:=varData
页:
[1]
2