Preguntas más frecuentes (FAQ)

Buscar pregunta más frecuente




Soporte técnico 24/7

Base de datos de conocimientos

Además de nuestro soporte técnico (por ejemplo, por medio del chat), podrá encontrar varios recursos en nuestra página web que pueden ayudarle con su cálculo y diseño de estructuras utilizando Dlubal Software.

Boletín de noticias

Reciba información de manera regular sobre noticias, consejos útiles, eventos programados, ofertas especiales y cupones.

  • Respuesta

    Una imperfección se considera carga y se transfiere a través de la interfaz del caso de carga. Siempre que se haya obtenido la interfaz para el modelo, se recupera la interfaz con las cargas (ILoads), seguida de la interfaz con el caso de carga 1 (ILoadCase), si ya se ha creado:

    'establecer los conductos de carga
    Dim iLoads as iLoads
    Establezca iLoads = model.GetLoads
            
    'obtener caso de carga'.
    Dim iLc1 As ILoadCase
    Establecer iLc1 = iLoads.GetLoadCase (1, AtNo)
            
    'definir imperfección
    Dim imperf Como imperfección
    imperf.Comment = "test"
    imperf.Direction = LocalZType
    imperf.Inclinación = 200
    imperf.no = 1
    imperf.ObjectList = 1
    imperf.Precamber = 300
    imperf.PrecamberActivity = ActivityAccording_ES_1993_1_1
            
    "Establecer imperfección"
    iLc1.PrepareModification
    iLc1.SetImperfection imperf
    iLc1.FinishModification

    A continuación, se rellenan primero los datos de la imperfección, aquí para la barra 1, y luego se transfieren dentro de un bloque Preparar-/TerminarModificación del caso de carga Interfaces.

  • Respuesta

    Para modificar un elemento existente, debe obtener la interfaz para el elemento correspondiente, aquí un ejemplo de una barra:

    Dim iModel As RSTAB8.model
    Establecer iModel = GetObject (, "RSTAB8.Model")
    iModel.GetApplication.LockLicense
        
    Dim iModData As IModelData
    Establecer iModData = iModel.GetModelData
        
    Dim iMem como RSTAB8.IMember
    Establecer iMem = iModData.GetMember (1, AtNo)

    Use este código para obtener la interfaz para la barra 1, que ya debe estar creada. Luego, puede usar el método .GetData () de la interfaz para obtener los datos de la barra.

    Si desea modificar los datos (como la rotación de la barra aquí), puede transferirlos posteriormente al programa dentro de un bloque Prepare-/FinishModification con el método .SetData ().


    Dim mem Como RSTAB8.Member
    mem = iMem.GetData
        
    Rango.Rotación.Angulo = 0.5
    mem.Rotation.Type = RSTAB8.Angle
       
    iModData.PrepareModification
    iMem.SetData mem
    iModData.FinishModification
  • Respuesta

    El siguiente código muestra cómo obtener diferentes parámetros de cálculo a través de la interfaz COM. También se muestra cómo especificar una configuración para desactivar la rigidez a cortante:

    'obtener interfaz del modelo
    Establecer iApp = iModel.GetApplication ()
    iApp.LockLicense
        
    'Obtener interfaz de cálculo
    Dim iCalc As RFEM5.ICalculation2
    Establecer iCalc = iModel.GetCalculation
        
    'obtener la teoría de flexión de superficies
    Dim calc_bend Dim RFEM5.BendingTheoryType
    calc_bend = iCalc.GetBendingTheory
        
    'obtener configuraciones para no linealidades
    Dim calc_nl As RFEM5.CalculationN Linealities
    calc_nl = iCalc.GetNonlinearities
        
    "Obtener ajustes de precisión y tolerancia"
    Dim calc_prec As RFEM5.PrecisionAndTolerance
    calc_prec = iCalc.GetPrecisionAndTolerance
        
    'Obtener la configuración de cálculo
    Dim calc_sets As RFEM5.CalculationSettings
    calc_sets = iCalc.GetSettings
        
    'obtener opciones de cálculo
    Dim calc_opts As RFEM5.CalculationOptions
    calc_opts = iCalc.GetOptions
        
    "Establezca ShearStiffness en falso
    calc_opts.ShearStiffness = False
    iCalc.SetOptions calc_opts

    En el anexo, hay una macro EXCEL para descargar.
  • Respuesta

    En primer lugar, se crea una viga de resultados exactamente como una barra normal:

        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

    Barras de luz (0) Como RFEM5.Member
        
    barras (0) .No = 3
    barras (0) .LíneaNo = 12
    barras (0) .Type = ResultBeamType
        
    barras (0) .StartCrossSectionNo = 1
    barras (0) .EndCrossSectionNo = 1
        
    barras (0) .Comment = 'beam result 1'

        data.PrepareModification
    data.SetMembers members
    data.FinishModification

    Luego, la interfaz IMember se tiene que tomar de la barra correspondiente, y el método GetExtraData se usa para obtener la interfaz IResultMember. Esta interfaz ahora se puede usar para leer o escribir los datos de ResultMember. Tenga en cuenta que se requiere un bloque Prepare-/Finishmodification al escribir:

    Dim iMem As IMember
    Establecer iMem = data.GetMember (3, AtNo)
        
    Dim iRMem As IResultBeam
    Establecer iRMem = iMem.GetExtraData
        
    Dim RMem como ResultBeam
    RMem = iRMem.GetData
        
    RMem.IncludeSurfaces = "1"
    RMem.IncludeSolids = "all"
        
    RMem.Integrate = WithinCuboidGeneral
        
    Dim parámetros (0 a 3) como dobles
        
    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

    Se adjuntan la macro EXCEL completa y el archivo de prueba correspondiente.
  • Respuesta

    La fricción representa una no linealidad y, por lo tanto, solo se puede modificar a través de la interfaz con la articulación de liberación de la articulación.

    Para este propósito, primero se debe crear la liberación del extremo de la barra, si aún no está disponible. Luego, la interfaz IMemberHinge se lleva a la liberación del extremo de la barra y luego a la no linealidad (aquí IFricción ). Luego, puede usar los métodos GetDataSetData para modificar los datos (aquí Friction ):

    Sub SetMemberHingeFriction ()

        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

    Bisagra oscura (0 a 0) como RFEM5.Manda

    articulación (0) .No = 1
    articulación (0) .RotationalConstantX = 1
    articulación (0) .Constante rotativoY = 2
    articulación (0) .Constant angular = 3
    articulación (0) .TranslationalConstantX = 4
    articulación (0) .ConstantTranslationalY = 5
    articulación (0) .ContrasteTranslacionalZ = 6
    articulación (0) .Comment = "Articulación de barra 1"
        
    articulación (0) .TranslationalNonlinearityX = FrictionAType

        data.PrepareModification
    articulación.SetMemberHinges
    data.FinishModification
        
    'Obtener interfaz para la articulación de la barra
    Dim Imemhing As IMemberHinge
    Establecer imemhing = data.GetMemberHinge (1, AtNo)
        
    'obtener interfaz para la fricción de no linealidad'
    Dim iFric As IFriction
    Establecer iFric = imemhing.GetNonlinearity (AlongAxisX)
        
    'obtener datos de fricción
    Dim fric Como fricción
    fric = iFric.GetData
        
    coeficiente fric.Cefficient1 = 0,3
        
    'establecer los datos de fricción
        data.PrepareModification
    iFric.SetData fric
    data.FinishModification
        
        
    e: si es Err.Number <> 0 entonces MsgBox Err.Description,, Err.Source

        Set data = Nothing
        model.GetApplication.UnlockLicense
        Set model = Nothing

    End Sub


    En el caso de la fricción Vy + Vz, se usa el Coeficiente2 para establecer el segundo coeficiente. La constante elástica en el cuadro de diálogo Fricción está controlada por el muelle traslacional de la liberación del extremo de la barra. En el caso concreto, esto es TranslationalConstantX para la dirección X (ver figura 01).

  • Respuesta

    El cálculo asíncrono se usa si un programa de creación propia sólo se debe abrir o continuar con RFEM o RSTAB. Cuando se completa el cálculo, el evento se transfiere a través de un delegado. Puede encontrar un ejemplo de C# en un proyecto de Visual Studio en el área de descargas a continuación.
  • Respuesta

    Esta comprobación se puede llevar a cabo automáticamente mediante

    • "IApplication.LockLicense ()"
    • "bool isLicensed = IApplication.IsComLicensed ()"
    • "IApplication.UnlockLicense ()"


  • Respuesta

    Sí, es posible crear liberaciones en nudo mediante la interfaz COM. Aquí hay un ejemplo:

    Sub nodal_release ()

        Dim iApp As RFEM5.Application
        Dim iModel As RFEM5.model
        
        On Error GoTo e
        
            Set iApp = GetObject(, "RFEM5.Application")
            iApp.LockLicense
            
            test = iApp.GetModelCount
            Set iModel = iApp.GetModel(0)
            
            Dim iModeldata As RFEM5.iModeldata
            Set iModeldata = iModel.GetModelData
            
            
            '   for setting a nodal release a member hinge is needed
            '   the object for the axis system could not be the same with the released one
            Dim nodRel As NodalRelease
            nodRel.Location = OriginalLocationType
            nodRel.AxisSystem = LocalFromLine
            nodRel.AxisSystemFromObjectNo = 2
            nodRel.Comment = "test nodal release"
            nodRel.MemberHingeNo = 1
            nodRel.NodeNo = 1
            nodRel.ReleasedMembers = 1
            
            iModeldata.PrepareModification
            iModeldata.SetNodalRelease nodRel
            iModeldata.FinishModification
            
            
    e:      If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        
        iApp.UnlockLicense


    End Sub


    Hay que tener en cuenta que el sistema de ejes local puede que no se refiera al mismo elemento que aquellos que se han liberado.

  • Respuesta

    Para transferir varios elementos, primero hay que crear un campo (matriz) en VBA:

    Dim. de los nudos (0 a 2) como RFEM5.Node

    Entonces, puede transferir todos los nudos a la vez en el campo (aquí tres elementos 0,1,2) con el método IModelData.SetNodes ().

    Estos métodos también están disponibles, por ejemplo, para los siguientes elementos estructurales:

    IModelData.SetLines ()
    IModelData.SetMembers ()
    IModelData.SetSurfaces ()
  • Respuesta

    El objeto principal no es un objeto lineal sino un objeto del tipo NurbSpline.
    Aquí hay un ejemplo corto para crear un NURBS (B-spline racional no uniforme):

    "------------------------------------------------- -------------------------------------------------
    Sub nurbs_test()
    "------------------------------------------------- -------------------------------------------------

        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

        ' define array of nodes
        Dim nodes(0 To 2) As RFEM5.Node
        
        nodes(0).No = 1
        nodes(0).Type = Standard
        nodes(0).CS = Cartesian
        nodes(0).X = 1
        nodes(0).Y = 1
        nodes(0).Z = 0

        nodes(1).No = 2
        nodes(1).Type = Standard
        nodes(1).CS = Cartesian
        nodes(1).X = 2
        nodes(1).Y = 1
        nodes(1).Z = -1
        
        nodes(2).No = 3
        nodes(2).Type = Standard
        nodes(2).CS = Cartesian
        nodes(2).RefObjectNo = 2
        nodes(2).X = 0
        nodes(2).Y = 1
        nodes(2).Z = 0
        
        Dim darr1(0 To 5) As Double
        darr1(0) = 1
        darr1(1) = 2
        darr1(2) = 3
        darr1(3) = 4
        darr1(4) = 5
        darr1(5) = 6
        
        Dim darr2(0 To 2) As Double
        darr2(0) = 1
        darr2(1) = 1
        darr2(2) = 1
        
        Dim ns As NurbSpline
        ns.General.No = 2
        ns.General.Type = NurbSplineType
        ns.General.NodeList = "1,2,3"
        ns.General.Comment = "line 2"
        ns.Knots = darr1
        ns.Order = 3
        ns.Weights = darr2
        
        data.PrepareModification
        data.SetNodes nodes
        data.SetNurbSpline ns
    e:  data.FinishModification
        If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source

        Set data = Nothing
        model.GetApplication.UnlockLicense
        Set model = Nothing

    End Sub

1 - 10 de 23

Contacte con nosotros

Contacte con Dlubal Software

¿Ha encontrado su pregunta?
Si no es así, contacte con nosotros a través de nuestro servicio de asistencia gratuito por correo electrónico, chat o fórum, o envíenos su pregunta mediante el formulario en línea.

+34 911 438 160

info@dlubal.com

Primeros pasos

first-steps

Le proporcionamos consejos y trucos para ayudar a iniciarse con los programas principales de RFEM y RSTAB.

Su soporte es el mejor con diferencia

“Muchas gracias por su útil información.

Me gustaría felicitar a su equipo de soporte. Estoy siempre impresionado por la rapidez y profesionalidad de las respuestas a las preguntas. En el sector del análisis estructural, utilizo varios programas que incluyen el contrato de servicio, pero su soporte es el mejor con diferencia.”