Fonctions de paramètres dans iLogic

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

Parameter

Paramètre ("parameterName")

Cette fonction modifie directement les valeurs du paramètre.

Dans un ensemble, vous pouvez accéder aux paramètres des composants masqués. Cependant, si un composant est masqué, vous ne pouvez pas accéder à son paramètre directement avec une instruction d'affectation telle que :

PartA.ipt.d12 = 6.3

Au lieu de cela, vous pouvez utiliser :

Parameter("PartA:1", "d12") = 6.3

Notez qu'un nom du composant est spécifié au lieu d'un nom de fichier. Bien que vous donniez à la fonction un numéro de composant spécifique, la modification du paramètre affecte toutes les occurrences du composant. Le nom du composant est simplement un moyen pour la fonction d'identifier le fichier.

Renommer le composant manuellement afin de conserver son nom si le composant est remplacé.

Vous pouvez également utiliser la fonction MakePath correspondant au nom du composant :

Parameter(MakePath("SubAssem1:1", "Part1:1"), "d12") = 6.3

Vous pouvez lire la valeur actuelle d'un paramètre à l'aide de la syntaxe de l'une des instructions suivantes :

param_val = Parameter("d0")

param_val = Parameter("PartA:1", "d0")

Comme illustré dans les exemples suivants, le paramètre peut être dans le document actif. Vous pouvez utiliser le nom des paramètres accessibles à partir de la règle.

Dans un composant qui n'est pas masqué, vous pouvez spécifier le nom de fichier à la place du nom de composant : vous pouvez utiliser cette méthode pour modifier un paramètre d'une pièce de base qui n'apparaît pas en tant que composant dans un ensemble :

Parameter("PartA.ipt", "d12") = 6.3

Si un paramètre est introuvable, la fonction Parameter génère un message d'erreur. Vous pouvez supprimer le message d'erreur de l'une des manières suivantes :

Parameter.Quiet = True

Utilisez cette technique si vous savez que le paramètre est manquant et que vous êtes préparé pour cette condition.

Accéder aux paramètres de pièces de base

Vous pouvez accéder aux paramètres dans une pièce de base à partir d'une pièce ou d'un ensemble dérivé. Vous pouvez également y accéder à partir d'un ensemble qui contient une pièce dérivée de la pièce de base.

Il est parfois utile de transférer les paramètres de la pièce de base à partir de règles dans l'ensemble. Cette technique est appelée modélisation verticale. Lorsque vous modifiez un paramètre de base, les paramètres liés de toutes les pièces dérivées sont également modifiés.

La pièce et ses paramètres ne sont pas toujours visibles dans l'arborescence du modèle de la boîte de dialogue Modifier la règle. Vous pouvez y accéder à l'aide de la fonction Paramètre. Par exemple, pour modifier un paramètre d'une pièce de base, utilisez :

Parameter("BaseShaft.ipt”, ”Diameter") = 0.125 in

En général, vous n'avez pas à lire de valeurs de paramètres à partir de la pièce de base. Les paramètres sont déjà liés dans la pièce ou l'ensemble dans lesquels vous travaillez.

Fonctions Parameter avancées

Utilisez la fonction Parameter.Param pour obtenir l'accès direct à un paramètre Inventor. L'objet renvoyé est le paramètre de type de l'API Autodesk Inventor :

param = Parameter.Param("parameterName")
If (param IsNot Nothing) Then
param.Expression = "5.0 in"
param.Tolerance.SetToDeviation(0.002 * 2.54, -0.004 * 2.54)
param.Comment = "Equation and Tolerance set by a rule"
End If

Vous pouvez également utiliser une seule ligne :

Parameter.Param("foo").Comment = "Commentaire défini par une règle"

Vous pouvez accéder à d'autres propriétés d'un paramètre Autodesk Inventor de l'une des manières suivantes :

param = Parameter.Param("parameterName")
param = Parameter.Param("componentName", "parameterName")

Ces fonctions produisent un objet de la classe Inventor.Parameter. Voir l'aide à la programmation d'Inventor pour plus d'informations sur cette classe.

Fonctions MultiValue

Utilisez des fonctions MultiValue pour accéder à la liste de valeurs stockées avec un paramètre multivaleur et modifier ces valeurs. Voici quelques exemples de leur utilisation :

MultiValue.SetList(“d0”, 0.5, 0.75, 1.0, 1.25)

Définit la liste des valeurs disponibles pour le paramètre d0.

MultiValue.SetList(“d0”, “3/8”, “d1 * 2”, “d1 * 3”)

Définit des équations au lieu de valeurs. Vous pouvez combiner des équations et des valeurs dans la liste.

MultiValue.SetList(“filename.ipt.str0”, “Value1”, “Value2”)

Définit une liste de valeurs pour un paramètre de texte dans une pièce.

MultiValue.SetList(“Part1:1”, “d0”, 0.5, 0.75, 1.0, 1.25)

Définit la liste de valeurs d'un paramètre dans un composant.

values = MultiValue.List(“d0”)

Extrait la liste de valeurs active, où la variable values est un objet de type VB.NET ArrayList.

MultiValue.SetValueOptions(True, DefaultIndex := 0, NumericCompare := “=”)

Force le paramètre à une valeur figurant dans sa liste multivaleur. Si vous modifiez la liste multivaleur par la suite, cette fonction définit également la valeur actuelle du paramètre sur l'une des valeurs de la liste. Cette fonction ne modifie pas la valeur si celle-ci est introuvable dans la nouvelle liste.

MultiValue.SetValueOptions(False)

Lorsque vous modifiez la liste multivaleur du paramètre, la valeur réelle du paramètre ne change pas. Ce comportement est le comportement par défaut de MultiValue.

MultiValue.List(“MyStringParam”) = iProperties.Materials

Définit un paramètre de texte sur une liste de valeurs équivalente à la liste de matières disponible dans la norme active.

MultiValue.List(“d0”) = New Double() {0.5, 0.75, 1.0, 1.25}

Utilise une autre méthode de définition de la liste de valeurs.

Des exemples qui utilisent des valeurs de Microsoft® Excel, reportez-vous à la section décrivant l'instruction GoExcel.CellValues.

MultiValue.UpdateAfterChange = True

Comme lorsque vous définissez le paramètre Parameter.UpdateAfterChange sur Vrai, cette instruction fait que le modèle Inventor est mis à jour après la modification de la valeur d'un paramètre par la fonction MultiValue.List ou MultiValue.SetList.

Le réglage Vrai met à jour le modèle (document) une fois que le paramètre est modifié. Cette fonction ne prend effet lorsque vous définissez des paramètres à l'aide de la fonction Paramètre :

Pour mettre à jour le modèle au milieu de la règle (après la modification de certains paramètres), utilisez ces deux instructions ensemble :
  • RuleParametersOutput()
    Remarque : - Cela permet de définir la valeur actuelle des variables locales de paramètre pour le modèle.
  • InventorVb.DocumentUpdate()
  • Si vous n'avez pas besoin de mise à jour du modèle au milieu de la règle, vous pouvez dire au système d'effectuer la mise à jour lorsqu'il a terminé d'exécuter la règle. Utilisez cette instruction : iLogicVb.UpdateWhenDone = Vrai.

MultiValue.Quiet = True

Masque le message d'erreur qui s'affiche lorsqu'un paramètre est introuvable. Utilisez cette fonction si vous savez que le paramètre est manquant et que vous êtes préparé pour cette condition. Par exemple, il est possible que le paramètre n'existe pas dans chaque pièce à laquelle s'applique la règle.

foundVal = MultiValue.FindValue(aList, "<=", 4.0)

Recherche la valeur dans une liste qui se rapproche le plus de la condition. aList peut être un ArrayList ou Array. L'argument pour la comparaison peut être "<=", "=" ou ">=".

L'exemple suivant recherche la valeur inférieure ou égale à 4.0. Si plusieurs valeurs existent, la valeur la plus proche de 4.0 est renvoyée. S'il n'existe pas de valeur correspondante, cet exemple renvoie la constante VB "Nothing".

foundVal = MultiValue.FindValue(MultiValue.List("d0"), "<=", 4.0)

Vous pouvez tester pour cette condition.