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.
Przykładowy program pokazuje dwie różne metody tworzenia podpór węzłowych. Typ wyliczeniowy NodalSupportType jest używany dla pierwszej podpory węzłowej.
NodalSupportType
Alternatywnie można również przenieść listę. Lista musi zawierać sześć wartości. Pierwsze trzy wartości określają stopnie swobody przemieszczenia, a ostatnie trzy stopnie swobody dla skręcania.
Wartość inf oznacza, że stopień swobody jest ustalony. Przy wartości 0 stopień swobody nie jest dostępny. Wartość numeryczna definiuje sprężynę.
inf
0
W przykładowym programie najpierw tworzony jest wspornik z IPE 200. Jest on poddany obciążeniu na pręcie 3,5 kN i przeprowadzane są obliczenia.
Ta tabela jest dostępna w wierszu 34:
Metoda ResultTables.NodesDeformations () wymaga 3 argumentów. Najpierw określa się, jakiego rodzaju wyniki mają zostać odczytane. Mogą być to wyniki
ResultTables.NodesDeformations ()
sein.
Następnie podany zostanie numer przypadku obciążenia, kombinacji obciążeń itp. W końcu, numer węzła zostaje przeniesiony do metody.
Wartość zwrotna d metody jest listą zawartą w słowniku. W wierszu 37, d jest wyświetlane w całości. Wiersz 40 pokazuje, w jaki sposób można uzyskać dostęp do określonej wartości. [0] jest indeksem listy, a [' displacement_z'] jest kluczem słownika.
d
[0]
[' displacement_z']
Poniższe makro VBA przedstawia tworzenie podpory węzłowej z nieliniowością "Częściowa aktywność". Kod źródłowy można znaleźć w sekcji Pliki do pobrania.
Opcja jawna
'-------------------------------------PodzbiórPodpory()'-------------------------------------Dim model As RFEM5.modelWymiarowanie danych As IModelDataPodpora wym.(0) As RFEM5.NodalSupportDim ISup As RFEM5.INodalSupportDim ISupPA As RFEM5.IPartialActivityDim nlPA As PartialActivity
e: Jeżeli Err.Number <> 0 Wtedy MsgBox Err.Description, , Err.Source
End Sub
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.
Poniższe makro VBA pokazuje tworzenie podpory węzłowej z wykresem nieliniowości. Kod źródłowy można znaleźć w sekcji Pliki do pobrania.
Na potrzeby programowania przy użyciu interfejsu COM podpora węzłowa posiada właściwości „ReferenceSystem” oraz „UserDefinedReferenceSystem”. „ReferenceSystem“ umożliwia zdefiniowanie typu układu współrzędnych zdefiniowanego przez użytkownika (na przykład „Obrócony“ lub „Układ współrzędnych“), który w zależności od wybranego typu jest następnie definiowany poprzez „UserDefinedReferenceSystem“.
W poniższym przykładzie jako typ został ustawiony "Układ współrzędnych", a dla niego również został utworzony układ współrzędnych:
//utwórz układ współrzędnych zdefiniowany przez użytkownikaIGuideObjects iGuide = iModel.GetGuideObjects ();//usuń przytulny nr 2csList = iGuide.GetCoordinateSystems ();if (csList.Length > 1){for (int i = 0; i <csList.Length; ++ i){if (csList[i].No == 2){iGuide.PrepareModification ();iGuide.DeleteObjects (GuideObjectType.CoordinateSystemObject, "2");iGuide.FinishModification ();}}}//zdefiniuj nowy przytulny nr 2uC systemu współrzędnych użytkownika = new UserCoordinateSystem ();uCs.Name = "test";uCs.Comment = "test";uCs.No = 2;uCs.IsValid = prawda;uCs.Origin.X = 1;uCs.Origin.Y = 0;uCs.Origin.Z = 1;uCs.Punkt1.X = 2;uCs.Point1.Y = 0;uCs.Punkt1.Z = 1;uCs.Punkt2.X = 1;uCs.Punkt2.Y = 1;uCs.Punkt2.Z = 2;//ustaw przytulny nr 2iGuide.PrepareModification ();iGuide.SetCoordinateSystem (uCs);iGuide.FinishModification ();//utworzenie podpory węzłowej ze zdefiniowaną przez użytkownika funkcją cosyNodalSupport ns = nowy NodalSupport ();ns.SupportConstantX = -1;ns.SupportConstantY = -1;ns.SupportConstantZ = -1;ns.RestraintConstantX = -1;ns.RestraintConstantY = 0;ns.RestraintConstantZ = -1;ns.Comment = "przytulne zdefiniowane przez użytkownika";ns.NodeList = "1";ns.ReferenceSystem = ReferenceSystemType.UserDefinedSystemType;ns.UserDefinedReferenceSystem.ObjectNo = 2;ns.UserDefinedReferenceSystem.Type = UserDefinedAxisSystemType.DefinedCoordinateSystemType;iModData.PrepareModification();iModData.SetNodalSupport(ns);iModData.FinishModification();
Aby utworzyć układ współrzędnych, wymagany jest interfejs dla obiektów pomocniczych: 'IGuideObjects'. Dzięki funkcji „DeleteObjects ()” najpierw usuwany jest istniejący układ współrzędnych o numerze 2, a następnie tworzony za pomocą funkcji „SetCoordinateSystem (). Proszę zwrócić uwagę na blok "Przygotowanie/wykończenie-modyfikacja", aby móc przenieść nowy element.
Podpora węzłowa jest przenoszona przez interfejs "IModelData". Ponownie, wymagany jest blok "Przygotowanie/zakończenie-modyfikacji".
Tak, istnieje możliwość tworzenia zwolnień węzłowych za pomocą interfejsu COM. Oto przykład:
Sub node_release ()Dim iApp As RFEM5.ApplicationDim iModel As RFEM5.model On Error GoTo e Ustaw iApp = GetObject(, "RFEM5.Application")iApp.LockLicense test = iApp.GetModelCountUstaw iModel = iApp.GetModel (0) Dim iModeldata As RFEM5.iModeldataUstaw iModeldata = iModel.GetModelData ' do ustawienia zwolnienia węzłowego wymagane jest zwolnienie przegubu prętowego' obiekt dla układu osi nie może być taki sam jak ze zwolnionymDim NodRel As NodalReleaseNodRel.location = Oryginalny TypLokacjinodRel.AxisSystem = LocalFromLinenodRel.AxisSystemFromObjectNo = 2nodRel.Comment = "przetestuj zwolnienie węzłowe"Przegub Prętowy nr = 1węzełRel.Node = 1NodRel.ReleasedMembers = 1 iModeldata.PrepareModificationiModeldata.SetNodalRelease nodReliModeldata.FinishModification e: Jeżeli Err.Number <> 0 to MsgBox Err.description, , Err.Source iApp.UnlockLicense
Zakończ sub
Należy pamiętać, że lokalny układ osi może różnić się od tych samych elementów, które są zwalniane.