Créer des règles dans l'ensemble

Dans les prochaines leçons, vous allez créer une série de règles pour gérer le contenu de l'ensemble.

Appliquer les paramètres de l'ensemble aux pièces

Ce modèle contient une pièce nommée manifold_block:1, qui contient des règles iLogic. Vous devez transmettre le paramètre de niveau de l'ensemble à la pièce.

  1. Créez une règle nommée assembly_to_parts_rule.

    Cette règle définit les paramètres de la pièce en fonction des valeurs correspondantes des paramètres de contrôle de l'ensemble. La fonction Paramètre indique le nom du composant ainsi que le nom du paramètre.

    Copier le bloc de code

    Parameter("manifold_block:1", "block") = block 
    Parameter("manifold_block:1", "component_type") = component_type
    Parameter("manifold_block:1", "port_a_size") = port_a_size
    Parameter("manifold_block:1", "port_b_size") = port_b_size
    Parameter("manifold_block:1", "port_c_size") = port_c_size
  2. Cliquez sur OK lorsque vous avez terminé de cette règle.

Modifier les règles de niveau pièce dans un ensemble

Dans le didacticiel Pièce du bloc collecteur, nous allons ajouter une règle à la pièce du bloc collecteur qui contrôle les styles T et coude. Vous devez également l'ajouter au niveau de l'ensemble. Au lieu de réenregistrer la règle existante, nous allons copier l'original.

  1. Cliquez deux fois sur manifold_block:1 dans le navigateur Modèle. Les autres composants deviennent transparents.
  2. Sur le ruban, cliquez sur l'onglet Gérer le groupe de fonctions iLogic Navigateur de règle .
  3. Cliquez deux fois sur component_type_rule.
  4. Copiez le texte de la règle dans le Presse-papiers.
  5. Cliquez sur Annuler dans la boîte de dialogue Modifier la règle pour la fermer.
  6. Cliquez deux fois sur my_manifold_block.iam dans le navigateur Modèle.
  7. Ajoutez une nouvelle règle nommée component_type_rule.
  8. Collez le texte copié de la règle de component_type_rule dans la zone de texte de la règle de la boîte de dialogue Modifier la règle.

    Copier le bloc de code

    If component_type = "standard" Then
    port_b_size = port_a_size
    port_c_size = port_a_size
    End If
  9. Cliquez sur OK pour enregistrer cette règle d'ensemble.

Ajouter port_a_rule

Lorsque vous modifiez la taille d'orifice de Port A, vous devez réaliser plusieurs tâches :

Pour ce faire, ajoutez une règle :

  1. Assurez-vous que votre ensemble de bloc collecteur est actif.
  2. Créez une règle nommée port_a_rule.

    La première partie de cette règle ajuste l'espacement du réseau de vis en fonction des informations stockées dans la table d'iPièce de l'union.

  3. Ajoutez un bloc de code qui recherche la ligne utilisée en fonction du paramètre port_a_size. puis attribue des valeurs différentes à deux paramètres d'ensemble différents dans deux autres colonnes.

    Copier le bloc de code

    i = iPart.FindRow("port_a_union", "port_size", "=", port_a_size)
    port_a_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_a_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    Remarque : Les instructions relatives à l'iPièce utilisées ici se trouvent dans la zone Extraits de code, sous le noeud iPièces de l'onglet Système.

    La pièce suivante de la règle sélectionne la ligne d'iPièce appropriée à l'intérieur de la vis basée sur la taille d'orifice sélectionnée.

  4. Utilisez une série d'instructions If pour définir le membre d'iPièce approprié en fonction de la valeur actuelle du paramètre port_a_size.

    Copier le bloc de code

    If port_a_size = .50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-01") 
    ElseIf port_a_size = 0.75 Then 
    iPart.ChangeRow("port_a_union_screw", "Screw-02")
    ElseIf port_a_size = 1.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-02")
    ElseIf port_a_size = 1.25 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-03")
    ElseIf port_a_size = 1.50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-04")
    ElseIf port_a_size = 2.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-04")
    ElseIf port_a_size = 2.50 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-05")
    ElseIf port_a_size = 3.00 Then
    iPart.ChangeRow("port_a_union_screw", "Screw-06")
    End If
  5. Dans la dernière partie de cette règle, ajoutez une instruction qui extrait le numéro de pièce du bord tombé évasé et l'enregistre dans un paramètre d'ensemble, qui sera utilisé ultérieurement dans une autre règle dans ce didacticiel.

    Copier le bloc de code

    port_a_union_part_number = iProperties.Value("port_a_union", "Project", "Part Number")
  6. Cliquez sur OK pour enregistrer la règle, puis enregistrez le fichier ensemble.

Ajouter port_b_rule

Port B est différent de Port A et Port C, car il n'existe pas dans un bloc collecteur coudé. Si le bloc collecteur est un bloc coudé, vous devez supprimer le couvercle-union et les vis d'union utilisées pour cet orifice. Vous devez également supprimer les contraintes de placage associées au couvercle-union.

Etant donné que nous masquons les composants, nous devons définir un niveau de détail avant d'écrire la règle. Les règles affectant les éléments associés au niveau de détail dans un ensemble requièrent la définition et l'enregistrement d'un niveau de détail personnalisé préalablement à l'écriture des règles. Si le niveau de détail personnalisé n'est pas défini, iLogic génère un message d'erreur.

Définir un niveau de détail

  1. Dans le navigateur Modèle, développez le noeud Représentations, puis le noeud Niveau de détail.
  2. Cliquez avec le bouton droit de la souris sur le noeud Niveau de détail et choisissez Nouveau niveau de détail.

    Un nouveau niveau de détail est ajouté.

  3. Cliquez deux fois lentement sur Niveau de détail1, puis renommez-le en iLogic.

Ecrire la règle

A présent, vous pouvez écrire la règle.

  1. Créez une règle nommée port_b_rule.
  2. Dans la première partie de la règle, déterminez si vous créez un bloc en T, et stockez l'information dans une variable séparée isTee. La variable isTee a pour valeur True ou False.

    Copier le bloc de code

    If block = "elbow" Then
    isTee = False
    ElseisTee = True
    End If

    Nous utiliserons cette variable ultérieurement afin de définir d'autres paramètres.

  3. Ajoutez des lignes à la règle pour désactiver les contraintes permettant de localiser l'union et la vis d'union lorsque le bloc collecteur est un coude, puis activez les contraintes lorsque le bloc collecteur est un T.

    Copier le bloc de code

    Constraint.IsActive("port_b_cap_center") = isTee
    Constraint.IsActive("port_b_cap_hole") = isTee
    Constraint.IsActive("port_b_cap_face") = isTee
    Constraint.IsActive("port_b_cap_screw") = isTee

    Notez que vous pouvez utiliser la variable isTee pour activer ou désactiver ces contraintes en fonction de la valeur du paramètre block.

    Remarque : La convention d'attribution de nom utilisée pour ces contraintes facilite leur référencement dans cette règle. N'oubliez pas que vous pouvez également utiliser les informations de l'arborescence Modèle dans la boîte de dialogue Modifier la règle pour terminer de nommer les contraintes.
  4. Ajoutez deux lignes qui incluent la pièce port_b_union et le réseau de vis correspondant :

    Copier le bloc de code

    Component.IsActive("port_b_union") = isTee
    Component.IsActive("port_b_screw_pattern") = isTee

    Ces lignes utilisent la variable isTee. Lorsque le réseau de vis est masqué, la vis est également masquée.

  5. Pour les instances dans lesquelles vous utilisez Port B, ajoutez une section définissant la taille de l'orifice, les valeurs de paramètre du réseau de vis et le numéro de pièce port_b_union.

    Copier le bloc de code

    if isTee Then
    i = iPart.FindRow("port_b_union", "port_size", "=", port_b_size)
    port_b_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_b_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    port_b_union_part_number = iProperties.Value("port_b_union", "Project", "Part Number")
    End If

    Nous avons inclus l'intégralité de ce bloc dans une instruction If isTee, de sorte que ces lignes soient traitées pour les blocs collecteurs en T. L'instruction If isTee Then équivaut à If isTee = True Then, mais elle offre un format d'expression plus concis.

    Sélectionnez d'abord la ligne appropriée dans la table d'iPièce de l'union, correspondant à la valeur du paramètre port_b_size, puis extrayez les valeurs à utiliser pour les décalages de réseau X et Y. Ensuite, extrayez le numéro de pièce de la pièce d'union et stockez sa valeur dans un autre paramètre pour référence ultérieure.

  6. Dans la dernière partie de cette règle, choisissez le membre dans la table d'iPièce de la vis à utiliser pour Port B. Il est basé sur la valeur du paramètre port_b_size. Utilisez une série d'instructions If/Then/Else pour le contrôler.

    Copier le bloc de code

    If port_b_size = .50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-01")
    elseif port_b_size = .75 then
    iPart.ChangeRow("port_b_union_screw", "Screw-02")
    elseif port_b_size = 1.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-02")
    elseif port_b_size = 1.25 then
    iPart.ChangeRow("port_b_union_screw", "Screw-03")
    elseif port_b_size = 1.50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-04")
    elseif port_b_size = 2.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-04")
    elseif port_b_size = 2.50 then
    iPart.ChangeRow("port_b_union_screw", "Screw-05")
    elseif port_b_size = 3.00 then
    iPart.ChangeRow("port_b_union_screw", "Screw-06")
    End If
  7. Cliquez sur OK pour fermer la boîte de dialogue et enregistrer la règle.
  8. Enregistrez votre fichier ensemble.

Ajouter port_c_rule

La règle pour Port C est pratiquement la même que pour Port A, sauf que tout élément faisant référence à Port A doit faire référence à Port C.

  1. Ouvrez le navigateur Règle.
  2. Cliquez deux fois sur port_a_rule.
  3. Utilisez le bouton de la souris pour mettre en surbrillance l'ensemble de la règle.
  4. Utilisez la combinaison de touches Ctrl+C pour copier le texte de la règle.
  5. Cliquez sur OK dans la boîte de dialogue Modifier la règle pour la fermer.
  6. Ajoutez une nouvelle règle nommée port_c_rule.
  7. Dans la boîte de dialogue Modifier la règle, cliquez sur la règle dans la zone de texte, puis utilisez la combinaison de touches Ctrl+V pour coller la règle.
  8. Cliquez sur l'onglet Rechercher et remplacer dans la partie supérieure de la boîte de dialogue.
  9. Entrez port_a dans Rechercher.
  10. Entrez port_c dans Remplacer par.
  11. Activez l'option Respecter la casse.
  12. Cliquez sur Tout remplacer dans cette règle.

    Copier le bloc de code

    i = iPart.FindRow("port_c_union", "port_size", "=", port_c_size)
    port_c_y_dist_between_screws = iPart.CurrentRowValue("y_dist_betwn_screw")
    port_c_x_dist_between_screws = iPart.CurrentRowValue("x_dist_betwn_screw")
    
    If port_c_size = .50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-01")
    elseif port_c_size = .75 then
    iPart.ChangeRow("port_c_union_screw", "Screw-02")
    elseif port_c_size = 1.00 then
    iPart.ChangeRow("port_c_union_screw", "Screw-02")
    elseif port_c_size = 1.25 then
    iPart.ChangeRow("port_c_union_screw", "Screw-03")
    elseif port_c_size = 1.50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-04")
    elseif port_c_size = 2.00 then
    iPart.ChangeRow("port_c_union_screw" "Screw-04")
    elseif port_c_size = 2.50 then
    iPart.ChangeRow("port_c_union_screw", "Screw-05")
    elseif port_c_size = 3.00 then
    iPart.ChangeRow("port_c_union_screw", "Screw-06")
    End If
    
    port_c_union_part_number = iProperties.Value("port_c_union", "Project", "Part Number")
  13. Cliquez sur OK pour fermer la boîte de dialogue.
  14. Enregistrez votre fichier ensemble.

Précédent | Suivant