iLogic fournit des fonctions de règles pour la définition ou la lecture des couleurs et des états de masquage de composant ainsi qu'une fonction pour remplacer un composant par un autre. Ces fonctions sont utiles pour contrôler les différentes configurations des pièces ou des ensembles.
Vous pouvez créer un modèle (pièce ou ensemble) qui inclut les composants nécessaires pour représenter toutes les configurations correctes et possibles d'un produit. Cette méthode est appelée "super modélisation". Lorsque les composants d'un ensemble ou d'une pièce sont trop complexes ou nombreux et que la super modélisation devient impossible, utilisez la fonction Component.Replace.
Pour accéder aux fonctions Component, développez le noeud Composants sous l'onglet Système de la zone Extraits de code.
Attribution d'un nom de composant
Personnalisez tous les noms de composants avant de référencer les noms dans une règle. Lorsque vous modifiez le nom du composant affecté par défaut par Autodesk Inventor, vous vous assurez qu'il ne change pas lorsque le fichier .ipt ou .iam référencé est modifié.
Vous pouvez renommer le composant avec son nom d'origine et conserver sa stabilité. Pour modifier le composant, apportez une modification mineure au nom, puis rétablissez l'original.
Pour un composant du Centre de contenu, un changement de nom est requis pour la fonction Component.IsActive ainsi que pour la fonction Component.Replace.
Définit ou lit l'état de masquage et la structure de nomenclature d'un composant d'ensemble. Utilisez cette fonction pour inclure ou exclure un composant dans une configuration d'ensemble.
La fonction s'applique à un seul composant ou à des réseaux de composants. Pour les réseaux, utilisez le nom du réseau. Le réseau doit être au même niveau d'ensemble que la règle, et non dans un sous-ensemble.
Ne masquez pas les sous-composants. Il est donc préférable d'effectuer le masquage à partir d'une règle située au sein du composant.
Par exemple, un ensemble nommé TopAssembly contient un sous-ensemble SubAssembly:1 qui, lui-même, contient une pièce SamplePart:1.
Utilisez une règle de SubAssembly pour masquer SamplePart:1. Cette règle peut disposer d'un paramètre qui contrôle l'état de masquage, et vous pouvez manipuler le paramètre par une règle dans TopAssembly.
Lorsque vous utilisez iLogic pour masquer un composant, la structure de nomenclature du composant est définie sur Référence. Cette action évite que ce composant s'affiche dans la nomenclature. Il apparaît dans la vue des données de modèle, mais pas dans la vue Structuré ou Pièces uniquement. Si le composant est visible, iLogic renvoie le composant à son état avant le masquage (de type Normal, Indivisible et Acheté ou Fantôme).
Avant d'utiliser une règle iLogic pour modifier l'état de masquage d'un composant d'ensemble, créez et activez un niveau de détail personnalisé.
Syntaxe
Component.IsActive("ComponentName")
Exemples
Vous pouvez utiliser la valeur 1 au lieu de true et 0au lieu de false.
Pour définir l'état de masquage et la structure de la nomenclature :
Component.IsActive("PartA:1") = false Component.IsActive("PartB:1") = 0 Component.IsActive("PartC:1") = false Component.IsActive("PartD:1") = 0
Pour lire l'état de masquage et la structure de la nomenclature :
MyBooleanParam = Component.IsActive("ComponentName:1) If Component.IsActive("PartE") Then ' do something End If
Variation de Component.IsActive, cette fonction définit ou lit l'état de masquage d'un composant d'iPièce ou d'iEnsemble. Si vous n'avez pas modifié manuellement le nom du composant, les iPièces et les iEnsembles requièrent l'utilisation de cette syntaxe dédiée.
Il est conseillé de modifier le nom du composant. Si vous le souhaitez, vous pouvez ensuite utiliser Component.IsActive au lieu de cette fonction.
Syntaxe
Component.iComponentIsActive(“iPartParentName:1”)
iPartParentName
Le nom de pièce de famille sans l'extension de nom de fichier .ipt.
Définit ou lit la couleur d'un composant.
Syntaxe
Component.Color(“iPartA:1”)
Exemples
Pour définir la couleur :
Component.Color("iPartA:1") = "Green" Component.Color("iPartA:2") = "Aluminum (Cast)" Component.Color("iPartA:3") = "As Material"
Pour lire la couleur :
MyStringParameter = Component.Color("iPartA:1")
Définit ou lit la visibilité d'un composant. Cette fonction ne change pas la structure de nomenclature du composant.
Syntaxe
Component.Visible("componentName")
Exemples
Pour définir la visibilité :
Component.Visible("Plate") = true Component.Visible("Bearing") = false
Pour lire la visibilité :
parameter = Component.Visible("Plate") parameter = Component.Visible("Bearing")
If Component.Visible("PartE") Then do something End If
Indique si un fichier composant doit être enregistré dès qu'il change et ensuite si le composant doit être masqué par une règle.
Syntaxe
Component.SkipDocumentSave = True
Lorsque cette option est définie sur True, le fichier composant n'est pas enregistré.
La valeur par défaut est False (Component.SkipDocumentSave = False) ; le fichier composant est enregistré.
Remplace une pièce ou un sous-ensemble par un(e) autre. Cette fonction peut également être utilisée pour remplacer des réseaux de composants.
Utilisez des iContraintes dans des composants en cours de modification pour conserver les contraintes d'ensemble tel quel. Vous pouvez remplacer une pièce par une pièce, une pièce par un ensemble ou un ensemble par une pièce.
La fonction recherche dans plusieurs dossiers le fichier à utiliser en remplacement :
Le nom de fichier peut être un chemin relatif (par rapport à l'un de ces emplacements de recherche).
Syntaxe
Component.Replace(“ComponentToReplaceName”, “OtherPartfilename.ipt”, <replaceAll>)
ComponentToReplaceName
Nom de la pièce ou du sous-ensemble à remplacer.
OtherPartfilename
Pièce ou ensemble de remplacement.
<replaceAll>
Définissez cette valeur booléenne sur True pour remplacer toutes les occurrences de ce composant. Définissez la valeur sur False pour remplacer uniquement l'occurrence avec ce nom.
Exemple
If PartType = "Type A" Then Component.Replace("Widget","PartA.ipt", True) ElseIf PartType = "Type B" Then Component.Replace("Widget","PartB.ipt", True) End If
Cette variation de la fonction Component.Replace remplace un composant dans un ensemble par un autre composant de niveau de détail spécifique.
Syntaxe
Component.Replace("SubAssem:1", "OtherAssemFilename.iam<Level of Detail>", <replaceAll>)
Dans cette fonction, l'argument <replaceAll> est le même que celui indiqué pour la fonction Component.Replace plus générique.
Vous pouvez également remplacer un sous-ensemble par le même sous-ensemble de niveau de détail différent.
Requise pour les iPièces avec des paramètres personnalisés, cette fonction est également recommandée pour les iPièces normalisées. Utilisez-la à la place de Component.Replace lorsque le composant est une iPièce. Vous pouvez utiliser iPart.ChangeRow ou iPart.FindRow après le remplacement pour changer la configuration d'iPièce spécifique.
Pour une iPièce avec des paramètres personnalisés, répertoriez les valeurs des paramètres personnalisés après le numéro de ligne. Ces valeurs doivent s'afficher dans l'ordre dans lequel elles apparaissent dans le tableau.
Syntaxe
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber)
Utilisez rowNumber pour remplacer le composant et choisissez une ligne d'iPièce en même temps.
Exemples
Pour définir les paramètres personnalisés, répétez les valeurs personnalisées dans Component.ReplaceiPart et à nouveau dans iPart.ChangeRow ou ultérieurement dans iPart.FindRow dans la règle.
Pour ChangeRow :
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) iPart.ChangeRow("iPart1:1", rowNumber, customParam1, customParam2)
Pour FindRow :
Component.ReplaceiPart("iPart1:1", "OtherPartfilename.ipt", True, rowNumber, customParam1, customParam2) i = iPart.FindRow("iPart1:1", "Dia", ">=", 3.0, "r;|", customParam1, customParam2)
Définit le chemin d'accès à un nom de composant d'un sous-ensemble. Pour spécifier le chemin d'accès, liste tous les niveaux dans l'ordre dans lequel ils apparaissent dans l'arborescence. Cette fonction est nécessaire si vous voulez spécifier un nom de composant lorsque le même nom existe déjà ailleurs dans l'ensemble.
Syntaxe
MakePath(“SubassemblyComponentName”,“PartComponentName”)
Exemples
Component.Color(MakePath("SubAssem1:1", "Part2:1")) = “Green” Component.IsActive(MakePath("SubAssem1:1", "SubSubAssem2:1", "Part2:1")) = “Yellow”