topirol 发表于 2003-11-18 18:35:00

在CAD界面里如何操作选择集里面的实体?

本帖最后由 作者 于 2003-11-20 0:22:41 编辑

比如用下面代码把 跟选择实体所在层的所有实体加入了选择集 “topirolss”中,
我现在想在cad命令行用move,来移动在选择集 “topirolss”中所有实体。如何实现?(其实我就是想在CAD界面里面快速选择需要的实体,然后再做相应的操作,而不必要用光标一个一个选择)

Sub select_from_objectlayer()
Dim tsel As AcadSelectionSet
Dim entry As AcadEntity
Dim tpic As Variant
Dim layerstr As String


On Error Resume Next

Set tsel = ThisDrawing.SelectionSets("topirolss")
If Err Then
Err.Clear
Set tsel = ThisDrawing.SelectionSets.Add("topirolss")
End If
tsel.Clear
ThisDrawing.Utility.GetEntity entry, tpic, "选择跟该实体所在层的所有实体:"

If Err Then
Err.Clear
Exit Sub
End If

layerstr = entry.Layer



    Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant
   FilterType(0) = 8
    FilterData(0) = layerstr
   
    tsel.Select acSelectionSetAll, , , FilterType, FilterData
         
   
End Sub

efan2000 发表于 2003-11-18 18:56:00

VBA没有对选择集进行移动、旋转等的操作,只能遍历选择集,一个一个的操作。

topirol 发表于 2003-11-19 11:09:00

可能是我表达的不清楚,不是在VBA里对选择集进行移动、旋转等的操作,而是想把
选择集里的物体变成我用鼠标选中的状态

efan2000 发表于 2003-11-19 11:51:00

选中的状态,使用对象的Highlight方法,设为True时该对象亮显。它跟系统变量HIGHLIGHT的设置有关。

HIGHLIGHT
类型:整数型
不保存
初始值:1
控制对象的突出显示。它并不影响使用夹点选定的对象。

topirol 发表于 2003-11-19 12:07:00

Highlight只是显亮而已,并不是选中状态吧,因为我不能用cad命令操作显亮的对象,比如我用move时,命令行还是提示我选择对象。我希望的效果是用move时候,就可以直接操作我选择集里面的对象(相当于我已经用夹点选定选择集里面的对象一样,然后再用move命令)

mccad 发表于 2003-11-19 13:10:00

你用MOVE命令后,在选择对象时用“P”参数就可以了。

topirol 发表于 2003-11-19 13:17:00

哈哈,真的可以,我开始用L不行,原来要用P。非常谢谢

gjliang 发表于 2003-11-19 17:20:00

很好啊,这两天我一直在考虑这个问题,原来可以这样解决啊:)

力争中 发表于 2019-7-3 19:56:49

楼主解决了吗?
我也想知道这怎么做到。谢谢
页: [1]
查看完整版本: 在CAD界面里如何操作选择集里面的实体?