L'interfaccia COM consente di leggere o creare uno spettro di risposta definito dall'utente in RFEM e RSTAB.
Per la conversione, è necessario ottenere l'interfaccia al modulo (IDynamModule) tramite l'interfaccia al modello RFEM (IModel). Questa interfaccia viene quindi utilizzata per creare il caso del modulo (IModuleCase). IModuleCase include la funzione GetRSParams, che può essere utilizzata per leggere i parametri per lo spettro di risposta. D'altra parte, la funzione SetRSParams può scrivere nuovi dati. Il seguente codice di esempio lo chiarisce:
Dim iApp As RFEM5.ApplicationDim iMod As RFEM5.modelImposta iApp = GetObject(, "RFEM5.Application")
Dim rs_no As Integerrs_no = 1
On Error GoTo e
' Verifica la licenza RS-COM e blocca l'applicazione per l'utilizzo da parte di COM. iApp.LockLicense
Imposta iMod = iApp.GetActiveModel
' ottieni l'interfaccia del moduloDim iDyn As IDynamModuleImposta iDyn = iMod.GetModule("DynamPro")
' ottieni l'interfaccia del case del moduloDim iDynCase As IModuleCaseImposta iDynCase = iDyn.GetData ' imposta i parametri dello spettro di rispostaDim rspara As RSParamsrspara = iDynCase.GetRSParams(rs_no) Dim rs_spec (da 0 a 10) As RSTableRow Indice dim come interoindice = 0rs_spec (indice).s = 0,6rs_spec (indice).T = 0 indice = 1rs_spec (indice).s = 1.33rs_spec (indice).T = 0.153 indice = 2rs_spec (indice).s = 1.33rs_spec (indice).T = 0,4 indice = 3rs_spec(indice).s = 1.204rs_spec (indice).T = 0,443 indice = 4rs_spec (indice).s = 1,07rs_spec (indice).T = 0.5 indice = 5rs_spec (indice).s = 0.7rs_spec (indice).T = 0,761 indice = 6rs_spec (indice).s = 0.508rs_spec (indice).T = 1.051 indice = 7rs_spec (indice).s = 0,367rs_spec (indice).T = 1.453 indice = 8rs_spec (indice).s = 0.267rs_spec (indice).T = 1,995 indice = 9rs_spec (indice).s = 0.16rs_spec (indice).T = 2.584 indice = 10rs_spec (indice).s = 0.16rs_spec (indice).T = 5
rspara.UserDefinedTable = rs_specrspara.Comment = "test rs"rspara.DefinitionType = ResponseSpectraType.UserDefinedRSrspara.description = "verifica rs tramite COM"rspara.Number = rs_no iDynCase.SetRSParams rs_no, rspara e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source iMod.GetApplication.UnlockLicenseSet iMod = Nothing Set iApp = Nothing
Lo spettro di risposta è stato creato secondo EN 1998-1:2010 e ha 11 punti. Innanzitutto, è stato creato un array del tipo RSTableRow con 11 elementi, riempito con i dati e quindi salvato nella proprietà UserDefinedTable. Il trasferimento viene eseguito utilizzando il comando SetRSParams.