794x
004622
2020-08-12

Pytanie

Jak wprowadzić lub odczytać spektrum odpowiedzi przez interfejs COM w DYNAM Pro?


Odpowiedź:

Interfejs COM umożliwia odczytanie lub utworzenie zdefiniowanego przez użytkownika spektrum odpowiedzi w programach RFEM i RSTAB.

Do konwersji niezbędne jest uzyskanie interfejsu do modułu (IDynamModule) poprzez interfejs do modelu RFEM (IModel). Ten interfejs jest następnie używany do tworzenia przypadku modułu (IModuleCase). IModuleCase zawiera funkcję GetRSParams, za pomocą której można odczytać parametry spektrum odpowiedzi. Z drugiej strony funkcja SetRSParams może zapisywać nowe dane. Poniższy przykładowy kod wyjaśnia to:

Dim iApp As RFEM5.Application
Dim iMod As RFEM5.model
Ustaw iApp = GetObject(, "RFEM5.Application")

Dim rs_no As Integer
rs_no = 1

On Error GoTo e

' Sprawdza licencję RS-COM i blokuje korzystanie z aplikacji przez COM.
iApp.LockLicense

Set iMod = iApp.GetActiveModel

' Pobierz interfejs modułu
Dim iDyn As IDynamModule
Ustaw iDyn = iMod.GetModule("DynamPro")

' Pobierz interfejs obudowy modułu
Dim iDynCase As IModuleCase
Ustaw iDynCase = iDyn.GetData
    
' ustawić parametry spektrum odpowiedzi
Dim rspara As RPSarams
rspara = iDynCase.GetRSParams (rs_no)
    
Dim rs_spec (0 do 10) As RSTableRow
    
Indeks dim As Integer
indeks = 0
rs_spec (indeks).s = 0,6
rs_spec(indeks).T = 0
    
indeks = 1
rs_spec(indeks).s = 1,33
rs_spec(indeks).T = 0,153
    
indeks = 2
rs_spec(indeks).s = 1,33
rs_spec (indeks).T = 0,4
    
indeks = 3
rs_spec (indeks).s = 1,204
rs_spec(indeks).T = 0,443
    
indeks = 4
rs_spec(indeks).s = 1,07
rs_spec (indeks).T = 0,5
    
indeks = 5
rs_spec (indeks).s = 0,7
rs_spec (indeks).T = 0,761
    
indeks = 6
rs_spec(indeks).s = 0,508
rs_spec(indeks).T = 1,051
    
indeks = 7
rs_spec(indeks).s = 0,367
rs_spec (indeks).T = 1,453
    
indeks = 8
rs_spec(indeks).s = 0,267
rs_spec(indeks).T = 1,995
    
indeks = 9
rs_spec(indeks).s = 0,16
rs_spec (indeks).T = 2,584
    
indeks = 10
rs_spec(indeks).s = 0,16
rs_spec(indeks).T = 5
    

rspara.UserDefinedTable = rs_spec
rspara.Comment = "przetestuj rs"
rspara.DefinitionType = ResponseSpectraType.UserDefinedRS
rspara.description = "przetestuj rs przez COM"
rspara.Number = rs_no
    
iDynCase.SetRSParams rs_no, rspara
    
e: Jeżeli Err.Number <> 0 to MsgBox Err.description, , Err.Source
    
iMod.GetApplication.UnlockLicense
Ustaw iMod = Nic
Ustaw iApp = Nic

Spektrum odpowiedzi zostało utworzone zgodnie z normą EN 1998-1:2010 i obejmuje 11 punktów. W pierwszej kolejności została utworzona 11-elementowa tablica typu RSTableRow, wypełniona danymi, a następnie zapisana pod właściwością UserDefinedTable. Przenoszenie odbywa się za pomocą polecenia SetRSParams.