iLogic 中的 iFeature 函數

使用 iFeature 函數可選擇表格驅動式 iFeature 中的列。每一列都包含一組驅動 iFeature 的參數值。

iFeature 函數在放置 (例證化) iFeature 的零件內作業。其語法與 GoExceliPart 函數所使用的語法相似。

若要存取 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

iPart.FindRow 函數配合使用時,此函數可讓您搜尋某個範圍內的值,而非搜尋精確值。此搜尋永遠帶有一個公差。預設公差為 0.0000001,與文件單位無關。

語法

iFeature.Tolerance = <value>

設定更高的公差可擴大可接受值的範圍。

範例

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

此範例與 pocketlength 值為 2.0004 的列情況相符。