Интерфейс COM в VBA | 2.1 Создание стержня

Техническая статья

Эта статья была переведена Google Translator Посмотреть исходный текст

В первой части серии статей об интерфейсе COM-интерфейса описано открытие и создание модели в программе RFEM. Во второй части объясняется создание и изменение элементов на примере стержня. Элементы, описанные в части 1, здесь не будут объясняться.

Основа

Элемент в программе RFEM состоит из нескольких элементов, которые более или менее зависят друг от друга. Если один из этих элементов отсутствует, элемент не может быть создан. Необходимо соблюдать следующую иерархию.

Pисунок 01 - 1 - Элементная конструкция стержня
Тусклый iModelData Как iModelData
Набор iModelData = iModel.GetModelData ()

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

Режим редактирования

Как только данные будут изменены или созданы в программе RFEM, программа RFEM должна быть переключена в режим редактирования. В этом режиме, например, невозможно выполнить расчет, а переданные данные доступны только после выхода. Чтобы перейти к обработке, используйте метод PrepareModification () и выйдите из FinishModification ():

'Передача элементов в режиме редактирования.
iModelData.PrepareModification
'...
iModelData.FinishModification

Создание элементов

Целью является создание стержня с сечением IPE 100 из мягкой стали S235 от точки P0 (0,0,0) до точки P1 (1,0,0). Для этого необходимо сначала создать узлы. В следующем примере используется массив, поскольку он обеспечивает наибольшую гибкость для дальнейших изменений программы:

'Создать узел.
Тусклый nodeList (0 Для 1) Как RFEM5.Node
nodeList (0) .RefObjectNo = 0
nodeList (0) .No = 1
nodeList (0) .X = 0 #
nodeList (0) .Y = 0 #
nodeList (0) .Z = 0 #

nodeList (1) .RefObjectNo = 0
nodeList (1) .No = 2
nodeList (1) .X = 1 #
nodeList (1) .Y = 0 #
nodeList (1) .Z = 0 #

iModelData.PrepareModification
iModelData.SetNodes nodeList
iModelData.FinishModification

Как уже упоминалось выше, массив с данными узла передается в методах PrepareModification () и FinishModification (). Для нумерации важен следующий факт: Если передается новый элемент и номер, указанный в нем, уже существует, существующие элементы не будут перезаписаны, а будут добавлены в конец списка. При вводе нуля элемент автоматически перемещается в следующую свободную позицию.

Линии создаются таким же образом, с небольшой разницей, что на узлы необходимо ссылаться. Как и в RFEM, список узлов передается в виде строки:

'Создать линии.
Тусклый lineList (0 Для 0) Как RFEM5.Line
lineList (0) .nodeList = «1,2»
lineList (0) .Type = LineType.PolylineType

'Передача элементов в режиме редактирования.
iModelData.PrepareModification
iModelData.SetLines lineList
iModelData.FinishModification

Изменить элементы

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

'Получить количество доступных материалов.
Тусклый число Как целое число
num = iModelData.GetMaterialCount

'Цикл над существующими материалами.
iModelData.PrepareModification
Тусклый я Как целое число
Для i = 0 Для число - 1
'Получить интерфейс к материалу.
Тусклый IMAT Как RFEM5.IMaterial
Набор iMat = iModelData.GetMaterial (i, AtIndex)
'Удалить материал.
iMat.Delete
Далее i
iModelData.FinishModification

Чтобы получить интерфейс материала, используйте номер материала (AtNo) или индекс в списке всех материалов. В отличие от номера материала, индекс начинается с нуля и не имеет пробелов.

Завершить стержень

Теперь, когда все материалы были удалены, можно создать новый материал. Как и в RFEM, вы можете получить доступ к материалу непосредственно из библиотеки материалов по его названию. Для этого введите соответствующую строку с помощью свойства TextID (подробнее см. RF-COM-5.chm в SDK):

'Создать новый материал из библиотеки.
Тусклый коврики (0 Для 0) Как RFEM5.Material
mats (0) .TextID = «NameID | Конструкционная сталь S 235 @ TypeID | STEEL @ NormID | DIN EN 1993-1-1-10»
mats (0) .No = 1

'Передача элементов в режиме редактирования.
iModelData.PrepareModification
iModelData.SetMaterials маты
iModelData.FinishModification
Как и материал, также создается сечение. Кроме того, также указывается номер материала:
'Создать новое сечение из библиотеки.
Тусклый crs (0 Для 0) Как RFEM5.CrossSection
crs (0) .TextID = «IPE 100»
crs (0) .МатериалNo = 1
crs (0) .No = 1

'Передача элементов в режиме редактирования.
iModelData.PrepareModification
iModelData.SetCrossSections crs
iModelData.FinishModification
Поскольку для стержня были созданы все элементы, теперь можно перенести стержень:
'Создать новый стержень.
Тусклый mems (0 Для 0) Как RFEM5.Member
mems (0) .LineNo = 1
mems (0) .StartCrossSectionNo = 1
mems (0) .No = 1

'Передача элементов в режиме редактирования.
iModelData.PrepareModification
iModelData.SetMembers mems
iModelData.FinishModification

Как и в программе RFEM, достаточно указать сечение в начале стержня, и шарнир стержня не нужно создавать, но он автоматически считается жестким.

Оптимизация

Ранее режим редактирования был открыт индивидуально для каждого списка элементов. Чтобы увеличить скорость обработки, можно перенести все элементы в одном режиме редактирования. Исключение составляют удаление материалов и создание новых материалов. Здесь необходимо использовать два отдельных блока, поскольку элементы не могут быть удалены и созданы внутри блока:

'Удалить элементы в режиме редактирования.
iModelData.PrepareModification
Тусклый я Как целое число
Для i = 0 Для число - 1
'Получить интерфейс к материалу.
Тусклый IMAT Как RFEM5.IMaterial
Набор iMat = iModelData.GetMaterial (i, AtIndex)
'Удалить материал.
iMat.Delete
Далее i
iModelData.FinishModification

'Передача элементов в режиме редактирования.
iModelData.PrepareModification

iModelData.SetNodes nodeList
iModelData.SetLines lineList
iModelData.SetMaterials маты
iModelData.SetCrossSections crs
iModelData.SetMembers mems

iModelData.FinishModification

Резюме и перспективы

Отображаемые процедуры формируют основу для всех конструктивных элементов, к которым можно обратиться через COM. Исключением являются нелинейные концевые защелки стержней или узловые опоры, которые содержат дополнительные вложения. По этой причине эти элементы будут обсуждаться в следующих статьях.

Загрузки

Ссылки

Контакты

Свяжитесь с Dlubal

У вас есть какие-либо вопросы или необходим совет?
Свяжитесь с нами через бесплатную поддержку по электронной почте, в чате или на форуме или найдите различные предлагаемые решения и полезные советы на страницах часто задаваемых вопросов.

+49 9673 9203 0

info@dlubal.com

RFEM Основная программа
RFEM 5.xx

Основная программа

Программное обеспечение для расчета конструкций методом конечных элементов (МКЭ) плоских и пространственных конструктивных систем, состоящих из плит, стен, оболочек, стержней (балок), тел и контактных элементов

Цена первой лицензии
3 540,00 USD
RFEM Прочие
RF-COM 5.xx

Дополнительный модуль

Программируемый интерфейс (API), основанный на технологии COM

Цена первой лицензии
580,00 USD