RFEM 6 jest programem głównym pakietu oprogramowania, który służy do analizy konstrukcji przy użyciu MES. Dalsze analizy oraz wymiarowanie przeprowadzane jest w odpowiednich rozszerzeniach. Program główny RFEM 6 służy do definiowania konstrukcji, materiałów i obciążeń płaskich i przestrzennych układów konstrukcyjnych składających się z płyt, ścian, powłok i prętów. Program umożliwia również tworzenie konstrukcji mieszanych oraz modelowanie elementów bryłowych i kontaktowych.
RSTAB 9 to wydajne oprogramowanie do obliczeń konstrukcji szkieletowych 3D, odzwierciedlające aktualny stan wiedzy i pomagające inżynierom sprostać wymaganiom współczesnej inżynierii lądowej.
Często zbyt długo zajmujesz się obliczaniem przekrojów? Oprogramowanie firmy Dlubal i program samodzielny RSECTION ułatwiają pracę, określając i przeprowadzając analizę naprężeń dla różnych przekrojów.
Czy zawsze wiesz, skąd wieje wiatr? Oczywiście od strony innowacji! RWIND 2 to program, który wykorzystuje cyfrowy tunel aerodynamiczny do numerycznej symulacji przepływu wiatru. Program symuluje przepływ wokół dowolnej geometrii budynku i określa obciążenia wiatrem na powierzchnie.
Szukasz narzędzia do przeglądu stref obciążenia śniegiem, wiatrem i trzęsieniem ziemi? Dobrze trafiłeś! Skorzystaj z narzędzia do geolokalizacji do szybkiego i skutecznego definiowania obciążenia śniegiem, prędkości wiatru, obciążenia trzęsieniem ziemi, zgodnie z Eurokodem i innymi międzynarodowymi normami.
Chcesz wypróbować możliwości programów Dlubal Software? To Twoja szansa! Dzięki 90-dniowej pełnej wersji, możesz w pełni przetestować wszystkie nasze programy.
Obrót podpory węzłowej jest definiowany za pomocą układu współrzędnych zdefiniowanego przez użytkownika. W poniższym przykładzie podpora węzłowa jest obrócona o 45 ° wokół osi z. Nie ma potrzeby definiowania nowego układu współrzędnych poprzez węzły. W tym przypadku wystarczy użyć opcji RotatedSystemType, która umożliwia przestrzenny obrót podpory poprzez trzy obroty wokół osi x, y i z. Obrót jest wprowadzany w radianach:
Sub test_nodal_support ()Dim iApp As RFEM5.ApplicationUstaw iApp = GetObject (, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e' pobierz interfejs danych modeluDim iModData As RFEM5.IModelData2Set iModData = iMod.GetModelData' pobierz interfejs podpory węzłowejDim iNs As RFEM5.INodalSupportUstaw iNs = iModData.GetNodalSupport (1, AtNo)' pobierz dane podpory węzłowejDim ns As RFEM5.NodalSupportns = iNs.GetData' modyfikować danens.ReferenceSystem = UserDefinedSystemTypens.UserDefinedReferenceSystem.Axis1 = AxisXns.UserDefinedReferenceSystem.Axis2 = AxisYns.UserDefinedReferenceSystem.Type = RotatedSystemTypens.UserDefinedReferenceSystem.RotationAngles.X = 0ns.UserDefinedReferenceSystem.RotationAngles.Y = 0ns.UserDefinedReferenceSystem.RotationAngles.Z = 45 * 3,14159265359/180' ustawić dane podpory węzłowejiModData.PrepareModificationiNs.SetData nsiModData.FinishModificatione:Jeżeli Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicKoniec podrzędny
Program pobiera istniejącą podporę węzłową z aktualnie otwartego modelu i modyfikuje ją. Ponieważ układ współrzędnych zdefiniowany przez użytkownika nie jest bezpośrednią częścią interfejsu podpory węzłowej, obrót można oczywiście przenieść również podczas tworzenia podpory węzłowej.
Parametry obliczeniowe przypadku obciążenia nie mogą być początkowo ustawione podczas jego tworzenia, ale dopiero później, za pomocą interfejsu istniejącego przypadku obciążenia. Aby uzyskać interfejs przypadku obciążenia, należy najpierw pobrać interfejsy 'IModel' i 'ILoads':
Sub test_analysis_parameters ()Dim iApp As RFEM5.ApplicationUstaw iApp = GetObject (, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'pobierz interfejs obciążeńDim iLds As RFEM5.iLoadsUstaw iLds = iMod.GetLoads'pobierz interfejs przypadku obciążeniaDim iLc Jak w RFEM5.ILoadCaseUstaw iLc = iLds.GetLoadCase (1, AtNo)'uzyskać parametry analizyDim param_analy As RFEM5.AnalysisParametersparam_analy = iLc.GetAnalysisParameters'zmienić parametry analizyparam_analy.Method = Postkrytycznyparam_analy.ModifyLoadingByFactor = Trueparam_analy.LoadingFactor = 1.5'...'ustawić nowe parametry analizyiLd.PrepareModyfikacjaiLc.SetAnalysisParameters param_analyiLds.FinishModificatione:Jeżeli Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicKoniec podrzędny
Użyj 'ILoads.GetLoadcase', aby uzyskać interfejs dla określonego przypadku obciążenia. Interfejs ten zawiera funkcje „GetAnalysisParameters” i „SetAnalysisparameters”, których można użyć do odczytywania i zapisywania parametrów.
Ta sama procedura dotyczy również kombinacji obciążeń.
Aby usunąć elementy, dostępna jest funkcja "DeleteObjects ()" w interfejsie danych modelu. Usunięcie wszystkich prętów przebiega w następujący sposób:
Należy pamiętać, że funkcja "DeleteObjects" działa tylko z numerem obiektu, a nie z indeksem obiektu. Liczby te są przesyłane jako ciąg znaków, oddzielone przecinkami.
Z tego powodu najpierw należało pobrać wszystkich członków. Następnie pole pręta zostało zapętlone i wszystkie numery prętów zostały wprowadzone do ciągu.
Odkształcenia prętów można odczytać na przykład za pomocą funkcji "GetMemberDeformations (). Funkcja ta oczekuje numeru, rodzaju metody liczenia prętów (nr pręta/numer na liście) oraz układu współrzędnych, który ma zostać zastosowany. Można wybrać, czy ma zostać zastosowany lokalny układ osi, główny układ osi czy globalny układ współrzędnych:
Sub test_results_member_axis ()Dim iApp As RFEM5.ApplicationUstaw iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'pobierz interfejs do obliczeńDim iCalc As RFEM5.ICalculation2Ustaw iCalc = iMod.GetCalculation'pobierz interfejs do wynikówDim iRes As RFEM5.IResults2Ustaw iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)'otrzymuj deformacje w lokalnym układzie współrzędnychDim memDefs_L () As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations (1, AtNo, osie lokalne)'otrzymuj deformacje w globalnym układzie współrzędnychDim memDefs_G () As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'otrzymuj deformacje w głównym układzie współrzędnychDim memDefs_P () As RFEM5.MemberDeformationsmemDefs_P = iRes.GetMemberDeformations (1, AtNo, LocalPrincipalAxes)e:Jeżeli Err.Number <> 0 to MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicZakończ sub
Mały program odczytuje lokalne odkształcenia (memDefs_L) w osiach pręta i osiach głównych (memDefs_P) oraz globalne odkształcenia w osiach pręta (memDefs_G).
Parametry modelu można modyfikować za pomocą interfejsu IModel (od IModel3):
Sub test_parametr ()Dim iApp As RFEM5.ApplicationUstaw iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim j As Integerj = iApp.GetModelCountDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo eDim formParams () As RFEM5.FormulaParameter' uzyskaj wszystkie parametry formułyformParams = iMod.GetFormulaParametry' usuń wszystkie parametry formułyiMod.CleanFormulaParametry' ustawić listę parametrów formułyReDim Zachowaj formParams(0 To UBound(formParams, 1) + 1)formParams(UBound(formParams, 1)).Name = "p"formParams(UBound(formParams, 1)).Unit = "m"formParams (UBound (formParams, 1)).UnitType = LengthUnitTypeformParams(UBound(formParams, 1)).Value = 0formParams(UBound(formParams, 1)).ValueType = DoubleTypeformParams(UBound(formParams, 1)).Comment = "nowy parametr"formParams(UBound(formParams, 1)).Formula = "b/3"formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"iMod.SetFormulaParametry formParamse:Jeżeli Err.Number <> 0 to MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicZakończ sub
Odczytanie wszystkich parametrów jest możliwe tylko przy użyciu funkcji GetFormulaParameters (). Zmodyfikowane lub nowe parametry można następnie przenieść ponownie w postaci listy za pomocą funkcji SetFormulaParameters (). Dzięki temu nie można odczytać ani zapisać poszczególnych parametrów.
Należy pamiętać, że "Wartość" związana z typem (ValueTyp) i jednostką (Unit) musi mieścić się w zdefiniowanych granicach (RangeOfValues), w przeciwnym razie pojawi się komunikat o błędzie. Jeżeli wartość jest obliczona, jak w przykładzie, nie ma ona znaczenia, a wartość obliczona ze wzoru (wzór) musi mieścić się w określonych granicach.
Opcja "Połącz linie/pręty" może być zaimplementowana za pomocą funkcji "ConnectLines ()" i "ConnectMembers ()". Obie funkcje oczekują ciągu znaków z numerami linii lub prętów:
Sub test_connect ()Dim iMod As RFEM5.modelUstaw iMod = GetObject(, "RFEM5.Model")iMod.GetApplication.LockLicenseOn Error GoTo eDim iModData As RFEM5.IModelData2Ustaw iModData = iMod.GetModelData ()iModData.PrepareModificationiModData.ConnectLines („3,4”)iModData.ConnectMembers („1,2”)iModData.FinishModificatione:Jeżeli Err.Number <> 0 to MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicZakończ sub
W tym przykładzie Linia 1 i Linia 2 są połączone, a węzeł został utworzony w punkcie przecięcia. To samo dotyczy Prętu 1 i Prętu 2, dla których tworzony jest nowy węzeł w punkcie przecięcia.
Współczynniki dla długości efektywnych są przenoszone przy użyciu interfejsu dla pręta (IMeber), który nosi nazwę SetEffectiveLengths () . Aby odczytać dane, użyj GetEffectiveLengths ():
//otrzymanie interfejsu do uruchomienia aplikacji RFEM.iApp = Marshal.GetActiveObject("RFEM5.Application") jako IApplication;iApp.LockLicense ();//pozyskaj interfejs do aktywnego modelu w RFEM.iModel = iApp.GetActiveModel ();//pobranie interfejsu do danych modelu.IModelData2 iModData = iModel.GetModelData () as IModelData2;//pobierz interfejs do pręta 1IMember iMem = iModData.GetMember (1, ItemAt.AtNo);MemberEffectiveLengths memEffLen = iMem.GetEffectiveLengths ();memEffLen.No = 1;memEffLen.CheckBucklingLoad = true;memEffLen.Enabled = true;memEffLen. FactorU = 1,1;memEffLen. FactorV = 1,2;memEffLen.FactorY = 1.3;memEffLen. Factor Z = 1,4;//ustaw nowe dane dotyczące długości efektywnychiModData.PrepareModification();iMem.SetEffectiveLengths(memEffLen);iModData.FinishModification();
Należy pamiętać, że odczytanie właściwości dla długości efektywnych jest możliwe tylko dla długości efektywnych (np. EffectiveLengthY) konstrukcji MemberEffectiveLengths oraz właściwości Krytyczne Obciążenie Wyboczeniowe.