430x
001660
2020-08-04

[PL] FAQ 004585 | W jaki sposób mogę odczytać rozkład obciążenia liniowego z listy rozwijanej w RF-COM...

Pytanie:
Jak mogę odczytać rozkład obciążenia liniowego z listy rozwijanej w RF-COM?

Odpowiedź:
Rozkład obciążenia liniowego jest zdefiniowany za pomocą atrybutu „Rozkład”. Atrybut „Dystrybucja” jest typu „LoadDistributionType”, a wpisy na liście w polu kombi są typu „String”, zatem konwersja typu jest wymagana. Funkcja "GetLoadDistributionType" konwertuje wpis na liście typu String na LoadDistributionType.

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

    Jeżeli sType = "Concentrated2x2QType", to
      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" Wtedy
      GetLoadDistributionType = LinearType
    ElseIf sType = "LinearXType" Wtedy
      GetLoadDistributionType = LinearXType
    ElseIf sType = "LinearYType" Wtedy
      GetLoadDistributionType = LinearYType
    ElseIf sType = "LinearZType" Wtedy
      GetLoadDistributionType = LinearZType
    ElseIf sType = "ParabolicType" Then
      GetLoadDistributionType = ParabolicType
    ElseIf sType = "RadialType" Then
      GetLoadDistributionType = RadialType
    ElseIf sType = "TaperedType" Wtedy
      GetLoadDistributionType = typ stożkowy
    ElseIf sType = "TrapezoidalType" Wtedy
      GetLoadDistributionType = TrapezoidalType
    ElseIf sType = "UniformType" Then
      GetLoadDistributionType = UniformType
    ElseIf sType = "VaryingType" Then
      GetLoadDistributionType = VaryingType
    End If

Funkcja zakończenia

Procedura "SetLineLoad" tworzy obciążenie liniowe w Linii 1. Rozkład obciążenia jest odczytywany z listy rozwijanej „Obciążenie liniowe” arkusza Excel „Obciążenie liniowe”.

' ------------------------------------------------ -------------------------------------------------- -
Podzbiory obciążeń liniowych ()
' ------------------------------------------------ -------------------------------------------------- -
Dim model As RFEM5.model
Obciążenie wymiarowe As RFEM5.ILoadCase
Dim data (0) As RFEM5.LineLoad
    'Pobierz interfejs dla modelu
    Set model = GetObject(, "RFEM5.Model")

    'Zablokuj licencję COM i dostęp do programu
    model.GetApplication.LockLicense
    On Error GoTo e
   'Pobierz interfejs dla obciążeń
    Ustaw obciążenie = model.GetLoads.GetLoadCase(0, AtIndex)
    'Ustawić parametry dla obciążenia liniowego
    dane (0) .No = 1
    data(0) .LineList = "1"
    data(0).Typ = ForceType
    'Rozkład obciążenia z pola kombi
    data(0).Distribution = GetLoadDistributionType(Worksheets("LineLoad").DropDowns("LoadDistribution").List(Worksheets("LineLoad").DropDowns("LoadDistribution" .ListIndex))
    dane (0). Kierunek = Lokalny TypZ
    dane (0). Odległość A = 11
    dane (0) .Odległość B = 22
    data(0).RelativeDistances = True
    dane (0).Magnuda1 = 4000
    dane (0).Magnitud2 = 5000
    data(0).Magnitude3 = 6000
    data(0) .OverTotalLength = False
    dane (0) .Comment = "obciążenie liniowe 1"
    'Obciążenie linii transferu
    Load.PrepareModification
    load.SetLineLoads data
    load.FinishModyfikacja

e:  Jeżeli Err.Number 0 to MsgBox Err.Description, , Err.Source
    Ustawić obciążenie = Nic
    'Licencja COM jest odblokowana, ponownie dostęp do programu
    model.GetApplication.UnlockLicense
    Ustaw model = Nic

End Sub

Kod źródłowy można znaleźć w sekcji Do pobrania.