978x
004967
2021-04-08

Domanda

Come posso creare un vincolo esterno nodale con un diagramma di non linearità tramite l'interfaccia COM?


Risposta:

La seguente macro VBA mostra la creazione di un vincolo esterno nodale con un diagramma di non linearità. Il codice sorgente può essere trovato in Download.

'------------------------------------------------- -------------------------------------------------
Sub SetNSupport ()
'------------------------------------------------- -------------------------------------------------
Dim modello Come RFEM5.model
Dim data As IModelData
Dim support (0) Come RFEM5.NodalSupport
Dim ISup As RFEM5.INodalSupport
Dim ISupDia As RFEM5.INonlinearityDiagram
Dim nlDiag As NonlinearityDiagram
Zona di oscuramento (2, 1) As Double
    
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

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

data.PrepareModification
data.SetNodalSupports supporto
data.FinishModification

Imposta ISup = data.GetNodalSupport (1, AtNo)
Imposta 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 = zone
nlDiag.Symmetric = True

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

Imposta dati = Niente
model.GetApplication.UnlockLicense
Set model = Nothing

End Sub