Mit Hilfe der COM Schnittstelle kann sowohl in RSTAB als auch RFEM ein benutzerdefiniertes Antwortspektrum ausgelesen oder auch angelegt werden.
Für die Umsetzung muss zunächst über das Interface zum RFEM Modell (IModel) das Interface zum Modul geholt werden (IDynamModul). Über dieses Interface wird dann das zum Modulfall angelegt (IModuleCase). IModuleCase beinhaltet die Funktion GetRSParams mit deren Hilfe die Parameter für das Antwortspektrum zunächst ausgelesen werden können. Die Funktion SetRSParams als Gegenspieler kann die neuen Daten schreiben. Im Folgenden ein Beispielcode zur Verdeutlichung:
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
Das Antwortspektrum wurde in Anlehnung an EN 1998-1:2010 erstellt und hat 11 Punkte. Es wurde zuerst ein Array von Typ RSTableRow mit 11 Elementen angelegt, mit Daten gefüllt und dann unter der Eigenschaft UserDefinedTable abgelegt. Die Übertragung erfolg mit dem Befehl SetRSParams.