520x
002429
10.3.2021

FAQ 004967 | Jak mohu pomocí rozhraní COM vytvořit uzlovou podporu s diagramem nelinearity?

Dotaz:
Jak mohu pomocí rozhraní COM vytvořit uzlovou podporu s diagramem nelinearity?

Odpověď:
Následující makro VBA ukazuje vytvoření uzlové podpory s diagramem nelinearity. Zdrojový kód je možné si stáhnout v sekci Stahování a informace.

'--------------------------------------------------------------------------------------------------
Sub SetNSupports()
'--------------------------------------------------------------------------------------------------
Dim model As RFEM5.model
Dim data As IModelData
Dim support(0) As RFEM5.NodalSupport
Dim ISup As RFEM5.INodalSupport
Dim ISupDia As RFEM5.INonlinearityDiagram
Dim nlDiag As NonlinearityDiagram
Dim zone(2, 1) As Double

    Set model = GetObject(, "RFEM5.Model")
    model.GetApplication.LockLicense

    On Error GoTo e

    Set data = model.GetModelData

    support(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 support
    data.FinishModification

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

    zone(0, 0) = 0
    zone(0, 1) = 0
    zone(1, 0) = 1
    zone(1, 1) = 2
    zone(2, 0) = 3
    zone(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

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

End Sub