SergeM 发表于 2022-7-6 18:19:53

 
例如,查看尺寸线的特性。
属性中提到的所有颜色都必须按层更改为颜色。你能在VBA中为所有可能的维度做到这一点吗?
 
 
将所有颜色设置为color bylayer后,我想使用adjustxref,它将所有嵌套颜色设置为颜色252。(lisp仅在所有嵌套颜色都设置为“按层颜色”时有效)
 
lisp中提到的颜色252仅用于打印外部参照作为背景。
 
我相信你现在可以进一步帮助我。
 
谢谢Serge

ML0940 发表于 2022-7-6 18:24:28

嗨,谢尔盖,
不客气
是的,我知道如何制作Lisp文件并运行它,我只是不确定是否真的需要这样做,以便帮助你?
 
我提供的另一个代码是否正常工作?
 
 
我懂了。
我想知道为什么执行Lisp例程的人没有解决这个问题?
 
你知道如何运行VBA项目/宏,然后直接运行Lisp例程吗?如果没有,我可以帮你。
我需要VBA项目(.dvb)名称、模块名称和您决定的宏名称。
此外,Lisp例程名称和命令,我认为是adjustxref。
 
 
那么,您是说要在当前图形的“ByLayer”上显示所有尺寸?源图形(外部参照)上还是仅在当前图形中也有尺寸?
 
 
考虑到这一点,我们可以创建一个名为xref(或其他)的层,将所有外部参照实体放置在该层上,并使该层的颜色为252。
如果你这样做了,你可能会完全抛弃Lisp例程;
那么,我们甚至不需要解决整个Bylayer问题。
 
另一种撇毛猫的方法:
我不确定你是否在使用ctb或stb,但你可以创建一个用于灰度打印的笔式文件。
用户在打印时选择该笔样式,然后所有层都指向252处打印。
 
如果你这样做,那么也许根本不需要自动化
 
除非我在这一切中遗漏了一些关键的东西?
 
毫升

ML0940 发表于 2022-7-6 18:27:34

嘿Serge,
试试看。
这将把当前图形中的所有尺寸、图元的颜色放入“Bylayer”。这就是你需要的吗?
 
毫升
 

Sub DimEntsToByLayer()
Dim Ent As AcadEntity
Dim Sset As AcadSelectionSet

On Error Resume Next
ThisDrawing.SelectionSets.Item("dims").Delete

Set Sset = ThisDrawing.SelectionSets.Add("dims")
Sset.Select acSelectionSetAll

For Each Ent In Sset
If TypeOf Ent Is AcadDimension Then
Ent.color = acByLayer
End If
Next Ent

Sset.Delete
End Sub
页: 1 [2]
查看完整版本: 如何设置所有嵌套实体