← Tous les articles
Blog · Octobre 2026

Diamètre, filetage, raccord : trois systèmes de cotes dans le même catalogue

Chez un fournisseur, le raccord est un 15x21. Chez le suivant, c'est un demi-pouce. Sur la facture du troisième, c'est un DN15. Les trois cotent la même pièce, dans trois systèmes qui n'ont pas la même origine ni la même unité. Nous avons passé les graphies réelles au pack plomberie de notre moteur : il en isole deux, il en perd une, et sur un filetage il produit en plus une annotation qui est fausse.

Trois systèmes de cotes, et le moteur en lit deux et demi

Un raccord d'alimentation se cote en filetage au pas du gaz, notation française : 15x21, 20x27, 26x34. Un tube se cote en diamètres, extérieur et intérieur : 14x16, 16x18, 22x24. Une vanne se cote en diamètre nominal : DN20. Et par-dessus, le pouce anglo-saxon survit : le 15x21 est un demi-pouce, et un fournisseur sur trois l'écrit comme ça.

Le pack plomberie énumère les filetages valeur par valeur — 12x17, 15x21, 20x27, 26x34, 33x42, 40x49, 50x60 — et c'est une liste, pas une classe de caractères. La différence n'est pas cosmétique : la version antérieure du motif écrivait une classe qui générait 12x20, 12x21 et 15x20, trois tailles qui n'existent pas, et oubliait le 12x17, qui existe. Une énumération écrite comme un motif ne se relit plus. Corrigé dans le pack le 27 août 2026 ; l'effet mesuré alors, sur le référentiel de 3 000 produits du vertical, est de 678 annotations de filetage à 713, et les 35 nouvelles sont exactement les 12x17.

La mesure

Mesure maison. Étiquettes passées à la cascade d'annotations du pack plomberie le 20 octobre 2026, moteur au commit d25011d, chaque étiquette passée deux fois — cascade Python et cœur Rust de production — avec le même résultat sur les sept.

Libellé produitAnnotations rendues
Raccord laiton male 15x21FAM_RACCORD · FILET_15x21 · GENRE_MALE · MAT_LAITON · RACC_15x21 · TUBE_15X21
Manchon 1/2 pouce laitonFAM_RACCORD · MAT_LAITON · POUCE_1/2
Manchon 1/2" laitonFAM_RACCORD · MAT_LAITON
Tube cuivre 14x16 barre 4mFAM_TUBE · MAT_CUIVRE · TUBE_14X16 · TUBE_MAT_CUIVRE
Tube multicouche 20x2 nuFAM_TUBE · MAT_PER · TUBE_MAT_PER
Vanne a bille DN20 PN16 laitonDN_20 · FAM_VANNE · MAT_LAITON · PN_16 · VANNE_DN_20
Raccord MM cuivre 16 mmFAM_RACCORD · GENRE_MALE · MAT_CUIVRE

Ce que cette table dit de bien, d'abord. Sur la ligne de la vanne, le diamètre nominal et la pression nominale sont séparés alors qu'ils partagent exactement la même forme — deux lettres, un nombre. C'est la distinction qu'un plombier fait et qu'une recherche textuelle perd. Sur la dernière ligne, « MM » est lu comme le genre mâle-mâle et les « 16 mm » qui suivent ne le sont pas : le motif exige que le « mm » ne suive pas un nombre.

Ce détail a coûté cher avant d'être réglé. Sur les 3 000 produits du référentiel, le « mm » précédé d'un nombre — le millimètre — apparaît 662 fois, et le « mm » du raccord mâle-mâle 205 fois : le sens parasite était trois fois plus fréquent que le sens voulu. Chaque tube, coude et manchon recevait donc le genre mâle. Ce n'était pas une recherche qui échoue, c'était une facette fausse : filtrer « mâle » rendait la moitié du catalogue. Corrigé le 27 août 2026, avec l'effet mesuré sur ce même référentiel : 1 031 annotations de genre mâle, soit 34,4 %, ramenées à 466, soit 15,5 %. Le genre femelle reste à 560, inchangé, ce qui borne l'effet au seul défaut visé.

Ce que le moteur perd, et ce qu'il affirme à tort

Le pouce écrit au guillemet est perdu. Troisième et quatrième lignes de la table : « 1/2 pouce » rend POUCE_1/2, « 1/2" » ne rend rien de la cote. La règle accepte pourtant le guillemet. Mais la normalisation du moteur n'admet que le point, la virgule, la barre oblique et le tiret comme séparateurs internes : le guillemet disparaît avant que la règle s'exécute. Le motif prévoit une graphie que le tokeniseur ne lui livrera jamais. Ce n'est pas une erreur de logique — c'est une règle écrite sans savoir ce que la normalisation laisse passer, et c'est la troisième fois dans nos packs, après le degré des vins et le pied des planches de surf.

La dimension du multicouche est perdue. Cinquième ligne : « Tube multicouche 20x2 nu » rend la famille et la matière, aucune dimension. Le motif de dimension de tube exige deux chiffres de part et d'autre du x. Or le multicouche et le PER se notent « diamètre extérieur × épaisseur de paroi » : 16x2, 20x2, 26x3. Le second nombre a un seul chiffre. Le motif couvre donc le cuivre et manque le PER et le multicouche, c'est-à-dire l'essentiel des installations neuves depuis vingt ans.

Et un filetage reçoit une annotation fausse. Première ligne de la table : le raccord 15x21 porte FILET_15x21 — juste — et TUBE_15X21 — faux, il n'existe pas de tube de dimension 15×21. Les deux motifs matchent la même chaîne, celui du filetage par énumération et celui du tube par « tout couple de deux chiffres ». Ce n'est pas un silence comme les deux pertes ci-dessus : c'est une affirmation produite avec la même confiance que la vraie, et elle entre dans le flux du niveau 2.

Elle se voit à la recherche. Même protocole, cinq produits indexés :

P1  Raccord laiton male 15x21
P2  Raccord laiton male 1/2 pouce
P3  Raccord laiton male 1/2"
P4  Raccord laiton male 20x27
P5  Tube cuivre 14x16 barre 4m

requete « raccord 15x21 »      ->  P1 52,0   P2 12,0   P3 12,0   P4 12,0
requete « raccord 1/2 pouce »  ->  P2 38,0   P3 18,3   P1 12,0   P4 12,0
requete « raccord 1/2" »       ->  P2 22,0   P3 22,0   P1 12,0   P4 12,0
requete « tube 15x21 »         ->  P1 19,5   P5 12,0

La dernière ligne est le défaut en entier : une recherche de tube 15x21 — un produit qui n'existe pas — rend un raccord en tête, devant le seul vrai tube du catalogue. L'explication de résultat que rend le moteur nomme TUBE_15X21 parmi ce qui a compté pour ce classement : l'annotation fausse ne décore pas, elle pèse.

Le correctif évident est interdit, et la raison est technique. Une assertion avant excluant les sept filetages fonctionne sous le moteur d'expressions régulières de Python, et le cœur Rust de production la refuse — « look-around is not supported » — sans repli possible. Aucun de nos packs ne peut porter d'assertion avant ou arrière. Ce qui débloquerait : la série normalisée complète des tubes de cuivre, de PER et de multicouche, vérifiée sur un catalogue réel. Alors l'énumération s'écrit comme celle des filetages. Nous ne l'avons pas, et l'inventer mettrait dans un pack de production des valeurs plausibles et non vérifiées — exactement le défaut que la correction du 27 août a retiré.

La limite assumée : 15x21 et 1/2" ne sont pas reliés

La deuxième ligne du banc le dit : sur « raccord 1/2 pouce », le raccord 15x21 arrive au même rang qu'un raccord 20x27, qui est un trois-quarts de pouce. Or 15x21 est le demi-pouce. Le pack ne porte aucun groupe de synonymes — vérifié : ni le pack plomberie ni le pack électricité n'en déclarent — et aucune règle ne traduit une cote d'un système dans l'autre. Une règle reconnaît une forme ; une table de conversion est une autre nature d'objet, et aucun motif, aussi bien écrit soit-il, ne la produit depuis le texte seul.

Pour la suite

Le remède est le même que pour les autres pertes, et il se mesure. Le même raccord, deux fois, avec l'équivalence portée en description sur le second :

P1  Raccord laiton male 15x21
P2  Raccord laiton male 15x21
    description : « Filetage 15x21, soit 1/2 pouce »

requete « raccord 1/2 pouce »  ->  P2 30,0   P1 12,0
requete « raccord 15x21 »      ->  P2 54,0   P1 52,0

Une ligne de description, et la pièce est trouvée par les deux systèmes de cotes. Le travail est de l'écrire une fois par famille de filetages, pas une fois par référence : sept valeurs couvrent l'alimentation.

Si votre catalogue porte déjà ses diamètres nominaux, ses pressions, ses matières et ses genres, le pack les lit sans configuration — notre page Plomberie & sanitaire détaille les familles et les attributs qu'il reconnaît. S'il mélange les trois systèmes de cotes, c'est un champ indexé qui les réunit, pas une mise à jour du moteur.

Essai gratuit 14 jours

Testez Heurix sur votre catalogue, sans carte bancaire.

Démarrer l'essai gratuit