如何使用VBA更改CAD绘图中的颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用VBA更改CAD绘图中的颜色相关的知识,希望对你有一定的参考价值。

我有一个AutoCAD绘图,这是一个电力系统的单线图。我想用VBA来改变颜色。怎么做?抱歉'我的英语水平:)。谢谢!

答案

此示例将图形中的所有行放入红色:

Sub color_all_lines()
Dim c As Long
Dim lineObj As AcadLine

For c = 0 To ThisDrawing.ModelSpace.Count - 1
    If ThisDrawing.ModelSpace.Item(c).ObjectName = "AcDbLine" Then
        Set lineObj = ThisDrawing.ModelSpace.Item(c)
        lineObj.color = acRed
    End If
Next c

End Sub

如果要更改图层(在必须创建名为“layerRED”的新图层之前),则:

Sub change_layer()
Dim c As Long
Dim lineObj As AcadLine

For c = 0 To ThisDrawing.ModelSpace.Count - 1
    If ThisDrawing.ModelSpace.Item(c).ObjectName = "AcDbLine" Then
        Set lineObj = ThisDrawing.ModelSpace.Item(c)
        lineObj.layer = "layerRED"
    End If
Next c

End Sub

如果要将图层更改为所有对象:

Sub color_all()
Dim c As Long
Dim lineObj As AcadLine

For c = 0 To ThisDrawing.ModelSpace.Count - 1
    Set lineObj = ThisDrawing.ModelSpace.Item(c)
Next c

End Sub
另一答案

有很多可用的信息。您可能需要研究AxDbDocument。

以下是直接从this网站获取的信息:

如果您在此论坛中搜索“AxDbDocument”或“DBX”,您可以找到很多关于使用ObjectDBX打开AutoCAD“侧面”绘图主题的讨论(即无需读取AutoCAD AutoCAD流程图)在AutoCAD编辑器中打开)。

关键步骤是创建一个AxDbDocument并将* .dwg文件读入其中。然后,您可以使用与VBA的ThisDrawing对象相同的方式访问图形文件中的数据。

这是一个非常简单的代码片段(我使用Acad2015,因此版本代码(xxxxx.20):

Option Explicit

Public Sub DbxTest()

    Dim dwgFiles(0 To 1) As String
    dwgFiles(0) = "C:TempDbxTest01.dwg"
    dwgFiles(1) = "C:TempDbxTest02.dwg"

    Dim doc As AXDBLib.AxDbDocument

    Dim i As Integer

    For i = 0 To 1

        Set doc = ThisDrawing.Application.GetInterfaceObject("ObjectDBX.AxDbDocument.20")
        doc.Open dwgFiles(i)

        DoWorkWithDwg doc

    Next

End Sub

Private Sub DoWorkWithDwg(dwg As AXDBLib.AxDbDocument)

    ''MsgBox dwg.Name

    Dim count As Integer
    Dim ent As AcadEntity
    For Each ent In dwg.ModelSpace
        ''MsgBox ent.ObjectName
        count = count + 1
    Next

    MsgBox "Drawing: " & dwg.Name & vbCrLf & "Entity Count: " & count

End Sub

以上是关于如何使用VBA更改CAD绘图中的颜色的主要内容,如果未能解决你的问题,请参考以下文章

CAD 建筑图纸中 线的颜色搭配。

如何更改 VBA 代码/宏结果中使用的默认颜色(红色、绿色)

如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]

CAD图纸中的文字颜色要怎么修改

如何使用R中的绘图功能更改散点图中x轴和y轴标签的字体大小和颜色?

如何修改CAD编辑器的背景颜色