как с помощью VBA подсчитать сумму цифр размерных линий AutoCad

Рейтинг: 0Ответов: 1Опубликовано: 11.04.2023

Как с помощью VBA подсчитать сумму цифр размерных линий AutoCad выделив их в чертеже?

Ответы

▲ 1Принят

Вот пример кода на VBA:

Sub SumDimensions()

    ' Объявление переменных
    Dim acadApp As Object
    Dim acadDoc As Object
    Dim selectionSet As Object
    Dim dimObj As Object
    Dim sum As Double
    Dim i As Long

    ' Получение доступа к AutoCAD
    On Error Resume Next
    Set acadApp = GetObject(, "AutoCAD.Application")
    If Err Then
        MsgBox "AutoCAD не запущен, запустите AutoCAD и повторите попытку."
        Exit Sub
    End If
    On Error GoTo 0

    ' Получение доступа к текущему чертежу
    Set acadDoc = acadApp.ActiveDocument

    ' Создание нового набора выборки
    Set selectionSet = acadDoc.SelectionSets.Add("DimensionSet")

    ' Фильтр для выбора размерных линий
    Dim filterType(0 To 1) As Integer
    Dim filterData(0 To 1) As Variant
    filterType(0) = 0
    filterData(0) = "DIMENSION"

    ' Выбор размерных линий в чертеже
    selectionSet.Select acSelectionSetAll, , , filterType, filterData

    ' Подсчет суммы значений размерных линий
    sum = 0
    For i = 0 To selectionSet.Count - 1
        Set dimObj = selectionSet.Item(i)
        sum = sum + dimObj.Measurement
    Next i

    ' Вывод суммы значений размерных линий
    MsgBox "Сумма цифр размерных линий: " & sum

    ' Очистка и удаление набора выборки
    selectionSet.Clear
    selectionSet.Delete

End Sub