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.
La rotation d'un appui nodal est effectuée à l'aide d'un système de coordonnées défini par l'utilisateur. Dans l'exemple suivant, un appui nodal est en rotation à 45 ° autour de l'axe z. Il n'est pas nécessaire de définir un nouveau système de coordonnées via les nœuds. Dans ce cas, il suffit d'utiliser l'option RotatedSystemType, qui permet une rotation spatiale de l'appui via les trois rotations autour des axes x, y et z. La rotation est entrée en radians :
Sous test_appui_nodal ()Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'obtenir l'interface des données du modèleDim iModData As RFEM5.IModelData2Set iModData = iMod.GetModelData'obtenir l'interface de l'appui nodalDim iNs comme RFEM5.INodalSupportDéfinir iNs = iModData.GetNodalSupport (1, AtNo)'obtenir les données de l'appui nodalDim ns As RFEM5.NodalSupportns = iNs.GetData'modifier les donnéesns.ReferenceSystem = UserDefinedSystemTypens.UserDefinedReferenceSystem.Axis1 = AxisXns.UserDefinedReferenceSystem.Axis2 = AxeYns.UserDefinedReferenceSystem.Type = RotatedSystemTypens.UserDefinedReferenceSystem.RotationAngles.X = 0ns.UserDefinedReferenceSystem.RotationAngles.Y = 0ns.UserDefinedReferenceSystem.RotationAngles.Z = 45 * 3,14159265359/180'obtenir les données de l'appui nodaliModData.PrepareModificationiNs.SetData nsiModData.FinishModificatione:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Le programme prélève l'appui nodal existant du modèle actuellement ouvert puis le modifie. Le système de coordonnées défini par l'utilisateur ne faisant pas directement partie de l'interface INodalSupport de l'appui nodal, la rotation peut également être transférée lors de la création d'un appui nodal.
Les paramètres de calcul d'un cas de charge ne peuvent pas être définis initialement lors de sa création, mais uniquement par la suite à l'aide de l'interface du cas de charge existant. Pour obtenir l'interface d'un cas de charge, vous devez d'abord avoir les interfaces « IModel » et « ILoads » :
Sub test_analysis_parameters()Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e' get interface of loadsDim iLds As RFEM5.iLoadsSet iLds = iMod.GetLoads' get interface of load caseDim iLc As RFEM5.ILoadCaseSet iLc = iLds.GetLoadCase(1, AtNo)' get analysis parametersDim param_analy As RFEM5.AnalysisParametersparam_analy = iLc.GetAnalysisParameters' change analysis parametersparam_analy.Method = Postcriticalparam_analy.ModifyLoadingByFactor = Trueparam_analy.LoadingFactor = 1.5' ...' set new analysis parametersiLds.PrepareModificationiLc.SetAnalysisParameters param_analyiLds.FinishModificatione:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Utilisez « ILoads.GetLoadcase » pour obtenir l'interface pour un cas de charge spécifique. Cette interface contient les fonctions « GetAnalysisParameters » et « SetAnalysisparameters », qui permettent de lire et d'écrire des paramètres.
La même procédure s'applique également aux combinaisons de charges.
La fonction « DeleteObjects() » est disponible dans l'interface de données du modèle et permet d'en supprimer des éléments. Les barres sont alors supprimées comme suit :
Veuillez noter que la fonction « DeleteObjects » ne fonctionne qu'avec le numéro d'objet et non avec l'index d'objet. Ces numéros sont transférés sous forme de chaîne et séparés par des virgules.
Pour cette raison, toutes les barres doivent d'abord être récupérées. Le champ des barres est ensuite exécuté dans une boucle et tous les numéros de barre sont entrés dans la chaîne.
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 paramètres d'un modèle peuvent être modifiés à l'aide de l'interface IModel (depuis IModel3) :
Sub test_parameter()Dim iApp As RFEM5.ApplicationSet 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' obtenir tous les paramètres de la formuleformParams = iMod.GetFormulaParameters' supprimer tous les paramètres de formuleiMod.CleanFormulaParameters' définir la liste des paramètres de formuleReDim Preserve 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 = "new parameter"formParams(UBound(formParams, 1)).Formula = « b/3 »formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"iMod.SetFormulaParameters formParamse:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Il est uniquement possible de lire tous les paramètres à l'aide de la fonction GetFormulaParameters(). Les paramètres modifiés ou nouveaux peuvent ensuite être à nouveau transférés sous forme de liste à l'aide de la fonction SetFormulaParameters (). Ainsi, aucun paramètre individuel ne peut être lu ou écrit.
Il est à noter que la « Valeur » relative à son type (ValueTyp) et à son unité (Unit) doit être dans les limites définies (RangeOfValues), sinon un message d'erreur apparaît. Si la valeur est calculée, comme dans l'exemple, cela n'est pas pertinent et la valeur calculée avec la formule (Formula) doit être dans les limites, si les limites sont définies.
La fonction « SelectObjects » de l'interface IModelData (ou IModeldata2, etc.) permet de sélectionner les objets. Cette fonction a besoin du type d'objet et du/des numéro(s) d'objet sous forme de chaîne de caractères. Voici un court exemple :
Sub select_objects()Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")model.GetApplication.LockLicenseOn Error GoTo e Dim iModdata As IModelData2 Set iModdata = model.GetModelData ' enable Selections iModdata.EnableSelections True ' select nodes 2-3 and lines 1 and 3 iModdata.SelectObjects ModelObjectType.NodeObject, "2-3" iModdata.SelectObjects ModelObjectType.LineObject, "1,3" ' deselect nodes and lines iModdata.SelectObjects ModelObjectType.NodeObject, "" iModdata.SelectObjects ModelObjectType.LineObject, "" e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseSet iModdata = NothingSet model = NothingEnd Sub
Les sélections sont activées dans la partie supérieure, puis les nœuds 2 à 3 ainsi que les lignes 1 et 3 sont sélectionnés. Les lignes et les nœuds sont ensuite désélectionnés à l'aide d'une chaîne vide.
Si vous souhaitez lire ou modifier les objets sélectionnés, vous devez utiliser la fonction « IModelData.EnableSelections » (également disponible dans le code ci-dessus). Si la fonction est appelée avec « True », seuls les nœuds sélectionnés sont lus avec la fonction « IModelData.GetNodes() », par exemple.