1005x
004903
2021-01-12

通过 COM 接口编辑参数列表

如何使用COM接口编辑参数列表?


回复:

模型的参数可以使用接口 IModel(从 IModel3 开始)进行修改:

  1. code.vb#

Sub 测试参数()

将 i App 灰度暗为 RFEM5.Application
Set i App = GetObject(, "RFEM5.Application")

i App.Lock许可证

j 维度为 Integer
j = iapp.getmodelcount

将 iMod 调暗为 RFEM5.IModel3
设置 iMod = iapp.getactivemodel

错误时转到e

Dim formParams() As RFEM5.FormulaParameter

' 得到所有公式参数
formParams = iMod.GetFormulaParameters

' 删除所有公式参数
iMod.CleanFormula参数

' 设置公式参数列表
ReDim Preserve formParams(0 To 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 = "新建参数化"
formParams(UBound(formParams, 1)).Formula = "b/3"
formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"

iMod.SetFormulaParameters 表单参数

e:

If Err.Number <> 0 Then Msgbox Err.description, vbCritical, Err.Source
iMod.GetApplication.UnlockLicense
设置 iMod = Nothing

末端接头

  1. /代码#

只有使用 GetFormulaParameters() 函数才能读出所有参数。 然后可以使用 SetFormulaParameters() 函数将修改后的或新的参数作为列表再次传递。 因此无法读取或写入任何参数。

"数值" 的类型 (ValueTyp) 和单位 (unit) 必须在定义的范围 (RangeOfValues) 之内;否则,会出现错误信息。 如果该值是计算得出的,如示例中的,那么它是无关紧要的,如果定义了限制,用公式(公式)计算出的值必须在限制之内。


作者

Günthel 先生为Dlubal 软件客户提供技术支持。

链接
下载


;