Интерфейс COM позволяет создавать и считывать пользовательские спектра реакций в программе RFEM и RSTAB.
Однако, для этого нужно сначала посредством интерфейса модели RFEM (IModel)получить доступ к интерфейсу модуля (IDynamModule). Данный интерфейс затем используется для создания случая модуля (IModuleCase), потому что именно он включает в себя функцию GetRSParams, которую можно использовать для считывания параметров спектра реакций. Однако с помощью функции SetRSParams можно записывать и новые данные. Способ применения данных функций затем объясняется в следующем коде:
Dim iApp As RFEM5.ApplicationDim iMod As RFEM5.modelSet iApp = GetObject(, "RFEM5.Application")
Dim rs_no As Integerrs_no = 1
On Error GoTo e
' Checks RS-COM license and locks the application for using by COM. iApp.LockLicense
Set iMod = iApp.GetActiveModel
' get module interfaceDim iDyn As IDynamModuleSet iDyn = iMod.GetModule("DynamPro")
' get module case interfaceDim iDynCase As IModuleCaseSet iDynCase = iDyn.GetData ' set response spectra parametersDim rspara As RSParamsrspara = iDynCase.GetRSParams(rs_no) Dim rs_spec(0 To 10) As RSTableRow Dim index As Integerindex = 0rs_spec(index).s = 0.6rs_spec(index).T = 0 index = 1rs_spec(index).s = 1.33rs_spec(index).T = 0.153 index = 2rs_spec(index).s = 1.33rs_spec(index).T = 0.4 index = 3rs_spec(index).s = 1.204rs_spec(index).T = 0.443 index = 4rs_spec(index).s = 1.07rs_spec(index).T = 0.5 index = 5rs_spec(index).s = 0.7rs_spec(index).T = 0.761 index = 6rs_spec(index).s = 0.508rs_spec(index).T = 1.051 index = 7rs_spec(index).s = 0.367rs_spec(index).T = 1.453 index = 8rs_spec(index).s = 0.267rs_spec(index).T = 1.995 index = 9rs_spec(index).s = 0.16rs_spec(index).T = 2.584 index = 10rs_spec(index).s = 0.16rs_spec(index).T = 5
rspara.UserDefinedTable = rs_specrspara.Comment = "test rs"rspara.DefinitionType = ResponseSpectraType.UserDefinedRSrspara.description = "test rs via COM"rspara.Number = rs_no iDynCase.SetRSParams rs_no, rspara e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source iMod.GetApplication.UnlockLicense Set iMod = Nothing Set iApp = Nothing
Данный спектр реакции был создан по норме EN 1998‑1:2010 и состоит из 11 точек, причем сначала было создано поле типа RSTableRow, состоящее из 11 элементов, которое затем заполнилось данными и было сохранено в записи UserDefinedTable. Обмен данными затем осуществлялся с помощью команды SetRSParams.