Utilisez les fonctions d'iPièces ou d'iEnsembles pour contrôler les configurations d'iPièces et d'iEnsembles dans un ensemble. Vous pouvez utiliser une règle pour modifier la configuration actuelle d'une iPièce ou d'un iEnsemble selon les conditions et la logique que vous définissez.
Ces fonctions utilisent des iEnsembles de la même façon que les iPièces, à l'exception des paramètres personnalisés qui ne peuvent être utilisés que pour les iPièces. Pour utiliser la fonction d'un iEnsemble, vous pouvez éventuellement remplacer iPart par iAssembly lors de la spécification de la fonction.
Pour accéder aux fonctions iPart ou iAssembly, développez le noeud iPièces sous l'onglet Système de la zone Extraits de code.
Des fonctions similaires sont disponibles pour les iFonctions. Reportez-vous à la rubrique fonctions iFeature pour plus d'informations.
Modifie la ligne active dans la table d'iPièce ou d'iEnsemble.
Syntaxe
iPart.ChangeRow("iChangedComponentName:1", "memberName")
“iChangedComponentName:1”
Nom du composant tel qu'il est affiché dans le navigateur de l'ensemble Autodesk Inventor. Permet de modifier le nom du composant par défaut affecté par Inventor pour le stabiliser et l'empêcher de changer lorsqu'une autre ligne est sélectionnée dans la table.
“memberName”
Nom attribué à la ligne dans la colonne Membre de la table.
Pour une iPièce avec des paramètres personnalisés, utilisez la syntaxe suivante pour afficher la liste des paramètres personnalisés après "memberName". Affiche dans le même ordre que dans la table :
iPart.ChangeRow("iChangedComponentName:1", "memberName", customParam1,customParam2)
Utilisez la syntaxe suivante pour spécifier un numéro de ligne au lieu d'un nom de membre. Le numéro de ligne est un nombre entier, commençant par 1 pour la première ligne (pour les iPièces normalisées uniquement) :
iPart.ChangeRow("iChangedComponentName:1", rowNumber)
Exemple
Dans cet exemple, la configuration actuelle de l'iPièce est modifiée en fonction d'une instruction conditionnelle qui évalue un paramètre utilisateur Inventor Port_1_Size. La fonction requiert uniquement le nom du composant d'iPièce port_1_Flange_screw et le nom de membre de la table d'iPièce Screw-01 pour contrôler la configuration d'iPièce active :
If Port_1_Size = .50 Then iPart.ChangeRow("port_1_flange_screw", "Screw-01") ElseIf Port_1_Size = .75 Then iPart.ChangeRow("port_1_flange_screw", "Screw-02") ElseIf Port_1_Size = 1.00 Then iPart.ChangeRow("port_1_flange_screw", "Screw-03") End If
Recherche dans la table d'iPièce ou d'iEnsemble, par colonne, la ligne contenant une valeur spécifique ou approximative et définit la configuration active pour la ligne trouvée.
Syntaxe
i=iPart.FindRow("iChangedComponentName:1", "columnName","<=",0.2,"columnName","<=", 4.1,"|",customParam1,customParam2)
i=iPart.FindRow("iChangedComponentName:1","columnName", "<=",d1,"columnName","<=",d2)
"i"
Variable locale qui peut être utilisée pour vérifier si une ligne correcte est trouvée.
"iChangedComponentName:1"
Nom du composant tel qu'il est affiché dans le navigateur de l'ensemble Inventor. Permet de modifier le nom du composant par défaut affecté par Inventor pour le stabiliser et l'empêcher de changer lorsqu'une autre ligne est sélectionnée dans la table.
"columnName"
Colonne de recherche dans la table d'iPièce. Utilisez le nom d'en-tête de colonne exactement tel qu'il apparaît dans la table d'iPièce.
Exemple
Cet exemple recherche une table d'iPièce pour une ligne avec des valeurs de colonne supérieures ou égales aux valeurs spécifiées. iLogic change la configuration d'iPièce active pour la ligne trouvée :
iPart.FindRow("port_1_flange_screw", "Thread_Diameter", ">=", 0.45, "Thread_Length", ">=", 2.0)
Dès qu'une ligne a été trouvée à l'aide de iPart.FindRow, cette fonction lit les valeurs de la colonne associées à cette ligne. Cette fonction lit uniquement les valeurs numériques. Utilisez iPart.CurrentRowStringValue pour lire les colonnes contenant des valeurs de texte.
Syntaxe
d0 = iPart.CurrentRowValue("columnName")
Toutes les fonctions suivantes définissent la ligne en cours :
iPart.FindRow or iPart.ChangeRow.
"columnName"
Nom de la colonne de la table d'iPièce que vous voulez.
Exemple
Dans cet exemple, nous allons rechercher dans la colonne Port_Size de la table d'iPièce port_1_flare_flange une valeur exacte correspondant à la valeur du paramètre Inventor Port_1_Size. Une fois la ligne trouvée, nous utilisons iPart.CurrentRowValue pour extraire les cotes des colonnes A_dim et B_dim de la table. Nous assignons ensuite les valeurs aux paramètres Inventor Port_1_screw_A_dim et Port_1_screw_B_dim :
i = iPart.FindRow("port_1_flare_flange", "Port_Size", "=", Port_1_Size) Port_1_screw_A_dim = iPart.CurrentRowValue("A_dim") Port_1_screw_B_dim = iPart.CurrentRowValue("B_dim")
Dès qu'une ligne a été trouvée à l'aide de iPart.FindRow, utilisez cette fonction pour lire les valeurs de la colonne associées à cette ligne. Cette fonction est similaire à la fonction iPart.CurrentRowValue, à ceci près qu'elle lit les valeurs de texte uniquement. Utilisez iPart.CurrentRowValue pour lire les colonnes contenant des valeurs numériques.
Syntaxe
iPart.CurrentRowStringValue("PartNumber")
Autre syntaxe pour le nom du composant
Pour spécifier un nom de composant qui ne change pas lorsque la ligne de l'iPièce est modifiée.
iPart.ChangeRow("iParentFileName:1", "memberName")
iPart.FindRow("iParentFileName:1","columnName","<=",d1,"columnName","<=",d2)
“iParentFileName:1”
Nom du fichier parent de l'iPièce, où ":1" remplace le fichier .ipt ou.iam habituel. Modifiez la variable ":1" par le numéro du composant avec lequel vous travaillez.
Bien que cette syntaxe soit prise en charge, elle n'est pas recommandée. Il existe une méthode plus classique qui consiste à modifier le nom du composant pour le stabiliser.
Extrait le nom de membre de la ligne active dans une occurrence du composant iPièce ou iEnsemble. Cette fonction est utile dans les règles déclenchées par l'événement Modifier le composant sur l'iPièce ou l'iEnsemble. Utilisez iPart.ChangeRow ou iPart.FindRow pour sélectionner une ligne automatiquement à partir d'une règle. Si vous souhaitez autoriser l'utilisateur à sélectionner une ligne manuellement, vous pouvez associer cet événement à l'aide de cette fonction pour réagir aux modifications.
Syntaxe
iPart.RowName("iChangedComponentName:1")
Exemple
memberName = iPart.RowName("port_1_flange_screw:1")
Extrait le numéro de ligne de la ligne active dans une occurrence du composant iPièce ou iEnsemble.
Syntaxe
iPart.RowNumber("iChangedComponentName:1")
Exemple
rowNumber = iPart.RowNumber("port_1_flange_screw:1")
Utilisée avec la fonction iPart.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
iPart.Tolerance = <value>
Permet de définir une tolérance plus élevée pour augmenter la plage de valeurs autorisées.
Exemple
Supposons que vous utilisez les instructions suivantes :
iPart.Tolerance = 0.001 i = iPart.FindRow("Block:1","length", "=", 2.3)
Ces instructions sont équivalentes à la recherche suivante sans tolérance :
i = iPart.FindRow("Block:1", "length", ">=", 2.299, "length","<=", 2.301)
Pour remplacer un membre d'iPièce par un membre d'une autre famille, utilisez Component.ReplaceiPart.