Как изменить параметр видимости блока через VBA?

Автор Тема: Как изменить параметр видимости блока через VBA?  (Прочитано 2656 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SlepovatiyАвтор темы

  • ADN OPEN
  • Сообщений: 1
  • Карма: 0
Добрый день! Начал учиться 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



Сразу прошу прощения что может банальный вопрос.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
BlockRef.GetDynamicBlockProperties возвращает динамические свойства, некоторые из них являются параметрами видимости.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение