Problème que ça résout
Quand plusieurs conditions doivent piloter un même comportement (orientation, choix de stratégie, exceptions…), les définitions finissent en spaghetti de branchements :
- logique éclatée sur toute la canvas ;
- cas oubliés/incohérents aux intersections ;
- maintenance pénible dès qu’on ajoute un critère ;
- débogage flou (on ne sait pas “qui décide quoi”).
Solution (en une ligne)
Convertir chaque test en bit (0/1) → composer un index unique → router l’action depuis un point central (souvent un Sift Pattern ou un List item).
Quand l’utiliser
- Orientation ou comportement discret selon position/quadrant/plan;
- Sélection de stratégie (usinage, rendu, variante géométrique) selon 2–4 critères ;
- Gestion d’états (OK/KO, collision, tolérance, présence de matière, etc.) ;
- Matrices de cas où les If imbriqués deviennent illisibles.
Avant / Après
Avant : 4–8 branchements, fils croisés, décisions dupliquées.
Après : 1 bloc “Encode Logic” qui sort un index clair (0..N). Toute la décision se lit au même endroit.
Bénéfices concrets
- Lisibilité : un index explique “quel cas est actif”.
- Prévisibilité : table de vérité complète, pas d’implicite.
- Évolutivité : un critère en plus = un bit en plus (les cas existants ne bougent pas).
- Débogage : un Panel suffit (on affiche l’index et on voit la ligne active).
Exemple éclair (2 critères)
Critères : x ≥ 0 et y ≥ 0
Index : 2*A + B → {0,1,2,3}
Usage : router un flux puis opérer une série d’opération.
Limites (à connaître)
Seuils continus et tolérances mouvantes : traiter d’abord la robustesse des tests (snap/epsilon) avant d’encoder.
One-liner évident : si une seule expression calcule directement la sortie, pas besoin d’index.
Trop de critères (>5–6) : préférez une factorisation ou un diagramme d’états pour rester lisible.
Limites (à connaître)
Conclusion
Dès qu’il y a au moins deux cas à gérer, l’encodage binaire permet de prendre la décision au même endroit et d’éviter le spaghetti de conditions. Résultat : une définition plus lisible, plus simple à maintenir, et qui grandit sans tout recâbler.
En pratique :
Si c’est un critère → fais simple (une expression suffit).
Si la décision est multi-critère → encode en 0/1, 0..N et route depuis un point central.
Envie de tester ? Commence par un petit cas à 2 critères, affiche l’index dans un Panel, et regarde la définition respirer. Si besoin, on ajoute un encadré “2 cas — trois façons de faire” avec captures et blocs prêts à coller.




