iLogic 中的 iFeature 函数

使用 iFeature 函数选择表驱动 iFeature 中的行。每行都有一组用于驱动 iFeature 的参数值。

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

若要访问 iFeature 函数,请展开“代码段”区域中的“系统”选项卡下的“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 的行。