1747x
001477
2017-09-14

Интерфейс COM в VBA | 4.2 Оптимизация рамы

В части 4.1 данной серии статей описано присоединение дополнительного модуля RF‑/STEEL EC3 и заданы стержни и сочетания нагрузок, которые должны быть рассчитаны. Наша часть будет посвящена оптимизации поперечных сечений в модуле и передаче данных в RFEM. Конструктивные элементы, объясненные в предыдущих частях, мы не будем пояснять заново.

Процесс оптимизации

Цель состоит в том, чтобы перенести в расчет RF-/STEEL EC3 только стержни определенного сечения. В нашем примере нужно оптимизировать все стержни с сечением «IPE 300». Предполагается, что номера стержней известны.

Оптимизация в RF-STEEL EC3 выполняется на основе внутренних сил, рассчитанных ранее в RFEM. Это означает, что значения жесткости, измененные из-за изменений сечения в модуле, не учитываются. Преимущество этого заключается в том, что оптимизация выполняется без перерасчета конструкции и, таким образом, может быть выполнена очень быстро. Недостатком является то, что из-за изменений жесткости может произойти перераспределение, которое может привести к значительному изменению внутренних сил. Таким образом, оптимизированное сечение может быть перегружено.

Для эффективной оптимизации рекомендуется всегда оптимизировать в модуле только несколько сечений, а затем передавать новые сечения в программу RFEM и снова проверять результат в модуле.

Активация оптимизации в RF-STEEL EC3

Для оптимизации сечения в модуле необходимо активировать данную опцию для каждого отдельного сечения. В отличие от ручного управления программой, невозможно выбрать способ выполнения оптимизации; можно только выбрать, проводить оптимизацию или нет. Чтобы активировать данную функцию, необходимо выполнить поиск сечений по описанию. Разумеется, также можно выполнить поиск по номеру сечения. Если совпадение найдено, соответствующее сечение изменяется и переносится в модуль. Затем цикл прерывается, так как в данном случае проверяется только одно сечение.

  Установка оптимизации для требуемого сечения

Dim iStec3_cs As STEEL_EC3.CROSS_SECTION
count = iStec3Case.moGetCrossSectionsCount
Dim crsc_ec3_idx As Long
crsc_ec3_idx = -1

For i = 0 To count - 1
 iStec3_cs = iStec3Case.moGetCrossSection(i, AT_INDEX)
 If InStr(LCase(iStec3_cs.Description), LCase(crsc_desc)) > 0 Then
  iStec3_cs.Optimization = True
  iStec3Case.moSetCrossSection i, AT_INDEX, iStec3_cs
  crsc_ec3_idx = i
  Exit For
 End If
Next i

' Выполнить расчет
iStec3Case.moCalculate

После активации оптимизации начинается расчет случая в модуле.

Передача сечения в RFEM

Сечение передается с помощью номера сечения. Для этого нужно сначала открыть интерфейс сечения RFEM, а затем ввести новый TextID или новый идентификатор сечения. RFEM распознает идентификатор и после переноса выберет соответствующее сечение из библиотеки.

' Перенести сечение в RFEM
' Получить новое обозначение сечения из RF‑STEEL EC3
iStec3_cs = iStec3Case.moGetCrossSection(crsc_ec3_idx, AT_INDEX)

' Получить интерфейс и характеристики сечения из RFEM
Dim iCrsc As RFEM5.ICrossSection
Set iCrsc = iModelData.GetCrossSection(crsc_no, AtNo)
Dim crsc As RFEM5.CrossSection
crsc = iCrsc.GetData

' Изменение сечения на новое сечение из RF-STEEL EC3
crsc.Description = ""
crsc.TextID = iStec3_cs.Description

' Передать характеристики сечения
iModelData.PrepareModification
iCrsc.SetData crsc
iModelData.FinishModification

Заключение

Особенно у повторяющихся конструкций функция оптимизации в модуле RF-/STEEL EC3 значительно облегчает работу. Очень важно проверить конструкцию с оптимизированными сечениями, выполнив новый расчет в программе RFEM. Итерационный процесс можно легко реализовать с помощью интерфейса COM. Таким образом, автоматическая оптимизация может значительно облегчить и ускорить рабочий процесс.


Автор

Г-н Гюнтель осуществляет техническую поддержку пользователей Dlubal Software.

Ссылки
Скачивания