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

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

語法

iFeature.Tolerance = <value>

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

範例

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

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