ZKSJLL 发表于 2004-7-1 12:18:00

选择集问题

斑竹有没有好方法:


                                                       当前图形中有许多相同的图块,用啥子方法可以把一个特定名称的所有图快添加到选择集?


用遍历模型空间的方法实在太慢了?高手帮帮忙,最好给个例子,万分感激!!!

雪山飞狐_lzh 发表于 2004-7-1 12:24:00

Sub hj()<BR>On Error Resume Next<BR>Dim ss As AcadSelectionSet<BR>Dim ft(1) As Integer, fd(1)<BR>ThisDrawing.SelectionSets("*TlsTest*").Delete<BR>Set ss = ThisDrawing.SelectionSets.Add("*TlsTest*")<BR>ft(0) = 0: fd(0) = "Insert"<BR>ft(1) = 2: fd(1) = "MyBlockName"<BR>ss.Select acSelectionSetAll, , , ft, fd<BR>MsgBox ss.Count<BR>ThisDrawing.SelectionSets("*TlsTest*").Delete


End Sub<BR>

ZKSJLL 发表于 2004-7-1 12:51:00

多谢斑竹,我用的是VB6.0


Dim ss As Object<BR>Set ss = acadDoc.ActiveSelectionSet<BR>Dim ft(1) As Integer, fd(1)<BR>acadDoc.SelectionSets("*TlsTest*").Delete<BR>Set ss = acadDoc.SelectionSets.Add("*TlsTest*")<BR>ft(0) = 0: fd(0) = "Insert"<BR>ft(1) = 2: fd(1) = "CB30"<BR>ss.Select acSelectionSetAll, , , ft, fd<BR>MsgBox ss.Count<BR>acadDoc.SelectionSets("*TlsTest*").Delete


斑竹能否解释一下,ss.Select acSelectionSetAll, , , ft, fd中的ft和fd,CAD的帮助文件内没有详细的描述!<BR>

ZKSJLL 发表于 2004-7-1 13:06:00

十分感谢斑竹,可不可以把选择集内的块引用根据插入点的坐标由左到右,右上到下的顺序排列就完美了,好像要费一番手脚.......

雪山飞狐_lzh 发表于 2004-7-1 13:08:00

过滤器的原理就是根据提供的DXF码的条件,找到符合条件的实体,关键是DXF组码

ZKSJLL 发表于 2004-7-1 13:19:00

可不可以对DXF组码说两句??哪个地方有详细资料,打扰了!!

ZKSJLL 发表于 2004-7-1 13:26:00

ft(0) = 0: fd(0) = "Insert"       0表示图元类型的文字字符串(固定)


<BR>ft(1) = 2: fd(1) = "CB30"       2表示名称(属性标记、块名称等)


<A href="http://www.mjtd.com/develop/dxf/dxf0006.htm" target="_blank" >http://www.mjtd.com/develop/dxf/dxf0006.htm</A><BR>

petty 发表于 2004-7-1 18:26:00

飞狐大哥,我用的块是属性块,好象找不到其中的某一属性的群码?用什么办法能找到,比如找到属性群码后,我要求将上一选择集基础上过滤,比如我的属性块的其中某一属性名称为xh,要求将所有插入的图块名为my,xh值大于5的选择集如何进行?

klgui 发表于 2007-12-24 20:32:00

<strong>大家用过中望CAD就会发现,中望的选择集非常方便,它除了具有AutoCAD的快速选择外,还有:输入GETSEL命令后鼠标点一个想选的图元,再点一次,然后整个图形里同这一类图元全部被选中,这样方便多了,而AutoCAD却没有这样方便的功能,它的快速选择要点很多次,非常麻烦,请高手们研究一下,怎样做才更方便。</strong>
页: [1]
查看完整版本: 选择集问题