336x
002165
2021-01-12

[ES] FAQ 004903 | ¿Cómo puedo editar la lista de parámetros utilizando la interfaz COM?

Pregunta:
¿Cómo puedo editar la lista de parámetros utilizando la interfaz COM?

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 la lista de parámetros de la fórmula
ReDim Preservar formParams (0 a UBound (formParams, 1) + 1)
formParams (UBound (formParams, 1)). Name = "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:

If Err.Number 0 Then 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.