嘿,伙计们,
到目前为止,我真的很感谢你们的帮助。
上面的代码工作得很好,但要么我没有完全按照我需要的方式使用它,要么可能是你们中的一个会有另一个建议。
下面是我正在开发的模块的一个例子
,我正在插入一个块,它是Intercomm符号的图例。
我的菜单宏允许您选择要将块插入到绘图中的比例(在7个左右)。
菜单宏暂停插入,在用户插入块后,Vba模块被触发。
下面的代码(对于每个循环)
对于用户可以选择的每个比例重复,粘贴到
第一个插入的块上太多了,一切都很好。
所以,如果你看下面的对于每个循环,我是说如果块互连的xscale因子为48,那么将层Co-I-SYMB重命名为Co-I-SYMB-48
现在,如果我以不同的比例插入第二个Intercomm(例如96)
它似乎正在经历模块中所有可能的比例因子, 再次看到48,然后我得到重复的记录错误,并且该层保留在Co-I-SYMB
中,我需要以某种方式看到它有一个48,忽略它然后继续到96并创建Co-I-SYMB-96层,依此类推。
因此,我试图按图层名称进行过滤。
如果那一层存在,那就继续前进,但我仍然没有运气
,我希望这有意义吗?
任何帮助将不胜感激
感谢
Mark
-
- Dim Co_Layers As AcadLayers
- Dim Intercomm As AcadBlockReference
- Dim BlockXScaleFactor As Double
- Set Co_Layers = ThisDrawing.Layers
- Set Intercomm = ThisDrawing.ModelSpace.Item(Intercomm1)
- BlockXScaleFactor = Intercomm.XScaleFactor
- If Intercomm.XScaleFactor = 48 Then
- For Each Layer In Co_Layers
- If Layer.Name = ("Co-I-SYMB") Then
- Layer.Name = ("Co-I-SYMB-48")
- End If
- Next
- End If
- Exit Sub
|