536x
002429
2021-03-10

FAQ 004967 | ¿Cómo puedo crear un apoyo en nudo con un diagrama de no linealidad a través de la interfaz COM?

Pregunta:
¿Cómo puedo crear un apoyo en nudo con un diagrama de no linealidad a través de la interfaz COM?

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 ()
'------------------------------------------------- -------------------------------------------------

  1. Dim model As RFEM5.model
  2. 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

    Establecer modelo = 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