Preguntas más frecuentes (FAQ)

Buscar pregunta más frecuente

Show Filter Hide Filter





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

    Los archivos * .dll y * .tlb probablemente no se actualizaron correctamente en su computadora. Por favor proceda de la siguiente manera:

    1. Cambie el nombre de las siguientes carpetas en Dlubal.bak:

    C: \ Archivos de programa (x86) \ Archivos comunes \ Dlubal

    C: \ Archivos de programa \ Archivos comunes \ Dlubal


    2. Vuelva a instalar RFEM o RSTAB.

    3. Mueva los archivos de las carpetas de Dlubal recién creadas a las carpetas respectivas de Dlubal.bak (sobrescriba todas).

    4. Cambie el nombre de la carpeta Dlubal.bak a Dlubal.

  • Respuesta

    En principio, una sección es un elemento, como un miembro, y también se crea de la misma manera. Primero, se requiere la interfaz con los objetos. Para un miembro, esto sería IModelData, y para las secciones, sería ISections. Esta interfaz se puede encontrar en IModel3:

    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
        
    En caso de error, vaya a E
        
    Dim iSecs como RFEM5.ISections
    Establecer iSecs = iModel.GetSections ()

    Todas las secciones creadas previamente se eliminan primero, y luego se crean dos secciones nuevas.
    La primera sección debe ser una sección sólida con un área de sección visible (ver Figura 01). Los datos se introducen de forma similar a RFEM. Como tipo, se selecciona "SectionOnSectionalArea", los puntos de esquina de la sección se establecen utilizando "EdgePoint" y un "Vector" define la dirección de la sección:

    'primero borre todas las secciones
    iSecs.PrepareModification
    iSecs.DeleteObjects ("Todos")
    iSecs.FinishModification
        
    'establecer sección en sólido
    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 = "sección sólida"
    sec.Plane = GlobalPlaneInPositiveX
    sec.ShowValuesInIsolines = False
    sec.Type = SectionOnSolidSectionLine
    sec.ObjectList = "1"
        
    iSecs.PrepareModification
    iSecs.SetSection sec
    iSecs.FinishModification

    Como ya se sabe de otros elementos, la nueva sección finalmente se transfiere en un bloque Preparar/Finalizar modificación. Como segunda sección, se creará una sección de superficie (ver Figura 02). Para esto, es necesario utilizar el tipo "SectionViaSurfacePlane". Además del vector de la dirección de la sección, debe seleccionar el plano de visualización de los resultados para la sección de superficie. En el siguiente ejemplo, el plano xy se selecciona estableciendo "GlobalPlaneInPositiveX".

    'establecer sección en superficie
    sec.EdgePointA.X = 2
    sec.EdgePointA.Y = 0
    sec.EdgePointA.Z = 0
    sec.EdgePointB.X = 2
    sec.EdgePointB.Y = 3
    sec.EdgePointB.Z = 0
        
    seg. no = 2
    sec.Name = "sección de superficie"
    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

    También es posible obtener los resultados de una sección utilizando el método separado "GetResultsInSection" de la interfaz "IResults2". A continuación, se obtienen las fuerzas de corte en la sección de superficie. La distribución de las fuerzas internas se establece en "Continuo dentro de las superficies" por medio de "ContinuousDistributionWithinObjects":

    'obtener resultados
        Dim iCalc As ICalculation2
        Set iCalc = iModel.GetCalculation
        
    Atenuar iRes como IResults2
    Establecer iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)
        
    Dim secRes () As RFEM5.SectionResult
    secRes = iRes.GetResultsInSection (2, AtNo,
    ShearForceVy, ContinuousDistributionWithinObjects, False)

    En Descargas , puede encontrar la macro de Excel y el archivo de prueba para comprender el programa.
  • Respuesta

    Para sólo calcular ciertos casos de carga, combinaciones de carga o combinaciones de resultados, justo como el comando "Para calcular...." (ver figura 01), puede usar el método "CalculateBarch" de la interfaz ICalculation. Al transferir datos, el método espera un campo con el tipo de carga. La carga incluye el número de la carga, y el tipo (p. ej. combinación de carga):

    Sub batch_test ()
        
    '   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
        
        '   get interface for calculationv
        Dim iCalc As ICalculation2
        Set iCalc = iModel.GetCalculation
        
        '   create array with loading types
        Dim loadings(3) As Loading
        loadings(0).no = 1
        loadings(0).Type = LoadCaseType
        
        loadings(1).no = 4
        loadings(1).Type = LoadCaseType
        
        loadings(2).no = 4
        loadings(2).Type = LoadCombinationType
        
        '   calculate all loadings from the array at once
        iCalc.CalculateBatch loadings

    e:  If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
        
        Set iModelData = Nothing
        iModel.GetApplication.UnlockLicense
        Set iModel = Nothing

    End Sub
  • Respuesta

    Una imperfección se considera una carga y se transfiere mediante la interfaz del caso de carga. Siempre que la interfaz para el modelo ya se haya importado, la interfaz para las cargas (ILoads) seguida de la interfaz para el caso de carga 1 (ILoadCase) se importará posteriormente, si ya se ha creado antes:

            '   set loadcases
            Dim iLoads As iLoads
            Set iLoads = model.GetLoads
            
            '   get load case
            Dim iLc1 As ILoadCase
            Set iLc1 = iLoads.GetLoadCase(1, AtNo)
            
            '   define imperfection
            Dim imperf As Imperfection
            imperf.Comment = "test"
            imperf.Direction = LocalZType
            imperf.Inclination = 200
            imperf.no = 1
            imperf.ObjectList = 1
            imperf.Precamber = 300
            imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
            
            '   set imperfection
            iLc1.PrepareModification
            iLc1.SetImperfection imperf
            iLc1.FinishModification

    Los datos de la imperfección se completan primero, aquí para la barra 1, y luego se transfieren dentro de un bloque Prepare-/FinishModification de las interfaces del caso de carga.

  • Respuesta

    Para modificar un elemento existente, tiene que obtener la interfaz del elemento correspondiente, mostrado aquí utilizando una barra como ejemplo:

        Dim iModel As RSTAB8.model
        Set iModel = GetObject(, "RSTAB8.Model")
        iModel.GetApplication.LockLicense
        
        Dim iModData As IModelData
        Set iModData = iModel.GetModelData
        
        Dim iMem As RSTAB8.IMember
        Set 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 el giro de la barra en este caso), puede transferirlos posteriormente al programa dentro de un bloque Prepare-/FinishModification con el método .SetData ().


        Dim mem As RSTAB8.Member
        mem = iMem.GetData
        
        mem.Rotation.Angle = 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:

        '   get model interface
        Set iApp = iModel.GetApplication()
        iApp.LockLicense
        
        '   get calculation interface
        Dim iCalc As RFEM5.ICalculation2
        Set iCalc = iModel.GetCalculation
        
        '   get surface bending theory
        Dim calc_bend As RFEM5.BendingTheoryType
        calc_bend = iCalc.GetBendingTheory
        
        '   get settings for nonlinearities
        Dim calc_nl As RFEM5.CalculationNonlinearities
        calc_nl = iCalc.GetNonlinearities
        
        '   get precision and tolerance settings
        Dim calc_prec As RFEM5.PrecisionAndTolerance
        calc_prec = iCalc.GetPrecisionAndTolerance
        
        '   get calculation settings
        Dim calc_sets As RFEM5.CalculationSettings
        calc_sets = iCalc.GetSettings
        
        '   get calculation options
        Dim calc_opts As RFEM5.CalculationOptions
        calc_opts = iCalc.GetOptions
        
        '   set ShearStiffness to false
        calc_opts.ShearStiffness = False
        iCalc.SetOptions calc_opts

    En el anexo, hay un Macro de EXCEL para su descarga.
  • 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

        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

    Después, se debe tomar la interfaz IMember de la barra correspondiente, y se utiliza el método GetExtraData para obtener la interfaz en 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
        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

    Se adjunta el archivo EXCEL Macro completo 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 en el extremo de la barra.

    Para este propósito, se debe crear primero la articulación en el extremo de la barra, si aún no está disponible. Luego, la interfaz IMemberHinge se lleva a la articulación en el 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

        Dim hinge(0 To 0) As RFEM5.MemberHinge

        hinge(0).No = 1
        hinge(0).RotationalConstantX = 1
        hinge(0).RotationalConstantY = 2
        hinge(0).RotationalConstantZ = 3
        hinge(0).TranslationalConstantX = 4
        hinge(0).TranslationalConstantY = 5
        hinge(0).TranslationalConstantZ = 6
        hinge(0).Comment = "Member Hinge 1"
        
        hinge(0).TranslationalNonlinearityX = FrictionAType

        data.PrepareModification
        data.SetMemberHinges hinge
        data.FinishModification
        
        ' get interface for member hinge
        Dim imemhing As IMemberHinge
        Set imemhing = data.GetMemberHinge(1, AtNo)
        
        ' get interface for nonlinearity "friction"
        Dim iFric As IFriction
        Set iFric = imemhing.GetNonlinearity(AlongAxisX)
        
        ' get friction data
        Dim fric As Friction
        fric = iFric.GetData
        
        fric.Coefficient1 = 0.3
        
        ' set friction data
        data.PrepareModification
        iFric.SetData fric
        data.FinishModification
        
        
    e:  If Err.Number <> 0 Then 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 "Coefficient2" 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 articulación en el 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 ()"


1 - 10 de 26

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.

Simulación de flujos de viento y generación de cargas de viento

Con el programa independiente RWIND Simulation, se pueden simular flujos de viento alrededor de estructuras simples o complejas por medio de un túnel de viento digital.

Las cargas de viento generadas que actúan sobre esos objetos se pueden importar a RFEM o RSTAB.

Su soporte es el mejor con diferencia

“Gracias por la valiosa 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. He utilizado una gran cantidad de software con un contrato de soporte en el campo del análisis estructural, pero su soporte es, con mucho, el mejor. "