Основы
Элемент в программе RFEM состоит из нескольких элементов, которые более или менее зависят друг от друга. Если один из этих элементов отсутствует, элемент не может быть создан. Следующая структура должна быть соблюдена.
Для создания данного типа элемента необходимо получить интерфейс для конструктивных данных:
'Получить интерфейс для данных модели.
Dim iModelData As iModelData Set iModelData = iModel.GetModelData ()
Этот интерфейс позволяет окончательно передать данные в RFEM.
Режим редактирования
После изменения или создания данных в программе RFEM необходимо переключить ее в режим редактирования. Например, в данном режиме нельзя выполнять какие -либо расчеты, а переданные данные доступны только после выхода из режима. Для перехода в режим редактирования необходимо использовать метод PrepareModification (), а для выхода из режима - FinishModification ():
'Перевести элементы в режим редактирования.iModelData.PrepareModification'...iModelData.FinishModification
Создание элементов
Наша цель - создать стержень с сечением IPE 100 и конструкционной стали S235 от точки P0 (0,0,0) до точки P1 (1,0,0). Во-первых, необходимо создать узлы. В следующем примере используется массив, так как он представляет наибольшую гибкость для дальнейших модификаций программы:
'Создать узлы.Dim nodeList (0 To 1)As RFEM5.NodenodeList (0) .RefObjectNo = 0nodeList (0) .No = 1nodeList (0) .X = 0 #nodeList (0) .Y = 0 #nodeList (0) .Z = 0 #
nodeList (1) .RefObjectNo = 0nodeList (1) .No = 2nodeList (1) .X = 1 #nodeList (1) .Y = 0 #nodeList (1) .Z = 0 #
iModelData.PrepareModificationiModelData.SetNodes nodeListiModelData.FinishModification
Как упоминалось выше, массив, включающий данные узла, передается с помощью методов PrepareModification () и FinishModification (). Для нумерации важен следующий факт: При переносе нового элемента, который уже включает в себя ссылочные номера, существующие элементы не перезаписываются, а добавляется в конец списка. Если вы введете ноль, элемент будет автоматически установлен на следующее свободное место.
Процесс создания линий аналогичен, с той лишь разницей, что мы ссылаемся на узлы. Список узлов передается в виде строки точно так же, как в RFEM:
'Создать линии.Dim lineList (0 To 0) As RFEM5.LinelineList (0) .nodeList = «1,2»lineList (0) .Type = LineType.PolylineType
'Перевести элементы в режим редактирования.iModelData.PrepareModificationiModelData.SetLines lineListiModelData.FinishModification
Изменение элементов
Чтобы создать сечение, необходимо сначала создать материал. В новой модели RFEM, в первую очередь всегда используются материалы из ранее созданной модели. Чтобы обеспечить использование соответствующего материала, необходимо удалить или изменить все существующие материалы. В данном случае проще всего удалить все существующие материалы и создать новый. В отличие от создания новых элементов, интерфейс отдельных элементов должен быть активирован в случае удаления или изменения. Шаги следующие:
'Получить количество существующих материалов.Dim число As Integernum = iModelData.GetMaterialCount
'Зациклите существующие материалы.iModelData.PrepareModificationDim iAs IntegerFor i = 0To num - 1'Получить интерфейс к материалу. Dim iMat As RFEM5.IMaterial Set iMat = iModelData.GetMaterial (i, AtIndex)'Удалить материал. iMat.DeleteNext iiModelData.FinishModification
Интерфейс материала можно получить либо с помощью соответствующего номера материала (AtNo), либо с помощью индекса в списке всех материалов. В отличие от номера материала, индекс начинается с нуля и не имеет пробелов.
Завершение стержня
После удаления всех материалов, вы можете создать новый материал. Как и в программе RFEM, можно перенести материал прямо из базы данных материалов, используя его имя. Для этого с помощью свойства TextID вводится соответствующая строка (подробнее см. RF -COM 5.chm в SDK):
'Создать новый материал из библиотеки материалов.Dim коврики (0 To 0) As RFEM5.Materialmats (0) .TextID = "NameID | Сталь S 235 @ TypeID | STEEL @ StandardID | DIN EN 1993-1-1-10"mats (0) .No = 1
'Перевести элементы в режим редактирования.iModelData.PrepareModificationiModelData.SetMaterials matsiModelData.FinishModificationСечение создается так же, как и материал. Кроме того, указывается номер материала:'Создать новое сечение из библиотеки.Dim crs (0 To 0) As RFEM5.CrossSectioncrs (0) .TextID = «IPE 100»crs (0) .МатериалNo = 1crs (0) .No = 1
'Перевести элементы в режим редактирования.iModelData.PrepareModificationiModelData.SetCrossSections crsiModelData.FinishModificationПоскольку все элементы стержня были созданы, стержень можно перенести:'Создать новый стержень.Dim mems (0 To 0) As RFEM5.Membermems (0) .LineNo = 1mems (0) .StartCrossSectionNo = 1mems (0) .No = 1
'Перевести элементы в режим редактирования.iModelData.PrepareModificationiModelData.SetMembers memsiModelData.FinishModification
Как и в программе RFEM, здесь достаточно указать сечение в начале стержня. Концевое высвобождение стержня создавать не требуется, поскольку оно автоматически считается жестким.
Оптимизация
До настоящего времени, режим редактирования был найден для каждого элемента отдельно. Чтобы увеличить скорость обработки данных, можно перенести все элементы в один режим редактирования, Исключением являются удаление материалов и создание новых материалов. В данном случае необходимо использовать два отдельных блока, поскольку в одном блоке невозможно удалить и создать элементы:
'Удалить элементы в режиме редактирования.iModelData.PrepareModificationDim iAs IntegerFor i = 0To num - 1 'Получить интерфейс к материалу. Dim iMat As RFEM5.IMaterial Set iMat = iModelData.GetMaterial (i, AtIndex) 'Удалить материал. iMat.DeleteNext iiModelData.FinishModification
'Перевести элементы в режим редактирования.iModelData.PrepareModification
iModelData.SetNodes nodeListiModelData.SetLines lineListiModelData.SetMaterials matsiModelData.SetCrossSections crsiModelData.SetMembers mems
iModelData.FinishModification
Резюме и перспективы
Процедуры, описанные в этой статье, образуют основу для всех конструктивных элементов, которые могут передаваться через COM. Исключением являются нелинейные высвобождения стержней или узловые опоры, которые включают в себя дополнительное вложение. Эти элементы будут объяснены в следующих статьях данной серии.