L'interface COM vous permet de lire ou de créer un spectre de réponse défini par l'utilisateur dans RFEM et RSTAB.
Pour la conversion, l'interface avec le module (IDynamModule) doit être obtenue via l'interface avec le modèle RFEM (IModel). Cette interface est ensuite utilisée pour créer le cas de module (IModuleCase). IModuleCase inclut la fonction GetRSParams, qui permet de lire les paramètres du spectre de réponse. D'un autre côté, la fonction SetRSParams peut écrire de nouvelles données. L'exemple de code suivant permet de clarifier la situation :
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
Le spectre de réponse a été créé selon l'EN 1998-1:2010 et comporte 11 points. Tout d'abord, un tableau de type RSTableRow avec 11 éléments a été créé, rempli de données, puis enregistré sous la propriété UserDefinedTable. Le transfert est effectué à l'aide de la commande SetRSParams.