Le logiciel de calcul de structure RFEM 6 constitue la base d'une famille de logiciels modulaires. Le logiciel de base RFEM 6 permet de définir la structure, les matériaux et les sollicitations de structures planes et spatiales composées de barres, plaques, voiles et coques. Vous pouvez aussi travailler sur des structures combinées constituées de solides et d'éléments de contact.
Grâce à RSTAB, l'ingénieur structure a accès à un logiciel de structures filaires 3D qui répond aux exigences du calcul de structure moderne et reflète l'état actuel des techniques de construction.
Vous passez souvent trop de temps à calculer des sections ? Les logiciels Dlubal et le programme autonome RSECTION vous facilitent la tâche en déterminant et en effectuant une analyse des contraintes pour différentes sections.
Savez-vous toujours d'où vient le vent ? Du côté de l'innovation, bien sûr ! Avec RWIND 3, vous disposez d’une soufflerie numérique pour la simulation numérique des flux de vent. Le programme simule ces flux autour de n'importe quelle géométrie de bâtiment et détermine les charges de vent sur les surfaces.
Vous souhaitez obtenir un aperçu des zones de charge de neige, des zones de vent et des zones sismiques ? Si tel est le cas, vous êtes au bon endroit. Utilisez notre outil de géolocalisation pour déterminer rapidement et efficacement les zones de neige, de vent et de sismicité selon l'Eurocode et d'autres normes internationales.
Souhaitez-vous tester la puissance des logiciels Dlubal Software ? C'est votre chance ! Avec la version complète gratuite de 90 jours, vous pouvez tester l'ensemble de nos logiciels.
Oui, cette opération est très simple. L’exemple suivant vous le montre.
Préparation
Les demandes Web dans l’outil de géolocalisation à l’aide de Python nécessitent :
Effectuer une demande Web de l’outil de géolocalisation Dlubal nécessite des informations associées à l’outil de géolocalisation Dlubal. Cette opération est expliquée dans l’article suivant à l’aide de l’exemple de la structure URL d’une demande :→ Contrôle des services Web (API)
Dans cet exemple, les informations suivantes sont utilisées, remplacez-les par les vôtres dans le script :
Exécution de la demande Web et lecture des données
Le script suivant effectue la demande au service Web de l’outil de géolocalisation et documente la durée et le contenu.
On obtient ainsi par exemple les résultats suivants :
Complément : Préparation du contenu de la demande Web
Le script suivant convertit le texte obtenu à partir du service Web de l’outil de géolocalisation sous forme de tableau. De plus, les valeurs de résultats sont séparées de leurs unités et enregistrées sous forme de fichier CSV et Excel.
Par exemple, on obtient les résultats suivants :
Vous pouvez exporter la géométrie déformée d’un modèle RFEM 6 en exportant le maillage déformé sous forme de fichier CSV à l’aide de l’interface du service Web et du script Python suivant :
Dans l'exemple de programme, un porte-à-faux est d'abord créé à partir d'un IPE 200. Celui-ci est chargé avec une charge de barre de 3,5 kN et le calcul est effectué.
Ce tableau est accessible à la ligne 34 :
La méthode ResultTables.NodesDeformations() requiert 3 arguments. Le type de résultats à lire doit d'abord être déterminé. Ces types de résultats peuvent être des :
ResultTables.NodesDeformations()
sein.
Le numéro du cas de charge, de la combinaison de charges, etc. doit ensuite être indiqué. Enfin, le numéro de nœud doit être transféré à la méthode.
La valeur de retour d de la méthode est une liste contenant un dictionnaire. Sur la ligne 37, d est affiché en entier. La ligne 40 indique comment accéder à une valeur spécifique. [0] est l'index de la liste et ['displacement_z'] est la clé du dictionnaire.
d
[0]
['displacement_z']
Dans les exemples de la page d'accueil (« cominterfaces-fr.zip »), le fichier EXCEL suivant est disponible pour le test :
cominterfaces-fr\SDK\Examples\Modules\Excel\RS-STEEL_EC3.xls
Dans ce tableau, il est possible d'obtenir les résultats suivants d'un modèle dans le tableau « Result design » :
Cas de charge
Section
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
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)
Comme tous les autres résultats, la résultante d'une section peut être lue via IModel3 → ICalculation2 → IResults2. L'interface avec les résultats est fournie par la fonction GetResultant, qui renvoie ensuite la structure ResultantForce lors de la définition du numéro de section et du type de distribution des résultats. Cette structure inclut, entre autres, les efforts et les moments comme vecteurs :
Les déformations des barres peuvent être lues à l'aide de la fonction « GetMemberDeformations() », par exemple. Cette fonction attend un nombre, le type de méthode de comptage des barres (numéro de barre/numéro dans la liste) et le système de coordonnées à utiliser. Vous pouvez choisir d'utiliser le système d'axes local, le système d'axes principal ou le système de coordonnées global :
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'obtenir l'interface pour le calculDim iCalc As RFEM5.ICalculation2Set iCalc = iMod.GetCalculation'obtenir l'interface pour les résultatsDim iRes As RFEM5.IResults2Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)'obtenir les déformations dans le système de coordonnées localDim memDefs_L() As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations(1, AtNo, LocalMemberAxes)'obtenir les déformations dans le système de coordonnées globalDim memDefs_G() As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'obtenir les déformations dans le système de coordonnées principalDim 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
Le petit programme lit les déformations locales (memDefs_L) dans les axes de barre et les axes principaux (memDefs_P) et les déformations globales dans les axes de barre (memDefs_G).
Les contraintes d'une surface peuvent être affichées via l'interface COM. Vous avez d'abord besoin de l'interface pour le modèle (IModel), puis de l'interface pour le calcul (ICalculation2). À l'aide de cette interface, vous pouvez obtenir l'interface pour les résultats (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
La fonction GetSurfaceEquivalentStresses requiert la spécification de l'hypothèse de calcul. Dans ce cas, les résultats de la contrainte de von Mises sont affichés. Veuillez noter que l'interface COM utilise des unités SI, la contrainte est donc transférée en N/m².