使用 iFeature 函数选择表驱动 iFeature 中的行。
每行都有一组用于驱动 iFeature 的参数值。
iFeature 函数在放置(引用)iFeature 的零件中运行。其语法与用于 GoExcel 和 iPart 函数的语法类似。
若要访问 iFeature 函数,请展开 iLogic“编辑规则”对话框“代码段”区域中“系统”选项卡上的“iFeature”节点。
更改表驱动 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 的激活行更改为该行。
语法
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.FindRow 函数结合使用,您可以搜索某个范围内的值,而不是搜索一个确切值。该搜索始终使用公差。默认公差为 0.0000001 并且与文档单位无关。
语法
iFeature.Tolerance = <value>
设定更高的公差以扩大可接受值的范围。
示例
iFeature.Tolerance = 0.001 i = iFeature.FindRow("insertpocket", "pocketlength", "=", 2.0)
该示例将匹配 pocketlength 值为 2.0004 的行。