Les Opérations Booléennes

Les opérations booléennes

Ce terme est issu de l’algèbre de Boole, provient de George Boole. Mathématicien anglais qui restructura complètement durant le milieu du XIXe siècle la logique en un système formel. (Un peu d’histoire ne fait de mal à personne ;) )

Voyons un exemple concret pour illustrer les propos.

Cet exemple est parfait pour montrer l’importance du booléen dans la construction d’un solide.

Je sais que ce n’est pas un moteur de voiture, mais pour expliquer la suite et que chacun puisse comprendre l’intérêt du booléen, le solide reste très bien.

D’un point de vue géométrique, le solide est considéré comme complexe.

Voyons maintenant ce que le booléen apporte à la conception de cet objet. Mais avant cela, parlons des opérations.

 

Les opérations booléennes reposent sur des opérations mathématiques basiques qui sont :

 

  • L’addition +
  • La soustraction –
  • L’intersection ∩.

 

Mince, ce que je veux faire, c’est de la conception et pas des mathématiques. :)

Vous allez voir, ce n’est pas très compliqué, voir très simple, et puis, ce n’est rien à ce que nous pouvons avoir en surfacique. ;)

Addition (+): ou union U. Permet à deux corps de pièces de s’additionner.

Soustraction (-) : ou retrait, permet de soustraire un corps de pièce à un autre.

L'intersection () : ou le résultat est la partie commune des deux solides.

Voilà pour ce qui est des opérations basiques booléennes. Vous voyez, rien de bien sorcier.

Revenons à notre exemple de départ pour reproduire cette géométrie complexe en utilisant les primitives et les fonctions.

Primitives utilisés :

Et maintenant appliquons simplement et logiquement les opérations sur les primitives.

Lecture de bas en haut.

Voilà exactement le processus de fonctionnement des opérations booléennes.

Maintenant, jetons un coup d’œil à l’arbre de construction :

Ce qui est important de souligner, c’est l’aspect logique de la construction.

Rappelons qu’avec Catia V4, l’utilisation des fonctions booléennes étaient absolument nécessaire pour concevoir en solide des formes complexes (bien plus complexes que les exemples cités en référence).

Avec l’arrivée de Catia V5, cette notion d’opération booléenne n’est pas mise en avant dans la conception. Certaines formations Catia V5, ne font même pas référence aux opérations Booléennes et c'est très dommage.

Cette version 5 de Catia, permet de réaliser la même pièce avec des features dans un même corps de pièces.

Voici la même pièce réalisée en construction features.

Il est intéressant de constater, que cette construction comporte 5 features alors que la conception précédente en Booléenne est composé de 5 features + 4 fonctions booléennes.

Alors, pourquoi utiliser la technologie booléenne alors qu’avec une conception feature classique l’on a moins d’éléments dans l’arbre et surtout on ou l'on passe bien moins de temps en conception?

Simplement, pour les raisons évoquées plus hauts, le fait que la conception booléenne apporte bien plus de souplesse que la construction classique, mais qu’elle est efficacement LOGIQUE.

Dans le passé, sur V4, un bon designer avait pour règle de rendre sa construction solide la plus plate possible (Pyramidale) en opposition à une construction verticale (ou souvent appelé peuplier). Les utilisateurs V4 me comprendrons. :)

Bien sûr, l’exemple en référence est très simple finalement pour démontrer que la construction booléenne est plus intéressante que l’autre.

Mais je n’ai pas dit mon dernier mot et je vais vous montrer qu’avec un objet même très simple, la construction verticale va se montrer moins bonne.

Première remarque : Avec une construction verticale, les éléments s’enchainent les uns après les autres. Une erreur détectée en haut de l’arbre, peut provoquer un enchainement d'erreurs sur le reste de la conception et devenir catastrophique dans une conception comportant un nombre important de features.

Deuxième remarque : Les temps de calculs pour une mise à jour est bien moins importants dans une conception booléenne que dans une construction verticale. Simplement par le fait que chaque corps de pièce est calculé séparément. Lorsqu’une erreur survient dans un corps de pièce1 et que les corps de pièces 2 et 3 n’est pas touché dans sa géométrique. 2 et 3 ne sont pas recalculés. Fait intéressant avec une centaine de corps de pièces.

Troisième remarque : La lecture de l'arbre de construction peu devenir très difficile à lire et à comprendre lors d'une construction verticale comportant un grand nombre de features.

Quatrième remarque : l’interchangeabilité n’est pas de rigueur dans une construction verticale.

Pour illustrer cette remarque, je décide de réaliser une modification sur l’exemple de départ.

Reprenons notre graphe de construction booléen, pour arriver à notre forme finale.

Nous devons simplement changer le signe une opération.

Vous avez vu la différence ?

Nous avons changé la fonction dans l’arbre de construction pour dire à Catia que je voulais remplacer l’addition des deux corps de pièces en soustraction et l’affaire est conclue.

 

Maintenant voyons ce qu’il se passe pour la construction verticale.

Je vais dire à Catia V5 de me remplacer la feature de poche (cylindre 3) par une fonction d’extrusion. Et là j’ai beau chercher la fonction, pas de fonction de remplacement de feature. Simplement parce qu’aucune fonction n’a été créée par DS.

Pourquoi ? Bonne question, je n’ai pas de réponse mais je ne suis pas sûr que cela ne va pas être intégré (On en est en R18, et pas de possibilités, il doit bien y avoir une bonne raison).

Alors, comment procéder ? Simplement en détruisant la feature et la refaisant avec une extrusion.

Certes, ce n’est pas la mer à boire, mais l’opération n’est pas seulement qu’une histoire de refaire une feature. Pour l’extrusion, il faudra imposer de nouvelles limites du cylindre sur les faces du cube. Et oui, là on commence à perdre du temps.

Si l’on garde les mêmes paramètres que la poche, on risque d’avoir ceci :

Ce qu’il faut savoir en conception, c’est qu’il est rare de faire une pièce sans modifications (personnellement, je n’ai jamais connu une pièce bonne du premier coups dans toute mon expérience de concepteur), et là, la conception booléenne est absolument parfaite en termes de souplesse et de mise à jour.

Evidement, il ne faut pas tomber dans l’excès des opérations booléennes. On doit arriver à un équilibre satisfaisant pour la conception, car c’est vrai, finalement le booléen est plus long. Pour ma part, je me suis fixé une règle simple.

Un corps de pièces = une fonction technologique.

C’est en quelque sorte un mix des deux solutions. Permettant d’avoir la souplesse du booléen et la vitesse de l’arbre feature (lorsque celle-ci est pas très important). Mais finalement avec une préférence à utiliser le booléen

Cette souplesse permet notamment de remplacer une fonction (exemple un clip sur une boite) avec un autre type de clip simplement et avec des incidences réduites.

Je suis conscient que ce n’est pas facile au début d'utiliser la conception booléen, mais une gymnastique de votre esprit de logique doit être fait pour vous perfectionner. La solution est simple: la pratique. Ce n’est pas un secret, mais une réalité et vous verrez, concevoir et devenir un bon concepteur, c’est avant tout d’avoir un esprit logique, rigoureux et persévérant surtout en V5.

Les Corps de pièces négatifs

 

Comme vous l’avez vu précédemment, les corps de pièces composés de trois cylindres ont été réalisés en traçant un cercle dans un sketch et en réalisant une extrusion.

Sur Catia V5, il existe une autre technique pour arriver au même résultat final en booléen, c’est l’utilisation de corps de pièces négatifs.

Prenons un exemple très simple pour illustrer ce principe.

Un prisme avec un trou (je ne peux pas faire plus simple).

Je fais un corps de pièce 1 définissant le prisme. Sketch +Extrusion.

un autre corps de pièce 2 définissant le trou. Sketch+Extrusion

Avec une opération booléenne de soustraction, nous obtenons donc le résultat désiré.

Lorsqu’une extrusion est réalisée, le corps de pièce possède une polarité. Un signe + ajouté sur l’icône du corps.

J’ai changé volontairement changé la couleur du fond de la capture d’image pour identifier le signe.

Donc, comme une polarité est possible sur V5, nous pouvons donc obtenir un signe –.

Pour réaliser le signe négatif, nous n'allons pas réaliser cette fois une extrusion, mais une poche (et oui, la poche est une feature négative dans sa fonction) et voici ce que l’on obtient.

Nous avons visuellement la même géométrie qu'avec une extrusion, mais avec un icône - ) coté de l'engrenage vert du corps de pièce 2.

Maintenant il est possible de soustraire le corps de pièce 2 comme ceci

Mais comme nous jouons avec le signe du corps de pièce nous pouvons aussi utiliser l’opération d’assemblage

Une remarque importante, c’est que le corps de pièce principal ne prend jamais de signe. Faite l’expérience et essayer de faire une poche comme élément primaire, vous n’y arriverez pas, car le corps principal est toujours un corps positif.

Maintenant je vais compliquer légèrement la conception en ajoutant un troisième corps de pièce. (je me suis surpassé sur la complexité ;) )

Alors, un corps principal positif (extrusion), un cylindre négatif (poche) et un cylindre positif (extrusion).

Très bien, je réalise l’assemblage des deux corps de pièces 2 et 3 en même temps (Multi sélections des 3 corps) et on réalise l’opération assemblage.

Très bien, j’obtiens ce que je désire car et seulement car, j’ai réalisé une multi sélection.

Je vais refaire la procédure, mais cette fois en réalisant les opérations booléennes avec un autre ordre.

Corps 3 assemblé avec corps 2 = assemblage 1

Assemblage 1 assemblé avec corps 1 = corps final

Et là le résultat est différent????

Vous suivez toujours ?

Pour obtenir ce que je désire, je suis obligé de faire ceci

Corps 3 additionné avec corps 2 = assemblage 1

Assemblage 1 assemblé avec corps 1 = corps final

Pour conclure, la conception avec des opérations booléennes réalisées avec des signes négatifs est un jeu de jonglage.

Alors utiliser des corps négatifs plutôt que les corps positifs, c’est à vous de juger.

Mon conseil est le suivant : l’utilisation de corps négatifs, demande une maitrise parfaite des opérations booléennes, donc difficilement applicable aux nouveaux concepteurs.

Imaginez cette technique avec une pièce très complexe.

De plus, la lecture de l’arbre de conception est bien plus compliquée qu’avec des corps positifs.

De plus aujourd’hui, nous commençons à voir des industriels interdirent cette pratique.

Donc, attention alors à cette méthode, évaluer bien les risques et surtout soyez certain, que les concepteurs utilisant vos modèles avec des corps de pièces négatifs soient bien formés aux opérations Booléennes sinon le temps de compréhension va être un handicap pour le projet et le risque d'erreurs plus grand.

 

L’opération union trim.

La fonction union trim est une fonction simple à utiliser.

Reprenons l’exemple du prisme et du cylindre.

Lors de l’opération Union trim une fenêtre de dialogue s’ouvre.

Pour arriver à cela, vous aurez deux choix :

 

Retiré la face du dessus (face sélectionné en rose).

ou garder la face de dessous (face sélectionné en vert).

Voila comment fonctionne l’opération union trim.

Cette fonction est très utilisé dans l’industrie, car elle permet de d’assembler des corps de pièces extrêmement complexes et c’est une fonction très robuste.

L’opération remove lump

Dernière opération, l’opération « remove lump », est une fonction très simple d’utilisation, mais qui à mon avis d’aucune utilité dans une construction booléenne. Cependant, elle reste applicable pour une utilisation particulière que nous allons voir plus loin.

 

Pour l’exemple, je reprends le solide utilisé précédemment.

Maintenant je vais éditer le sketch du cylindre1 et faire une modification de profile (ajout d’un cercle interne).

Un update et l’on obtient ceci.

Deux éléments solides se retrouvent dans le vide. :(

Catia propose une fonction pour retirer très facilement ses deux petits corps, le « remove lump »

On sélectionne les faces des petits solides en remove ou une face du solide à garder et le tour est joué.

Les deux formes disparaissent. C’est très efficace, on dirait une gomme avec historique.

Comme je l’ai souligné précédemment, je ne conseille pas d’utiliser cette fonction dans une construction solide. Cette fonction est une sorte de « bidouille » que l’on réalise sur le corps de pièce pour corriger une erreur de conception.

Il est évident que la géométrie obtenue avant le remove lump est incorrecte. Le concepteur doit bien évidemment identifier cette erreur en amont et corriger le sketch.

Donc, attention à cette fonction. Par contre, elle est redoutablement efficace lorsque nous avons à faire à un modèle sans historique de conception.

Comme nous ne pouvons pas corriger l'erreur en amont, un remove lump et nous supprimons efficacement les minis solides.

Voilà qui conclue le chapitre des opérations Booléennes.

Avantages :

  • Conception logique
  • Souplesse d’utilisation
  • Robustesse
  • Clarté de lecture de l’arbre
  • Rapidité dans la mise à jour

Inconvénients :

  • Demande un temps d’adaptation .

Pour le reste je ne vois pas ;)

Je n’aurais qu’un seul conseil pour finir : entraînez-vous à la logique du Booléen car plusieurs logiciels fonctionnent avec ce principe et vous découvrirez plus tard bien d’autres avantages de travailler en Booléen dans d’autres chapitres qui seront proposés sur catweb.fr.

Blog de l'annuaire Referencement et Dictionnaire