Fonctions iFonction dans iLogic

Utilisez les fonctions iFeature pour choisir une ligne dans une iFonction liée à une table. Chaque ligne possède un jeu de valeurs de paramètre pour contrôler l'iFonction.

Les fonctions iFeature agissent au sein d'une pièce dans laquelle l'iFonction est placée (instanciée). Leur syntaxe est identique à celle utilisée pour les fonctions GoExcel et iPart.

Pour accéder aux fonctions iFeature, développez le noeud iFonctions sous l'onglet Système de la zone Extraits de code.

iFeature.ChangeRow

Modifie la ligne active d'une iFonction liée à une table.

Syntaxe

iFeature.ChangeRow("iFeatureName", "rowName")

"iFeatureName”

Nom de l'iFonction tel qu'il est affiché dans l'arborescence du modèle.

"rowName"

Valeur souhaitée du paramètre clé dans la table d'iFonction.

Si l'iFonction contient plus d'un paramètre clé, définissez tous ces paramètres dans une chaîne de texte sous la forme [Clé1=Valeur1][Clé2=Valeur2]. Par exemple :

[Size=A0][CutLength=0.4375000 in]

Cet exemple représente la propriété iFeatureTableRow.MemberName, comme décrit dans la documentation sur l'API Inventor. Une autre façon de définir plusieurs valeurs de paramètre consiste à utiliser iFeature.FindRow.

Vous pouvez également utiliser un nombre entier correspondant au numéro de ligne :

iFeature.ChangeRow("iFeatureName", rowNumber)

Exemple

Dans cet exemple, la configuration actuelle de l'iFonction est modifiée en fonction d'une instruction conditionnelle qui évalue la taille, un paramètre de texte. iFeature.ChangeRow requiert uniquement le nom du composant d'iFonction RectangularPocket1 et le nom de la colonne d'identifiantsla de la table d'iFonction "Pocket-01" pour contrôler la configuration de l'iFonction active :

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

Permet de rechercher une ligne en fonction d'un ou plusieurs critères de valeur de la colonne. S'il détecte une ligne, la ligne active de l'iFonction est remplacée par cette ligne.

Syntaxe

i = iFeature.FindRow("iFeatureName", "columnName", "<=", 0.2, "columnName", "<=", 4.1)

"iFeatureName"

Nom de l'iFonction liée à une table.

"columnName"

Titre de la colonne pour la recherche.

Opérateurs

Cette valeur peut être une valeur numérique ou une chaîne de texte. Elle peut être spécifiée à l'aide d'une valeur explicite, d'un paramètre ou d'une variable locale.

Retours

iFeature.CurrentRowValue(“columnName”)

Lit une valeur à partir de la ligne trouvée à l'aide de la fonction iFeature.FindRow, où "columnName" est le nom du titre de la colonne. Il renvoie la valeur de la cellule tirée de la valeur de la ligne actuelle renvoyée par la fonction iFeature.FindRow. Par exemple :

i = iFeature.FindRow("RectangularPocket1", "pocketdepth", "=", 0.250)
pocketlength = iFeature.CurrentRowValue("pocketlength")
pocketwidth = iFeature.CurrentRowValue("pocketwidth")

Si la colonne n'existe pas dans l'iFonction, la règle affiche un message d'erreur.

iFeature.CurrentRowStringValue("columnName")

Utilisez cette fonction lorsque l'entrée recherchée dans la table d'iFonction est une chaîne de texte. Par exemple :

Part_number = iFeature.CurrentRowStringValue("Part Number")

iFeature.Tolerance

Utilisée avec la fonction iFeature.FindRow, cette fonction vous permet de rechercher une valeur comprise dans une plage plutôt qu'une valeur exacte. Il existe toujours une tolérance pour cette recherche. La tolérance par défaut est 0.0000001 et ne dépend pas des unités du document.

Syntaxe

iFeature.Tolerance = <valeur>

Permet de définir une tolérance plus élevée pour augmenter la plage de valeurs autorisées.

Exemple

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

Cet exemple correspond à une ligne avec une valeur pocketlength égale à 2.0004.