iLogic : le guide complet — Chapitre 7 / 7

Gérer les filetages avec Feature

Quand vous modélisez des pièces mécaniques, les filetages sont rarement fixes : le diamètre d'un perçage taraudé dépend d'un paramètre, et la désignation du filetage doit suivre. iLogic propose un ensemble de fonctions dans l'interface Feature pour lire et modifier les propriétés de filetage directement depuis vos règles.

Lire et écrire la désignation d'un filetage

La fonction Feature.ThreadDesignation permet de lire ou de définir la désignation du filetage d'une fonction filetée ou d'un perçage taraudé. La désignation doit correspondre exactement à la chaîne affichée dans le champ Désignation de la boîte de dialogue de modification de la fonction.

' Lire la désignation actuelle
designation_actuelle = Feature.ThreadDesignation("Filetage1")

' Définir une nouvelle désignation
Feature.ThreadDesignation("Filetage1") = "M10x1.5"

Quand vous définissez la désignation d'un perçage taraudé, la taille du perçage s'ajuste automatiquement pour correspondre au filetage. Vous n'avez pas besoin de recalculer le diamètre de perçage vous-même.

Pour une tige filetée, vous pouvez modifier le diamètre et la désignation en même temps, à condition que le diamètre soit compatible avec la désignation :

If type_tige = "petite" Then
    Feature.ThreadDesignation("Filetage1") = "M8x1.25"
    diametre_tige = 8
ElseIf type_tige = "grande" Then
    Feature.ThreadDesignation("Filetage1") = "M12x1.75"
    diametre_tige = 12
End If

Modifier le type, la désignation et la classe en une seule opération

Feature.ThreadDesignation ne modifie que la désignation. Si vous devez aussi changer le type de filetage (par exemple passer d'un filetage en pouces à un filetage métrique) ou la classe, utilisez Feature.SetThread. Cette fonction prend quatre arguments :

Feature.SetThread("nom de la fonction", "type de filetage", "désignation", "classe")

Par exemple, pour définir un filetage ISO métrique M10x1.5 avec une classe 6H sur un perçage :

Feature.SetThread("Perçage1", "Profil métrique ISO", "M10x1.5", "6H")

SetThread est la seule fonction qui permet de basculer entre les systèmes de filetage (pouces vers métrique ou inversement). En revanche, vous ne pouvez pas passer d'un filetage droit à un filetage conique (ni l'inverse) avec cette fonction.

Filetages coniques — Pour un filetage conique, passez une chaîne vide "" pour la classe de filetage. Vous pouvez aussi utiliser la taille au lieu de la désignation complète.

Lire le type et la classe d'un filetage

Deux fonctions complémentaires permettent de consulter les propriétés d'un filetage existant :

' Lire le type de filetage (ex. : "Profil métrique ISO")
type_actuel = Feature.ThreadType("Filetage1")

' Lire la classe de filetage (ex. : "6H")
classe_actuelle = Feature.ThreadClass("Filetage1")

Ces fonctions sont utiles pour vérifier l'état actuel avant d'appliquer une modification, ou pour afficher des informations dans un formulaire iLogic.

Modifier la classe seule

Si le type et la désignation restent inchangés et que seule la classe doit évoluer, utilisez Feature.ThreadClass en écriture :

' Passer à une classe plus précise
Feature.ThreadClass("Filetage1") = "6g"

Plus le chiffre de la classe est élevé, plus le filetage est précis. Cette fonction ne s'applique pas aux filetages coniques.

Travailler au niveau de l'assemblage

Toutes les fonctions Feature acceptent un argument supplémentaire pour cibler une fonction dans un composant de l'assemblage. Vous pouvez identifier le composant par son nom d'occurrence ou par son nom de fichier :

' Par nom d'occurrence
Feature.ThreadDesignation("Plaque:1", "Perçage1") = "M6x1"
Feature.SetThread("Plaque:1", "Perçage1", "Profil métrique ISO", "M6x1", "6H")

' Par nom de fichier
Feature.ThreadDesignation("Plaque.ipt", "Perçage1") = "M6x1"

' Lire le type et la classe d'un composant
type_actuel = Feature.ThreadType("Plaque:1", "Perçage1")
classe_actuelle = Feature.ThreadClass("Plaque:1", "Perçage1")

Cela permet de piloter les filetages de toutes les pièces d'un assemblage depuis une règle unique au niveau de l'ensemble.

Masquer et afficher des fonctions filetées

Comme pour toute fonction Inventor, vous pouvez masquer ou afficher une fonction filetée avec Feature.IsActive :

' Masquer un perçage taraudé selon une condition
If option_filetage = False Then
    Feature.IsActive("Perçage1") = False
Else
    Feature.IsActive("Perçage1") = True
End If

Quand vous masquez une fonction, ses fonctions dépendantes sont également masquées automatiquement.

Exemple complet : adapter le filetage au diamètre

Voici un exemple concret de règle interne qui surveille le paramètre diametre et met à jour automatiquement le filetage ISO métrique d'un perçage. La règle utilise un Select Case pour associer chaque diamètre standard à sa désignation normalisée :

' Règle iLogic : Adapter le filetage ISO métrique au diamètre du perçage
' Déclencheur : modification du paramètre "diametre" (variable bleue)

Dim diam As Double = diametre
Dim designation As String = ""

Select Case diam
    Case 1    : designation = "M1x0.25"
    Case 1.2  : designation = "M1.2x0.25"
    Case 1.4  : designation = "M1.4x0.3"
    Case 1.6  : designation = "M1.6x0.35"
    Case 1.8  : designation = "M1.8x0.35"
    Case 2    : designation = "M2x0.4"
    Case 2.5  : designation = "M2.5x0.45"
    Case 3    : designation = "M3x0.5"
    Case 3.5  : designation = "M3.5x0.6"
    Case 4    : designation = "M4x0.7"
    Case 5    : designation = "M5x0.8"
    Case 6    : designation = "M6x1"
    Case 7    : designation = "M7x1"
    Case 8    : designation = "M8x1.25"
    Case 10   : designation = "M10x1.5"
    Case 12   : designation = "M12x1.75"
    Case 14   : designation = "M14x2"
    Case 16   : designation = "M16x2"
    Case 18   : designation = "M18x2.5"
    Case 20   : designation = "M20x2.5"
    Case 22   : designation = "M22x2.5"
    Case 24   : designation = "M24x3"
    Case 27   : designation = "M27x3"
    Case 30   : designation = "M30x3.5"
    Case 33   : designation = "M33x3.5"
    Case 36   : designation = "M36x4"
    Case 39   : designation = "M39x4"
    Case 42   : designation = "M42x4.5"
    Case 45   : designation = "M45x4.5"
    Case 48   : designation = "M48x5"
    Case Else
        designation = ""
End Select

If designation = "" Then
    MsgBox("Le diamètre " & diam.ToString() & " mm ne correspond à aucun filetage ISO métrique standard.", vbExclamation, "Filetage non trouvé")
Else
    Feature.SetThread("Perçage1", "Profil métrique ISO", designation, "6H")
End If

Puisque diametre est utilisé comme variable bleue (via Dim diam As Double = diametre), la règle se déclenche automatiquement chaque fois que ce paramètre change — sans avoir besoin de configurer un déclencheur d'événement.

Si l'utilisateur saisit un diamètre qui ne correspond à aucun filetage normalisé — par exemple 11 mm — la règle affiche un message d'avertissement au lieu de modifier le filetage. Cela évite d'appliquer silencieusement une désignation incorrecte.

Modification automatique du filetage

Récapitulatif des fonctions

Fonction Lecture Écriture Rôle
Feature.ThreadDesignation Oui Oui Désignation du filetage (ex. : "M10x1.5")
Feature.SetThread Oui Type + désignation + classe en une opération
Feature.ThreadType Oui Type de filetage (ex. : "Profil métrique ISO")
Feature.ThreadClass Oui Oui Classe de filetage (ex. : "6H", "6g")
Feature.IsActive Oui Oui Masquer / afficher la fonction

Coup de pouce Besoin d'un développement Inventor (iLogic, .NET, VBA, C++) ou Fusion 360 (Python, C++) ? Contactez-moi pour un devis gratuit.