PeterPan9720 发表于 2022-7-6 11:01:31

选择集2个不同的块

嗨,伙计,谢谢你给我的合作,直到现在,请有人知道,如果有可能作出一个选择集的两个不同的块在绘图中的VBA。
我写了这段代码,当然它是有效的,因为我创建了两个不同的选择集,但如果我想只有一个选择两个不同的块?有办法吗?


GV(0) = "INSERT"
'---------------------------------------------------
'Revise the block name "tendnum1" for your application
   GV(1) = "X1-O-180"
intCode(0) = 0
intCode(1) = 2

'---------------------------------------------------
ThisDrawing.SelectionSets.Add ("BOM")
Set Ssnew = ThisDrawing.SelectionSets("BOM")
Ssnew.Select acSelectionSetAll, , , intCode, GV

GV(1) = "F44500-HD-D-48504Rev0a"

ThisDrawing.SelectionSets.Add ("MySS")
Set Ssnew1 = ThisDrawing.SelectionSets("MySS")
Ssnew1.Select acSelectionSetAll, , , intCode, GV


For Each Entity In Ssnew
   Array1 = Entity.GetAttributes
   Set BlocK = Entity
       X = BlocK.InsertionPoint(0)
       Y = BlocK.InsertionPoint(1)
       Z = BlocK.InsertionPoint(2)
       HAN = BlocK.Handle
....
Next

For Each Entity In Ssnew1
   Array2 = Entity.GetAttributes
   Set BlocK = Entity
       X1 = BlocK.InsertionPoint(0)
       Y1 = BlocK.InsertionPoint(1)
       Z1 = BlocK.InsertionPoint(2)
       HAN1 = BlocK.Handle
....
Next
 
非常感谢。

fixo 发表于 2022-7-6 11:23:32

 
将块名称的过滤器用作字符串,用逗号分隔:
 
GV(0) = "INSERT"
GV(1) = "X1-O-180,F44500-HD-D-48504Rev0a"

您还可以根据需要添加其他块名
 
也用逗号分隔
 
~'J'~

PeterPan9720 发表于 2022-7-6 12:01:01

 
谢谢,很好。
你知道选择的标准吗?X坐标?由Y?还是按插入顺序?因为当提取属性数据时,我会发现一些块1和一些块2。
 
当然,我稍后会在代码中进行管理,但只是为了了解标准。

PeterPan9720 发表于 2022-7-6 12:19:59

大家好,
有人能帮我解决一个小问题吗?
 
如果使用过滤器选项选择所有块,例如通过selectionset函数选择“BLOCK1”和“BLOCK2”,我会为每个块获得一个唯一的值,即句柄。
 
对于任何图形修改,如果我再次进行相同的选择集,我应该得到相同的句柄值吗?对吗?。
 
主要范围是在xls文件中传输一些块属性,对其进行操作,并再次存储在相同的块中。
 
但使用块句柄选项似乎效果不佳。
 
我将尝试删除旧块,并将其与excel中的新属性一起插入。
 
有人能给我推荐最好的方法吗?
 
非常感谢。
页: [1]
查看完整版本: 选择集2个不同的块