Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
[ Закрыто] В vba определить геометрические размеры атрибута динамического блока в Автокаде, Как можно в vba определить геометрические размеры атрибута в динамическом блоке Автокада
 
Доброго времени суток уважаемые форумчане! В лист автокада вставляю динамический блок. Содержание атрибута беру с листа Excel. После того как вставил и обновил блок, нужно узнать геометрические размеры атрибута " МАРКА_КАБЕЛЯ" или координаты по оси Х и Y. Часть кода прилагаю. Буду благодарен за любую помощь!
Код
' Получаем коллекцию динамических свойств
     Set objBlockRef = acadDoc.ModelSpace.InsertBlock(pntPanel, Name, 1, 1, 1, 0)
     BlkAtts = objBlockRef.GetDynamicBlockProperties
       
       
     BlkAtts = objBlockRef.GetAttributes
     acadDoc.Regen acAllViewports
    acadApp.ZoomExtents


dynProps = objBlockRef.GetDynamicBlockProperties

' Перебираем свойства
For j = LBound(dynProps) To UBound(dynProps)
    'i = 0
    Set prop = dynProps(j)
    Debug.Print j
    Debug.Print "Свойство: " & prop.PropertyName
    If prop.PropertyName <> "Origin" Then Debug.Print "Значение: " & prop.Value
'Для ввода
If prop.PropertyName = "Видимость1" Then
         str = sh.Cells(nrs, 12).text
        dynProps(j).Value = str
         BlkAtts = objBlockRef.GetAttributes
         acadDoc.Regen acAllViewports
    End If
 'Для отходящей группы
    If prop.PropertyName = "Видимость 1" Then
         str = sh.Cells(nrs, 12).text
        dynProps(j).Value = str
         BlkAtts = objBlockRef.GetAttributes
         acadDoc.Regen acAllViewports
    End If
    
     'Для отходящей группы
    If prop.PropertyName = "Вид" Then
         str = sh.Cells(nrs, 13).text
        dynProps(j).Value = str
         BlkAtts = objBlockRef.GetAttributes
         acadDoc.Regen acAllViewports
    End If

               'Получаем атрибуты для блочной ссылки
    str = ""
    varAttributes = objBlockRef.GetAttributes
     If Name = "Шины" Or Name = "Оконечные устройства" Then Exit Sub
       For i = LBound(varAttributes) To UBound(varAttributes)
       
       Debug.Print varAttributes(i).TagString
       Debug.Print varAttributes(i).TextString
 
    If varAttributes(i).TagString = "МАРКА_КАБЕЛЯ" Then
     str = sh.Cells(nrs, 6).text
     varAttributes(i).TextString = str
    
         BlkAtts = objBlockRef.GetAttributes
         acadDoc.Regen acAllViewports
Двойной клик по ячейке, Макрос не работает если F1 объединена
 
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("F1")) Is Nothing Then
            'Target.Font.Name = "Wingdings 2"
            If Target = "Вася" Then
                Target = "Петя"
            Else
                Target = "Вася"
            End If
        Cancel = True
           'Call InMidStr1
    End If
End Sub
Скрытый текст
Доброго времени суток уважаемые гуру. На просторах инета нашел процедуру которая двойным щелчком мышки изменяет значения ячейки. Если ячейка не объединена, все работает прекрасно. Но если Ф1 объединена, не работает. Подскажите пожалуйста, как можно обратит'ся к объединенной ячейке? Вед', как я понимаю, адрес объединенной ячейки все равно остается как и у первой объединенной ячейки. Или я неправил'но понимаю? Буду очен' признателен если подскажите где можно изучит' етот вопрос. Спасибо.
Изменено: Farit - 16.12.2024 20:48:55 (Не корректно написал код)
Оптимизация фазировки, подбор оптимальных подключений электроприемников в щите, Изменение готовой программы
 
 Доброго времени суток уважаемые гуру. Данная тема уже поднималась на этом форуме, но жизнь не стоит на месте. В примере который я скинул в качестве образца заполнена таблица лист "Расчет линии". На втором листе есть код программы (взял с этого форума) который расставляет нагрузку по фазам, но он работает только для однофазных потребителей. Необходимо задать условия для 3-х фазных потребителей. В качестве определения на скольких фазах сидит потребитель, можно узнать из столбца I начиная с 14 строки. Если в ячейке стоит 0,22 значит это однофазный потребитель, если 0,38 значит трехфазный. Естественно трехфазный потребитель загружает фазы ровно. Для того чтобы фазы не перегружать остается манипулировать однофазными.
Прошу помочь в изменении кода. В качестве результата в листе "Расчет линии" в столбце А необходимо вывести к какой фазе подключен потребитель (А, В, С или АВС) и в R4, R5, R6 вычислить нагрузки по фазам.
Изменено: Farit - 21.08.2024 06:57:35
Оптимизация фазировки, подбор оптимальных подключений электроприемников в щите, Изменение готовой программы
 
    Доброго времени суток уважаемые гуру. Данная тема уже поднималась на этом форуме, но жизнь не стоит на месте. В примере который я скинул в качестве образца заполнена таблица лист "Расчет линии". На втором листе есть код программы (взял с этого форума) который расставляет нагрузку по фазам, но он работает только для однофазных потребителей. Необходимо задать условия для 3-х фазных потребителей. В качестве определения на скольких фазах сидит потребитель, можно узнать из столбца I начиная с 14 строки. Если в ячейке стоит 0,22 значит это однофазный потребитель, если 0,38 значит трехфазный. Естественно трехфазный потребитель загружает фазы ровно. Для того чтобы фазы не перегружать остается манипулировать однофазными.
Прошу помочь в изменении кода. В качестве результата в листе "Расчет линии" в столбце А необходимо вывести к какой фазе подключен потребитель (А, В, С или АВС) и в R4, R5, R6 вычислить нагрузки по фазам.
Изменено: Farit - 20.08.2024 20:29:57
Страницы: 1
Наверх