Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: Slepovatiy от 30-12-2021, 17:59:30

Название: Как изменить параметр видимости блока через VBA?
Отправлено: Slepovatiy от 30-12-2021, 17:59:30
Добрый день! Начал учиться VBA в связке Autocad и возник вопрос на который не могу который день найти ответ , как  изменить свойства видимости блока.
Добавлю фото блока , и код пример который я начал разбирать. Пытался сделать автоматизированную однолинейную схему

Код - Visual Basic [Выбрать]
  1. Sub Vs()
  2.     'Прописываем переменные
  3.    Dim blockref As AcadBlockReference
  4.     Dim name As String
  5.     Dim pp As Variant
  6.     Dim AP As Excel.Application
  7.     Dim WB As Excel.Workbook
  8.     Dim WS As Excel.Worksheet
  9.     On Error Resume Next
  10.     'Подкл к ексель
  11.    Set AP = Excel.Application
  12.     Set WB = AP.Workbooks.Open("D:\Odnolineyka.xlsm")
  13.     Set WS = WB.Worksheets(1)
  14.     'Получаем точку вставки
  15.    pp = ThisDrawing.Utility.GetPoint(, "Укажите точку вставки")
  16.     'Вставка блока
  17.    name = "МультиФидер"
  18.     Set blockref = ThisDrawing.ModelSpace.insertblock(pp, name, 1, 1, 1, 0)
  19.        
  20.     'Получение атрибутов
  21.    If blockref.HasAttributes = True Then
  22.     att = blockref.GetAttributes
  23.         For i = LBound(att) To UBound(att)
  24.             If att(i).TagString = "НАИМЕНОВАНИЕ_ПОТРЕБИТЕЛЯ" Then
  25.             att(i).TextString = Cells(12, 2)
  26.             ElseIf att(i).TagString = "МАРКА_КАБЕЛЯ" Then
  27.             att(i).TextString = Cells(13, 2)
  28.             ElseIf att(i).TagString = "ДЛИНА_КАБЕЛЯ" Then
  29.             att(i).TextString = Cells(14, 2)
  30.             ElseIf att(i).TagString = "НОМИНАЛ_АВ" Then
  31.             att(i).TextString = Cells(16, 2)
  32.             ElseIf att(i).TagString = "НОМИНАЛ_МП_1" Then
  33.             att(i).TextString = Cells(18, 2)
  34.             ElseIf att(i).TagString = "НОМИНАЛ_МП_2" Then
  35.             att(i).TextString = Cells(20, 2)
  36.             End If
  37.             Next
  38.             End If
  39.             AP.Quit
  40.     End Sub
(https://i.postimg.cc/JGmDxhwG/1.png) (https://postimg.cc/JGmDxhwG)

(https://i.postimg.cc/gnDwTPd4/2.png) (https://postimg.cc/gnDwTPd4)
Сразу прошу прощения что может банальный вопрос.
Название: Re: Как изменить параметр видимости блока через VBA?
Отправлено: Александр Ривилис от 31-12-2021, 00:51:11
BlockRef.GetDynamicBlockProperties возвращает динамические свойства, некоторые из них являются параметрами видимости.