iFeature 函数参考 (iLogic)

使用 iFeature 函数选择表驱动 iFeature 中的行。

每行都有一组用于驱动 iFeature 的参数值。

iFeature 函数在放置(引用)iFeature 的零件中运行。其语法与用于 GoExceliPart 函数的语法类似。

若要访问 iFeature 函数,请展开 iLogic“编辑规则”对话框“代码段”区域中“系统”选项卡上的“iFeature”节点。

iFeature.ChangeRow

更改表驱动 iFeature 的激活行。

语法

iFeature.ChangeRow("iFeatureName", "rowName")

"iFeatureName”

iFeature 的名称,与在模型树中显示的名称一样。

"rowName"

iFeature 表中关键参数的需求值。

如果 iFeature 具有多个关键参数,请以 [Key1=Value1][Key2=Value2] 形式的文本字符串指定所有关键参数。例如:

[Size=A0][CutLength=0.4375000 in]

该示例为 iFeatureTableRow.MemberName 特性,与在 Inventor API 文档中描述的一样。另一个指定多个参数值的方式为使用 iFeature.FindRow

您还可以使用整数行号:

iFeature.ChangeRow("iFeatureName", rowNumber)

示例

在该示例中,当前的 iFeature 配置会根据评估 size(这是一个文本参数)的条件语句发生更改。iFeature.ChangeRow 只需要使用 iFeature 零部件名称 RectangularPocket1 和 iFeature 表 Key Column 名称 "Pocket-01" 来驱动激活的 iFeature 配置:

If size = "small" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-01")
ElseIf size = "medium" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-02")
ElseIf size = "large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-03")
ElseIf size = "very large" Then
iFeature.ChangeRow("RectangularPocket1", "Pocket-04")
End If

iFeature.FindRow

根据一个或多个列值条件搜索行。如果该函数找到了行,它会将 iFeature 的激活行更改为该行。

语法

i = iFeature.FindRow("iFeatureName", "columnName", "<=", 0.2, "columnName", "<=", 4.1)

"iFeatureName"

表驱动 iFeature 的名称。

"columnName"

要搜索的列的标题。

运算符

该值可以是数字值或文本字符串。可以使用明确的值、参数或局部变量指定该值。

返回值

iFeature.CurrentRowValue(“columnName”)

从使用 iFeature.FindRow 函数找到的行读取值,其中 "columnName" 是列标题名称。它将返回由 iFeature.FindRow 函数返回的当前行值的单元格值。例如:

i = iFeature.FindRow("RectangularPocket1", "pocketdepth", "=", 0.250)
pocketlength = iFeature.CurrentRowValue("pocketlength")
pocketwidth = iFeature.CurrentRowValue("pocketwidth")

如果 iFeature 中不存在该列,该规则将显示错误消息。

iFeature.CurrentRowStringValue("columnName")

当要查找的 iFeature 表中条目是文本字符串时,使用该函数。例如:

Part_number = iFeature.CurrentRowStringValue("Part Number")

iFeature.Tolerance

将该函数与 iFeature.FindRow 函数结合使用,您可以搜索某个范围内的值,而不是搜索一个确切值。该搜索始终使用公差。默认公差为 0.0000001 并且与文档单位无关。

语法

iFeature.Tolerance = <value>

设定更高的公差以扩大可接受值的范围。

示例

iFeature.Tolerance = 0.001
i = iFeature.FindRow("insertpocket", "pocketlength", "=", 2.0)

该示例将匹配 pocketlength 值为 2.0004 的行。