516x
001711
2020-08-12

[PL] FAQ 004622 | Jak mogę wprowadzić lub odczytać spektrum odpowiedzi przez interfejs COM w DYNAM ...

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.