455x
001660
2020-08-04

[IT] FAQ 004585 | Come posso leggere la distribuzione del carico di un carico di linea da una casella combinata in RF‑COM...

Domanda:
Come posso leggere la distribuzione del carico di un carico di linea da una casella combinata in RF‑COM?

Risposta:
La distribuzione del carico di una linea è definita dall'attributo "Distribuzione". L'attributo "Distribuzione" è del tipo "LoadDistributionType" e le voci dell'elenco della casella combinata sono del tipo "Stringa", quindi è necessaria la conversione del tipo. La funzione "GetLoadDistributionType" converte una voce dell'elenco di tipo String in un LoadDistributionType.

'-------------------------------------------------------------------------- --------------------------------------------------- -
Funzione GetLoadDistributionType (sType As String) As LoadDistributionType
'-------------------------------------------------------------------------- --------------------------------------------------- -

    Se sType = "Concentrated2x2QType" Allora
      GetLoadDistributionType = Concentrated2x2QType
    ElseIf sType = "Concentrated2xQType" Then
      GetLoadDistributionType = Concentrated2xQType
    ElseIf sType = "ConcentratedNxQType" Then
      GetLoadDistributionType = ConcentratedNxQType
    ElseIf sType = "ConcentratedType" Then
      GetLoadDistributionType = ConcentratedType
    ElseIf sType = "ConcentratedUserDefinedType" Then
      GetLoadDistributionType = "ConcentratedUserDefinedType"
    ElseIf sType = "LinearType" Then
      GetLoadDistributionType = LinearType
    ElseIf sType = "LinearXType" Then
      GetLoadDistributionType = LinearXType
    ElseIf sType = "LinearYType" Then
      GetLoadDistributionType = LinearYType
    ElseIf sType = "LinearZType" Then
      GetLoadDistributionType = LinearZType
    ElseIf sType = "ParabolicType" Then
      GetLoadDistributionType = ParabolicType
    ElseIf sType = "RadialType" Then
      GetLoadDistributionType = RadialType
    ElseIf sType = "TaperedType" Then
      GetLoadDistributionType = TaperedType
    ElseIf sType = "TrapezoidalType" Then
      GetLoadDistributionType = TrapezoidalType
    ElseIf sType = "UniformType" Then
      GetLoadDistributionType = UniformType
    ElseIf sType = "VaryingType" Then
      GetLoadDistributionType = VaryingType
    End If

Fine funzione

La procedura "SetLineLoad" crea un carico di linea sulla linea 1. La distribuzione del carico viene letta dalla casella combinata "LoadDistribution" del foglio di lavoro Excel "LineLoad".

'-------------------------------------------------------------------------- --------------------------------------------------- -
Sub SetLineLoads()
'-------------------------------------------------------------------------- --------------------------------------------------- -
Dim modello Come RFEM5.model
Carico debole come RFEM5.ILoadCase
Dim data(0) As RFEM5.LineLoad
    'Ottieni l'interfaccia per il modello
    Set model = GetObject(, "RFEM5.Model")

    'Blocca la licenza COM e l'accesso al programma
    model.GetApplication.LockLicense
    On Error GoTo e
   'Ottieni l'interfaccia per i carichi
    Imposta carico = modello.GetLoads.GetLoadCase(0, AtIndex)
    'Imposta i parametri per il carico lineare
    data(0).No = 1
    data(0).LineList = "1"
    data(0).Type = ForceType
    'Distribuzione del carico dalla casella combinata
    data(0).Distribution = GetLoadDistributionType(Worksheets("LineLoad").DropDowns("LoadDistribution").List(Worksheets("LineLoad").DropDowns("LoadDistribution").ListIndex))
    data(0).Direction = LocalZType
    data(0).DistanzaA = 11
    data(0).DistanzaB = 22
    data(0).RelativeDistances = True
    data(0).Magnitudo1 = 4000
    data(0).Magnitudo2 = 5000
    data(0).Magnitudo3 = 6000
    data(0).OverTotalLength = False
    data(0).Comment = "carico della linea 1"
    'Trasferisci il carico della linea
    load.PrepareModification
    load.SetLineLoads data
    load.FinishModification

e:  If Err.Number 0 Then MsgBox Err.Description, , Err.Source
    Imposta carico = Niente
    'La licenza COM è sbloccata, l'accesso al programma è di nuovo possibile
    model.GetApplication.UnlockLicense
    Set model = Nothing

End Sub

Il codice sorgente può essere trovato in Download.



;