Preguntas más frecuentes (FAQ)

Preguntas y respuestas útiles

  • Preguntas más frecuentes (FAQ)

Buscar pregunta más frecuente

Mostrar filtro Ocultar filtro





Soporte técnico 24/7

Además del soporte personal, ofrecemos recursos las 24 horas todos los días de la semana en nuestra página web.

Boletín de noticias

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

1 - 10 de 46

Ordenar por:

Elementos:

  • Respuesta

    Para poder asignar una excentricidad a una barra, generalmente es necesario crearla antes de configurar la barra.

    En el siguiente ejemplo se muestra otro enfoque. Primero, se crea la excentricidad y luego se asigna a una barra existente a través de su interfaz:


    '---------------------
    SubconjuntoEccentricidad ()
    '---------------------

    Dim model As RFEM5.model
    Establecer modelo = GetObject (, "RFEM5.Model")
    model.GetApplication.LockLicense

    On Error GoTo e

    Atenuar iModData como RFEM5.iModelData
    Establecer iModData = model.GetModelData

    'crear excentricidad
    Dim eccens (0 To 0) As RFEM5.MemberEccentricity
    eccens (0) .No = 1
    eccens (0) .Comment = "prueba de excentricidad"

    eccens (0) .ReferenceSystem = LocalSystemType

    eccens (0) .Start.X = 0
    eccens (0) .Start.Y = 0
    eccens (0) .Start.Z = 0

    eccens (0) .End.X = 0
    eccens (0) .End.Y = 0
    eccens (0) .End.Z = 0

    eccens (0) .HingeAtEndNode = False
    eccens (0) .HingeAtStartNode = False

    eccens (0) .HorizontalAlignment = Middle
    eccens (0) .VerticalAlignment = Inferior

    eccens (0) .TransverseOffset = Verdadero
    eccens (0) .ReferenceObjectNo = 2
    eccens (0) .ReferenceObjectType = MemberObject
    eccens (0) .HorizontalAxisOffset = Middle
    eccens (0) .VerticalAxisOffset = Superior

    eccens (0) .StartAdjoiningMembersOffset = False
    eccens (0) .EndAdjoiningMembersOffset = False

    iModData.PrepareModification
    iModData.SetMemberEccentricities eccens
    iModData.FinishModification

    'agregar excentricidad a la barra
    Atenuar imem como RFEM5.IMember
    Establecer iMem = iModData.GetMember (1, AtNo)

    Dim mem As RFEM5.Member
    mem = iMem.GetData

    mem.EccentricityNo = 1

    iModData.PrepareModification
    iMem.SetData mem
    iModData.FinishModification


    e: If Err.Number <> 0 Then MsgBox Err.Description`` Err.Source

    model.GetApplication.UnlockLicense

    End Sub


    Las excentricidades de la barra solo se pueden transferir como un campo; para este propósito, se ha creado un campo con un solo elemento. En la imagen adjunta, los elementos individuales están detallados con referencia a los elementos gráficos.

  • Respuesta

    La siguiente macro de VBA muestra la creación de un apoyo en nudo con un diagrama de no linealidad. El código fuente se puede encontrar en Descargas.

    '------------------------------------------------- -------------------------------------------------
    Soporte secundario ()
    '------------------------------------------------- -------------------------------------------------
    Dim model As RFEM5.model
    Dim data As IModelData
    Dim support (0) As RFEM5.NodalSupport
    Atenuar ISup como RFEM5.INodalSupport
    Dim ISupDia como RFEM5.INonlinearityDiagram
    Dim nlDiag como NonlinearityDiagram
    Zona de atenuación (2, 1) como doble
        
    Set model = GetObject(, "RFEM5.Model")
    model.GetApplication.LockLicense

    On Error GoTo e

    Set data = model.GetModelData
        
    apoyo (0) .No = 1
    support (0) .nodelist = "1"
    support (0) .SupportNonlinearityX = WorkingDiagramType
    support (0) .SupportConstantY = -1
    support (0) .SupportConstantZ = -1
    apoyo (0) .RestraintConstantX = -1
    support (0) .RestraintConstantY = -1
    apoyo (0) .RestraintConstantZ = -1

    data.PrepareModification
    Soporte técnico de data.SetNodalSupports
    data.FinishModification

    Establecer ISup = data.GetNodalSupport (1, AtNo)
    Establecer ISupDia = ISup.GetNonlinearity (AlongAxisX)

    zona (0, 0) = 0
    zona (0, 1) = 0
    zona (1, 0) = 1
    zona (1, 1) = 2
    zona (2, 0) = 3
    zona (2, 1) = 4

    nlDiag.PositiveZoneType = DiagramAfterLastStepType.StopDiagramType
    nlDiag.PositiveZone = zona
    nlDiag.Symmetric = True

    data.PrepareModification
    ISupDia.SetData nlDiag
    data.FinishModification
        
    e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source

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

    End Sub
  • Respuesta

    Para eliminar elementos, está la función "DeleteObjects ()" en la interfaz de datos del modelo. La eliminación de todas las barras es la siguiente:

    Sub test_delete_objects ()

    Dim iApp As RFEM5.Application
    Establecer iApp = GetObject (, "RFEM5.Application")

    iApp.LockLicense

    Dim iMod como RFEM5.IModel3
    Set iMod = iApp.GetActiveModel


    On Error GoTo e

    'obtener interfaz para datos del modelo
    Dim iModData As RFEM5.IModelData2
    Set iModData = iMod.GetModelData
        
    'obtener todos los miembros
    Dim mems() As RFEM5.Member
    mems () = iModData.GetMembers
        
    'crear lista de miembros
    Dim mem_list como cadena
    Dim i As Integer
    Para i = 0 a UBound (mems, 1)
    mem_list = mem_list & mems (i) .no & ","
    Siguiente
        
    'eliminar miembros
    iModData.PrepareModification
    iModData.DeleteObjects MemberObject, lista_mem
    iModData.FinishModification
        
    e:

    Si Err.Number <> 0, entonces MsgBox Err.description, vbCritical, Err.Source

    iMod.GetApplication.UnlockLicense
    Establecer iMod = Nada

    End Sub


    Tenga en cuenta que la función "DeleteObjects" sólo funciona con el número de objeto y no con el índice de objeto. Estos números se transfieren como una cadena, separados por comas.

    Por esta razón, primero se tuvieron que buscar todas las barras. Luego, se recorrió el campo de la barra y se introdujeron todos los números de la barra en la cadena.

  • Respuesta

    Las deformaciones de las barras se pueden leer utilizando la función "GetMemberDeformations ()", por ejemplo. Esta función espera un número, el tipo de método de conteo para las barras (número de barra/número en la lista) y qué sistema de coordenadas se debe usar. Puede seleccionar si se usa el sistema de ejes local, el sistema de ejes principal o el sistema de coordenadas global:

    Sub test_results_member_axis ()

    Dim iApp As RFEM5.Application
    Establecer iApp = GetObject (, "RFEM5.Application")

    iApp.LockLicense

    Dim iMod como RFEM5.IModel3
    Set iMod = iApp.GetActiveModel


    On Error GoTo e

    'obtener interfaz para el cálculo
    Dim iCalc As RFEM5.ICalculation2
    Configure iCalc = iMod.GetCalculation

    'obtener interfaz para resultados
    Dim iRes como RFEM5.IResults2
    Configure iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)

    'obtener deformaciones en el sistema de coordenadas local
    Dim memDefs_L () como RFEM5.MemberDeformations
    memDefs_L = iRes.GetMemberDeformations (1, AtNo, LocalMemberAxes)

    'obtener deformaciones en el sistema de coordenadas global
    Dim memDefs_G () como RFEM5.MemberDeformations
    memDefs_G = iRes.GetMemberDeformations (1, AtNo, GlobalAxes)

    'obtener deformaciones en el sistema de coordenadas principal
    Dim memDefs_P () como RFEM5.MemberDeformations
    memDefs_P = iRes.GetMemberDeformations (1, AtNo, LocalPrincipalAxes)


    e:

    Si Err.Number <> 0, entonces MsgBox Err.description, vbCritical, Err.Source

    iMod.GetApplication.UnlockLicense
    Establecer iMod = Nada

    End Sub


    El programa pequeño lee las deformaciones locales (memDefs_L) en los ejes de la barra y los ejes principales (memDefs_P) y las deformaciones globales en los ejes de la barra (memDefs_G).

  • Respuesta

    Los parámetros de un modelo se pueden modificar utilizando la interfaz IModel (a partir de IModel3):

    Parámetro_prueba secundaria ()

    Dim iApp As RFEM5.Application
    Establecer iApp = GetObject (, "RFEM5.Application")

    iApp.LockLicense

    Dim j como entero
    j = iApp.GetModelCount

    Dim iMod como RFEM5.IModel3
    Set iMod = iApp.GetActiveModel

    On Error GoTo e

    Dim formParams () como RFEM5.FormulaParameter

    'obtener todos los parámetros de la fórmula
    formParams = iMod.GetFormulaParameters

    'eliminar todos los parámetros de la fórmula
    iMod.CleanFormulaParameters

    'establecer lista de parámetros de la fórmula
    ReDim Preservar formParams (0 a UBound (formParams, 1) + 1)
    formParams (UBound (formParams, 1)). Nombre = "p"
    formParams (UBound (formParams, 1)). Unit = "m"
    formParams (UBound (formParams, 1)). UnitType = LengthUnitType
    formParams (UBound (formParams, 1)). Value = 0
    formParams (UBound (formParams, 1)). ValueType = DoubleType
    formParams (UBound (formParams, 1)). Comment = "nuevo parámetro"
    formParams (UBound (formParams, 1)). Formula = "b/3"
    formParams (UBound (formParams, 1)). RangeOfValues = "(3; 5.5>"

    iMod.SetFormulaParameters formParams

    e:

    Si Err.Number <> 0, entonces MsgBox Err.description, vbCritical, Err.Source
    iMod.GetApplication.UnlockLicense
    Establecer iMod = Nada

    End Sub


    Solo es posible leer todos los parámetros utilizando la función GetFormulaParameters (). Los parámetros nuevos o modificados se pueden transferir de nuevo como una lista con la función SetFormulaParameters (). Por lo tanto, no se pueden leer ni escribir parámetros individuales.

    Cabe señalar que el "Value" relacionado con su tipo (ValueTyp) y su unidad (Unit) deben estar dentro de los límites definidos (RangeOfValues), de lo contrario aparece un mensaje de error. Si se calcula el valor, como en el ejemplo, es irrelevante y el valor calculado con la fórmula (Fórmula) debe estar dentro de los límites, si los límites están definidos.


  • Respuesta

    La opción "Conectar líneas/barras" se puede implementar con las funciones "ConnectLines ()" y "ConnectMembers ()". Ambas funciones esperan una cadena con los números de las líneas o barras:

    Subprueba_conexión ()

    Dim iMod como modelo RFEM5
    Establecer iMod = GetObject (, "RFEM5.Model")

    iMod.GetApplication.LockLicense

    On Error GoTo e

    Dim iModData As RFEM5.IModelData2
    Establecer iModData = iMod.GetModelData ()

    iModData.PrepareModification
    iModData.ConnectLines ("3,4")
    iModData.ConnectMembers ("1,2")
    iModData.FinishModification


    e:

    Si Err.Number <> 0, entonces MsgBox Err.description, vbCritical, Err.Source
    iMod.GetApplication.UnlockLicense
    Establecer iMod = Nada

    End Sub


    En este ejemplo, la línea 1 y la línea 2 están conectadas y se crea un nudo en el punto de intersección. Lo mismo se aplica a la barra 1 y a la barra 2, donde también se crea un nuevo nudo en el punto de intersección.

  • Respuesta

    Al igual que todos los demás resultados, la resultante de una sección se puede leer a través de IModel3 → ICalculation2 → IResults2. La interfaz con los resultados la proporciona la función GetResultant, que luego devuelve la estructura ResultantForce al especificar el número de sección y el tipo de distribución de resultados. Diese Struktur beinhaltet unter anderem die Kräfte und Momente jeweils als Vektor:

    Sub GetResultantSection()
        Dim iApp As RFEM5.Application
        Dim iModel As RFEM5.model
        Set iModel = GetObject(, "RFEM5.Model")

    On Error GoTo e

    'obtener la interfaz del modelo
    Establecer iApp = iModel.GetApplication
    iApp.LockLicense

    'obtener interfaz del cálculo
    Dim iCalc As RFEM5.ICalculation2
    Set iCalc = iModel.GetCalculation

    'obtener la interfaz de los resultados del caso de carga 1
    Dim iRes como RFEM5.IResults2
    Configure iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)

    'obtener resultante
    Dim section_resultant como resultanteForce
    section_resultant = iRes.GetResultant (1, AtNo, ConstantDistributionOnElements)

    e:
    If Err.Number <> 0 Then
    MsgBox Err.Number & "" & Err.description
    End If

    Si la aplicación no es nada, entonces
    iApp.UnlockLicense
    End If

    End Sub
  • Respuesta

    En las descargas de FAQ, puede encontrar un código de ejemplo para configurar las superficies NURBS. El vector de nudo KnotsX, KnotsY determina cómo los puntos de control afectan la curva NURBS. El número de nudos es igual al número de nudos más el orden.

  • Respuesta

    Para la programación utilizando la interfaz COM, un soporte en nudo tiene las propiedades "ReferenceSystem" y "UserDefinedReferenceSystem". "ReferenceSystem" permite definir el tipo de sistema de coordenadas definido por el usuario (por ejemplo, "Rotated" o "Coordinate System") y, según el tipo que se haya seleccionado, este tipo se define a través de "UserDefinedReferenceSystem".

    En el siguiente ejemplo, se estableció el "Sistema de coordenadas" como tipo y también se creó un sistema de coordenadas definido por el usuario:

    //crea un sistema de coordenadas definido por el usuario
    IGuideObjects iGuide = iModel.GetGuideObjects ();

    //eliminar cosy No 2
    UserCoordinateSystem [] csList = iGuide.GetCoordinateSystems ();
    if (longitud de lista> 1)
    {
    para (int i = 0; i <csList.Length; ++ i)
    {
    if (lista de cs [i] .No == 2)
    {
    iGuide.PrepareModification ();
    iGuide.DeleteObjects (GuideObjectType.CoordinateSystemObject, "2");
    iGuide.FinishModification ();
    }}
    }}
    }}

    //define el nuevo y acogedor número 2
    UserCoordinateSystem uCs = nuevo UserCoordinateSystem ();
    uCs.Name = "prueba";
    uCs.Comment = "prueba";
    uCs.No = 2;
    uCs.IsValid = verdadero;

    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;

    //establecer acogedor No 2
    iGuide.PrepareModification ();
    iGuide.SetCoordinateSystem (uC);
    iGuide.FinishModification ();

    //crea un apoyo en nudo con un usuario acogedor
    NodalSupport ns = new NodalSupport ();

    ns.SupportConstantX = -1;
    ns.SupportConstantY = -1;
    ns.SupportConstantZ = -1;

    ns.RestraintConstantX = -1;
    ns.RestraintConstantY = 0;
    ns.RestraintConstantZ = -1;

    ns.Comment = "acogedor definido por el usuario";
    ns.NodeList = "1";
    ns.ReferenceSystem = ReferenceSystemType.UserDefinedSystemType;

    ns.UserDefinedReferenceSystem.ObjectNo = 2;
    ns.UserDefinedReferenceSystem.Type = UserDefinedAxisSystemType.DefinedCoordinateSystemType;

    iModData.PrepareModification ();
    iModData.SetNodalSupport (ns);
    iModData.FinishModification ();

    Para poder crear el sistema de coordenadas, se requiere la interfaz para los objetos de guía: "IGuideObjects". Con la función "DeleteObjects ()", se elimina primero un sistema de coordenadas existente del número 2 y se crea uno nuevo con "SetCoordinateSystem ()". Tenga en cuenta el bloque "Preparar/Finalizar-Modificación" para poder transferir el nuevo elemento.

    El apoyo en nudo se transfiere a través de la interfaz "IModelData". De nuevo, se requiere el bloque "Preparar/Finalizar-Modificación".

  • Respuesta

    StandardID y AnnexID se pueden mostrar fácilmente en cualquier momento utilizando la siguiente macro:

    cominterfaces-es \ SDK \ Ejemplos \ Módulos \ Excel \ RF-STEEL_EC3.xls

    Puede encontrar esta macro en el archivo de la página web del producto (ver Enlaces).

    Aquí hay una descripción general de los archivos adjuntos actuales:


    Norma ID Nombre del anexo

    DIN 0 Alemania

    ÖNORM 1 Austria

    CSN 2 República Checa

    STN 3 Eslovaquia

    PN 4 Polonia

    SIST 5 Eslovenia

    DK 6 Dinamarca

    UNI 7 Italia

    NEN 8 Países Bajos

    SFS 9 Finlandia

    SS 10 Suecia

    NF 11 Francia

    BS 12 Reino Unido

    CEN 13 Unión Europea

    BDS 14 Bulgaria

    CYS 15 Chipre

    LST 16 Lituania

    SR 17 Rumanía

    SS 18 Singapur

    NBN 19 Bélgica

    NP 20 Portugal

    UNE 21 España

    MAL 22 Malasia

    NS 23 Noruega

    LU 24 Luxemburgo

    ELOT 25 Grecia

1 - 10 de 46

Contacte con nosotros

Contacta con Dlubal

¿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

Primeros pasos

Ofrecemos información y consejos para ayudarle a empezar con el programa básico RFEM y RSTAB.

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

Con el programa independiente RWIND Simulation , puede 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 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.”