977x
004967
2021-04-08

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