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]
これは、Inventor API ドキュメントに記載されている iFeatureTableRow.MemberName
プロパティです。複数のパラメータを指定する別の方法として、iFeature.FindRow
を使用する方法があります。
また、整数の行番号を使用することもできます。
iFeature.ChangeRow("iFeatureName", rowNumber)
例
この例では、テキスト パラメータの size
を評価する条件ステートメントに従って現在の iFeature 設定が変更されます。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
1 つまたは複数の列値の基準に従って行を検索します。行が検出された場合は、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 の行と一致します。