Rozhraní COM umožňuje načíst nebo vytvořit uživatelské spektrum odezvy v programech RFEM a RSTAB.
Pro realizaci je nutné nejdříve pomocí rozhraní k modelu RFEM (IModel) získat rozhraní z modulu (IDynamModul). Toto rozhraní pak slouží k vytvoření případu modulu (IModuleCase). IModuleCase obsahuje funkci GetRSParams, pomocí které lze nejdříve načíst parametry pro spektrum odezvy. Funkce SetRSParams naopak umí zapsat nová data. Následující příklad kódu to objasňuje:
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 interface Dim iDyn As IDynamModule Set iDyn = iMod.GetModule("DynamPro")
' get module case interface Dim iDynCase As IModuleCase Set iDynCase = iDyn.GetData ' set response spectra parameters Dim rspara As RSParams rspara = iDynCase.GetRSParams(rs_no) Dim rs_spec(0 To 10) As RSTableRow Dim index As Integer index = 0 rs_spec(index).s = 0.6 rs_spec(index).T = 0 index = 1 rs_spec(index).s = 1.33 rs_spec(index).T = 0.153 index = 2 rs_spec(index).s = 1.33 rs_spec(index).T = 0.4 index = 3 rs_spec(index).s = 1.204 rs_spec(index).T = 0.443 index = 4 rs_spec(index).s = 1.07 rs_spec(index).T = 0.5 index = 5 rs_spec(index).s = 0.7 rs_spec(index).T = 0.761 index = 6 rs_spec(index).s = 0.508 rs_spec(index).T = 1.051 index = 7 rs_spec(index).s = 0.367 rs_spec(index).T = 1.453 index = 8 rs_spec(index).s = 0.267 rs_spec(index).T = 1.995 index = 9 rs_spec(index).s = 0.16 rs_spec(index).T = 2.584 index = 10 rs_spec(index).s = 0.16 rs_spec(index).T = 5
rspara.UserDefinedTable = rs_spec rspara.Comment = "test rs" rspara.DefinitionType = ResponseSpectraType.UserDefinedRS rspara.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
Spektrum odezvy bylo vytvořeno s přihlédnutím k normě EN 1998-1:2010 a má 11 bodů. Nejdříve se vytvořilo pole typu RSTableRow s 11 prvky, vyplnilo se daty a poté uloženo pod vlastností UserDefinedTable. Přenos se provádí příkazem SetRSParams.