Program RFEM 6 pro statické výpočty tvoří základ modulárního softwarového systému. Hlavní program RFEM 6 slouží k zadávání konstrukcí, materiálů a zatížení u rovinných i prostorových konstrukčních systémů, které se skládají z desek, stěn, skořepin a prutů. Program umožňuje vytvářet smíšené konstrukce, stejně jako modelovat tělesa a kontaktní prvky.
RSTAB 9 je výkonný program pro analýzu 3D prutových konstrukcí, který statikům pomáhá vyhovět požadavkům moderního stavebního inženýrství a odráží nejnovější trendy v oboru.
Jste často příliš dlouho zaměstnáni výpočtem průřezů? Software Dlubal a samostatný program RSECTION vám usnadní práci stanovením a analýzou napětí pro různé průřezy.
Víte vždy, odkud vítr vane? Ve směru inovace, samozřejmě! S RWIND 2 máte k dispozici program, který využívá digitální větrný tunel pro numerickou simulaci proudění větru. Program toto proudění aplikuje na libovolné geometrie budov a stanoví zatížení větrem působící na jejich povrch.
Hledáte přehled oblastí zatížení sněhem, větrem a zemětřesením? Pak jste zde správně. Mapy oblastí zatížení umožňují rychle a snadno stanovit oblasti zatížení sněhem, větrem a zemětřesením podle Eurokódu a dalších mezinárodních norem.
Chcete si vyzkoušet sílu programů Dlubal? Je to vaše příležitost! S bezplatnou 90denní plnou verzí si můžete všechny naše programy plně otestovat.
V příkladu programu je nejprve vytvořena konzola z profilu IPE 200. Následně se na ní aplikuje zatížení na prut 3,5 kN a provede se výpočet.
Tato tabulka je dostupná na řádku 34:
Metoda ResultTables.NodesDeformations() vyžaduje 3 argumenty. Nejprve se určí, jaký typ výsledků se má načíst. Mohou to být výsledky pro
ResultTables.NodesDeformations()
.
Poté se zadá číslo zatěžovacího stavu, kombinace zatížení atd. Nakonec se do metody zadá číslo uzlu.
Vrácená hodnota d metody je seznam, který obsahuje slovník. V řádku 37 se zobrazí celé d. Řádek 40 ukazuje, jak lze přistupovat k určité hodnotě. [0] je přitom index seznamu a ['displacement_z'] je klíč slovníku.
d
[0]
['displacement_z']
Deformace prutů je možné načíst např. pomocí funkce "GetMemberDeformations()". Tato funkce očekává číslo, typ metody počítání pro pruty (číslo prutu / číslo v seznamu) a jaký souřadný systém se má použít. Přitom je možné vybrat, zda se použije lokální osový systém, hlavní osový systém, nebo globální souřadný systém:
Sub test_results_member_axis()Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'get interface for calculationDim iCalc As RFEM5.ICalculation2Set iCalc = iMod.GetCalculation'get interface for resultsDim iRes As RFEM5.IResults2Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)'get deformations in local coordinate systemDim memDefs_L() As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations(1, AtNo, LocalMemberAxes)'get deformations in global coordinate systemDim memDefs_G() As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'get deformations in principal coordinate systemDim memDefs_P() As RFEM5.MemberDeformationsmemDefs_P = iRes.GetMemberDeformations(1, AtNo, LocalPrincipalAxes)e:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Malý program pro prut načte lokální deformace (memDefs_L) v osách prutu a hlavních osách (memDefs_P) a globální deformace v osách prutu (memDefs_G).
Stejně jako všechny ostatní výsledky lze i výslednice řezu načíst pomocí IModel3 > ICalculation2 > IResults2. Rozhraní k výsledkům poskytuje funkce GetResultant, která při zadání čísla řezu a typu průběhu výsledků vrátí strukturu ResultantForce. Tato konstrukce zahrnuje mimo jiné síly a momenty jako vektor:
Při programování pomocí rozhraní COM má uzlová podpora vlastnost 'ReferenceSystem' a 'UserDefinedReferenceSystem'. Pomocí 'ReferenceSystem' je možné definovat typ (např. "Natočený" nebo "Souřadný systém") uživatelsky definovaného souřadného systému a v závislosti na tom, jaký typ byl vybrán, je tento typ poté definován pomocí 'UserDefinedReferenceSystem'.
V následujícím příkladu byl nastaven typ "Souřadný systém" a kromě toho se vytvořil uživatelsky definovaný souřadný systém:
// create user defined coordinate systemIGuideObjects iGuide = iModel.GetGuideObjects();// delete cosy No 2UserCoordinateSystem[] csList = 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(); } }}// define new cosy No 2UserCoordinateSystem uCs = new UserCoordinateSystem();uCs.Name = "test";uCs.Comment = "test";uCs.No = 2;uCs.IsValid = true;uCs.Origin.X = 1;uCs.Origin.Y = 0;uCs.Origin.Z = 1;uCs.Point1.X = 2;uCs.Point1.Y = 0;uCs.Point1.Z = 1;uCs.Point2.X = 1;uCs.Point2.Y = 1;uCs.Point2.Z = 2;// set cosy No 2iGuide.PrepareModification();iGuide.SetCoordinateSystem(uCs);iGuide.FinishModification();// create nodal support with user defined cosyNodalSupport ns = new NodalSupport();ns.SupportConstantX = -1;ns.SupportConstantY = -1;ns.SupportConstantZ = -1;ns.RestraintConstantX = -1;ns.RestraintConstantY = 0;ns.RestraintConstantZ = -1;ns.Comment = "user defined cosy";ns.NodeList = "1";ns.ReferenceSystem = ReferenceSystemType.UserDefinedSystemType;ns.UserDefinedReferenceSystem.ObjectNo = 2;ns.UserDefinedReferenceSystem.Type = UserDefinedAxisSystemType.DefinedCoordinateSystemType;iModData.PrepareModification();iModData.SetNodalSupport(ns);iModData.FinishModification();
Aby bylo možné vytvořit souřadný systém, je zapotřebí rozhraní pro pomocné objekty: 'IGuideObjects'. Pomocí funkce 'DeleteObjects()' se nejdříve smaže stávající souřadný systém s číslem 2 a vytvoří se nový pomocí 'SetCoordinateSystem()'. Do úvahy je nutné vzít opět blok 'Prepare/Finish-Modification'-Block, aby bylo možné předat nový prvek.
Uzlová podpora se předává pomocí rozhraní 'IModelData'. Také zde je zapotřebí blok 'Prepare/Finish-Modification'.
Napětí na ploše je možné načíst pomocí rozhraní COM. Nejdříve je potřeba rozhraní k modelu (IModel) a poté rozhraní pro výpočet (ICalculation2). Pomocí tohoto rozhraní lze získat rozhraní pro výsledky (IResults2):
Sub stresses_surfaces_example()Dim iApp As RFEM5.ApplicationDim iModel As RFEM5.modelSet iModel = GetObject(, "RFEM5.Model")On Error GoTo EIf Not iModel Is Nothing Then ' get interface from model Set iApp = iModel.GetApplication iApp.LockLicense ' get interface from calculation Dim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation ' get interface from results from loadcase 1 Dim iRes As RFEM5.IResults2 Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1) ' get equivalent stresses Dim str_equ() As RFEM5.SurfaceEquivalentStresses str_equ = iRes.GetSurfaceEquivalentStresses(1, AtNo, VonMisesHypothesis) End IfE:If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.descriptionEnd IfIf Not iApp Is Nothing Then iApp.UnlockLicenseEnd If
Funkce GetSurfaceEquivalentStresses vyžaduje zadání hypotézy výpočtu. Ve výše uvedeném případě se načtou výsledky von Misesova napětí. Je třeba si uvědomit, že rozhraní COM používá jednotky SI, takže napětí se přenáší v N/m².
Sub test_section()' get interface from the opened model and lock the licence/program Dim iModel As RFEM5.IModel3 Set iModel = GetObject(, "RFEM5.Model") iModel.GetApplication.LockLicense On Error GoTo E Dim iSecs As RFEM5.ISections Set iSecs = iModel.GetSections()
' first delete all sections iSecs.PrepareModification iSecs.DeleteObjects ("All") iSecs.FinishModification ' set section on solid Dim sec As RFEM5.Section sec.EdgePointA.X = 2 sec.EdgePointA.Y = 5 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 8 sec.EdgePointB.Z = 0 sec.no = 1 sec.Name = "solid section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = False sec.Type = SectionOnSolidSectionLine sec.ObjectList = "1" iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' set section on surface sec.EdgePointA.X = 2 sec.EdgePointA.Y = 0 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 3 sec.EdgePointB.Z = 0 sec.no = 2 sec.Name = "surface section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = True sec.Type = SectionViaSurfacePlane sec.ObjectList = "1" sec.Vector.X = 0 sec.Vector.Y = 0 sec.Vector.Z = 1 iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' get results Dim iCalc As ICalculation2 Set iCalc = iModel.GetCalculation Dim iRes As IResults2 Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1) Dim secRes() As RFEM5.SectionResult secRes = iRes.GetResultsInSection(2, AtNo, ShearForceVy,ContinuousDistributionWithinObjects, False)
Sub test_comment()' get interface from the opened model and lock the licence/program Dim iModel As RFEM5.IModel3 Set iModel = GetObject(, "RFEM5.Model") iModel.GetApplication.LockLicenseOn Error GoTo e Dim iModelData As RFEM5.IModelData2 Set iModelData = iModel.GetModelData Dim iGuiObj As RFEM5.IGuideObjects Set iGuiObj = iModel.GetGuideObjects Dim comm As RFEM5.Comment ' set frame type comm.Frame = CircularFrameType ' set reference object type comm.ObjectType = GeneralObjectType comm.ObjectNo = 1 ' set point if GeneralObjectType is choosen comm.Point.X = 2 comm.Point.Y = 4 comm.Point.Z = 6 ' set offset from reference object comm.Offset.X = 0.5 comm.Offset.Y = 1 comm.Offset.Z = 1.5 comm.Rotation = 1 ' set text of comment comm.Text = "testcomment" ' transfer object to program iGuiObj.PrepareModification iGuiObj.SetComment comm iGuiObj.FinishModification e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source Set iModelData = Nothing iModel.GetApplication.UnlockLicense Set iModel = NothingEnd Sub
Dim model As RFEM5.model Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense On Error GoTo e Dim data As IModelData Set data = model.GetModelData Dim members(0) As RFEM5.Member members(0).No = 3 members(0).LineNo = 12 members(0).Type = ResultBeamType members(0).StartCrossSectionNo = 1 members(0).EndCrossSectionNo = 1 members(0).Comment = "result beam 1" data.PrepareModification data.SetMembers members data.FinishModification
Dim iMem As IMember Set iMem = data.GetMember(3, AtNo) Dim iRMem As IResultBeam Set iRMem = iMem.GetExtraData Dim RMem As ResultBeam RMem = iRMem.GetData RMem.IncludeSurfaces = "1" RMem.IncludeSolids = "all" RMem.Integrate = WithinCuboidGeneral Dim params(0 To 3) As Double RMem.Parameters = params RMem.Parameters(0) = 0.5 RMem.Parameters(1) = 0.5 RMem.Parameters(2) = 0.1 RMem.Parameters(3) = 0.1 data.PrepareModification iRMem.SetData RMem data.FinishModification
Ja, Lagerkräfte einzelner Flächen können im RFEM-Tabellenfenster in Tabelle "4.21 Flächen - Kontaktspannungen" angezeigt werden. Tuto tabulku je možné otevřít kliknutím pravým tlačítkem myši na jednu ze záložek tabulky "4.xx - Výsledky" (viz Obrázek 01).
Kromě kontaktních napětí lze vidět také příslušné podporové síly (viz Obrázek 02).
Grafiku bohužel nelze přímo exportovat ve formátu JPG nebo BMP. Pomocí možnosti tisku ze schránky lze grafiku vkládat do jiných programů, které umožňují úpravy a ukládání jako soubor BMP nebo PNG. Změněná barva pozadí se však nepoužije.
Systém Windows nabízí příslušenství "Nástroj pro vystřihování". Jedná se o program sítotisku, který umožňuje vytvářet obrázky ve formátu GIF, PNG a JPG.
Existují samozřejmě také profesionální programy, jako například Snagit®. Při vkládání obrázků, například v aplikaci PowerPoint, byste neměli měnit velikost tažením za okraje, jinak bude zobrazení pixelové. Pokud ho chcete mít v jiné velikosti, můžete ho upravit v editoru obrázků (pixely atd.) Nebo vytisknout obrázek znovu z jiného pohledu.