A interface COM permite ler ou criar um espectro de resposta definido pelo utilizador no RFEM e no RSTAB.
Para a conversão, é necessário obter a interface para o módulo (IDynamModule) através da interface para o modelo RFEM (IModel). Esta interface é então utilizada para criar um caso de módulo (IModuleCase). O IModuleCase inclui a função GetRSParams que pode ser utilizada para ler os parâmetros para o espectro de resposta. Por outro lado, a função SetRSParams pode escrever os novos dados. O seguinte código de exemplo esclarece isso:
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
O espectro de resposta foi criado de acordo com a EN 1998‑1: 2010 e tem 11 pontos. Primeiro, foi criada uma matriz do tipo RSTableRow com 11 elementos, preenchida com dados e depois guardada na propriedade UserDefinedTable. A transferência é realizada utilizando o comando SetRSParams.