Manual:Traditional modeling, the CSG way/fr

CGS signifie Constructive Solid Geometry et décrit la manière la plus simple de travailler avec la Géométrie 3D solide, qui crée des objets complexes en ajoutant/enlevant des éléments de volumes en utilisant des opérations booléennes telles que l'union, la soustraction ou l'intersection de solides.

Comme nous l'avons vu plus tôt dans ce manuel, FreeCAD peut gérer de nombreux types de géométrie, mais le type préféré et le plus utile pour le genre d'objets 3D que nous voulons concevoir avec FreeCAD, c'est-à-dire les objets du monde réel, est, sans aucun doute, solide, la géométrie BREP, qui est principalement prise en charge par l’atelier Part (Part Workbench). Contrairement aux maillages de polygones (polygon meshes), qui sont fabriqués uniquement de points et triangles, les objets BREP ont leurs faces définies par des courbes mathématiques, qui permettent une précision absolue, peu importe l'échelle.



La différence entre les deux peut être comparée à la différence entre bitmap et images vectorielles. Comme pour les images bitmap, les maillons polygonaux ont leurs surfaces courbes fractionnées en une série de points. Si vous le regardez très près, ou que vous l'imprimez très grand, vous n’allez pas voir une surface courbe mais une surface facettisée. Dans les images vectorielles et les données BREP, la position de n'importe quel point sur une courbe n'est pas stockée dans la géométrie mais est calculée à la volée, avec une précision exacte.

Dans FreeCAD, toute la géométrie basée sur BREP est gérée par un autre logiciel open source, OpenCasCade. L'interface principale entre FreeCAD et le noyau OpenCasCade est l’atelier Part. La plupart des autres ateliers créent leurs fonctionnalités au dessus de l’atelier Part.

Bien que d'autres ateliers proposent souvent des outils plus avancés pour construire et manipuler la géométrie, puisqu'ils manipulent tous les objets Part, il est très utile de savoir comment ces objets fonctionnent en interne et peuvent utiliser les outils de Part car, plus simples, ils peuvent très souvent vous aider à contourner les problèmes que les outils les plus intelligents ne parviennent pas à résoudre correctement.

Pour illustrer le fonctionnement de l’atelier Part, nous modéliserons cette table, en utilisant uniquement des opérations CSG (à l'exception des vis, pour lesquelles nous utiliserons l'un des greffons (addons), et les dimensions, qui seront vues dans le chapitre suivant) :



Créez un nouveau document (Ctrl + N ou menu Fichier -> Nouveau document), passez à l’atelier Part, et commencez par le premier pied :


 * Appuyez sur le bouton Boîte
 * Sélectionnez la boite obtenue, puis définissez les propriétés suivantes (dans l'onglet Données):
 * Longueur: 80mm (ou 8cm, ou 0.8m, FreeCAD fonctionne dans n'importe quelle unité)
 * Largeur: 80mm
 * Hauteur: 75cm
 * Dupliquez la boîte en appuyant sur Ctrl + C puis sur Ctrl + V (ou menu Edition -> Copier et coller)
 * Sélectionnez le nouvel objet qui a été créé
 * Changez sa position en modifiant sa propriété de placement :
 * Position x: 8mm
 * Position y: 8mm

Vous devriez obtenir deux boîtes hautes, à une distance de 8 mm l'une de l'autre :




 * Maintenant, nous pouvons soustraire l'un de l'autre: Sélectionnez le premier, c'est-à-dire celui qui va rester donc avec la touche CTRL enfoncée, sélectionnez l'autre, qui sera soustrait (l'ordre est important) et appuyez sur le bouton [[Image:Part_Cut.png|16px]] Soustraction (soustraction booléenne)  :



Observez que l'objet nouvellement créé, appelé "Cut", contient toujours les deux cubes que nous avons utilisés comme les opérandes. En fait, les deux cubes sont toujours présents dans le document, ils ont simplement été cachés et regroupés sous l'objet "Cut" dans l'arborescence. Vous pouvez toujours les sélectionner en développant la flèche à côté de l'objet "Cut" et, si vous le souhaitez, les rendre visibles à nouveau en cliquant droit sur eux ou en modifiant l'une de leurs propriétés.


 * Maintenant, créez les trois autres pieds en copiant notre cube de base 6 autres fois. Puisqu'il est toujours copié, vous pouvez simplement coller (Ctrl + V) 6 fois. Modifiez leur position comme suit :
 * cube002: x: 0, y: 80cm
 * cube003: x: 8mm, y: 79.2cm
 * cube004: x: 120cm, y: 0
 * cube005: x: 119.2cm, y: 8mm
 * cube006: x: 120cm, y: 80cm
 * cube007: x: 119.2cm, y: 79.2cm


 * Maintenant, faisons les trois autres coupures, en sélectionnant d'abord le cube "hôte" puis le cube à soustraire. Nous avons maintenant quatre objets coupés :



Vous avez peut-être pensé que, au lieu de dupliquer le cube de base six fois, nous pourrions dupliquer le pied complet trois fois. C'est tout à fait vrai, comme toujours dans FreeCAD, il existe plusieurs façons d'obtenir un même résultat. C'est une chose précieuse à retenir, parce que, lorsque nous progresserons vers des objets plus complexes, certaines opérations pourraient ne pas donner un résultat correct et nous devons souvent essayer d'autres façons.


 * Nous allons maintenant faire des trous pour les vis, en utilisant la même méthode de coupe. Puisque nous avons besoin de 8 trous, deux dans chaque pied, nous pourrions faire 8 objets à soustraire. Au lieu de cela, explorons d'autres façons et faisons 4 cylindres, qui seront réutilisés par deux pieds. Alors, créons quatre cylindres en utilisant l'outil [[Image:Part_Cylinder.png|16px]] Cylindre . Vous pouvez à nouveau, en faire un seul et le doubler ensuite. Donnez à tous les cylindres un rayon de 6 mm. Cette fois, nous devrons les faire pivoter, ce qui se fait également via la propriété Placement :
 * Cylindre: hauteur: 130cm, angle: 90 °, axe: x: 0, y: 1, position: x: -10mm, y: 40mm, Z: 72cm
 * Cylindre001: hauteur: 130cm, angle: 90 °, axe: x: 0, y: 1, position: x: -10mm, y: 84cm, Z: 72cm
 * Cylindre002: hauteur: 90cm, angle: 90 °, axe: x: -1, y: 0, position: x: 40mm, y: -10mm, Z: 70cm
 * Cylindre003: hauteur: 90cm, angle: 90 °, axe: x: -1, y: 0, position: x: 124cm, y: -10mm, Z: 70cm



Vous remarquerez que les cylindres sont un peu plus longs que nécessaire. C'est parce que, comme dans toutes les applications 3D solides, les opérations booléennes dans FreeCAD sont parfois trop sensibles à des situations face-sur-face et pourraient échouer. En faisant cela, nous nous sommes placés dans une situation sûre.


 * Maintenant, faisons les soustractions. Sélectionnez le premier pied, puis, avec la touche CTRL enfoncée, sélectionnez un des cylindres qui le traversent, appuyez sur le bouton Couper. Le trou sera fait, et le cylindre caché. Trouvez-le dans l'arborescence en développant le pied percé.
 * Sélectionnez un autre pied percé par ce cylindre caché, puis répétez l'opération, cette fois-ci en sélectionnant le tube dans l'arborescence avec Ctrl +, car il est caché dans la vue 3D (vous pouvez également le rendre visible et le sélectionner dans la vue 3D). Répétez ceci pour les autres pieds jusqu'à ce que chacun d'eux ait ses deux trous :



Comme vous pouvez le voir, chaque pied est devenu une série assez longue d'opérations. Tout cela reste paramétrique, et vous pouvez changer n'importe quel paramètre de l'une des anciennes opérations à tout moment. Dans FreeCAD, nous nous référons souvent à cette pile comme «historique de la modélisation» (ou parfois arbre de construction), car elle porte en fait tout l’historique des opérations que vous avez effectuées.

Une autre particularité de FreeCAD est que le concept de l'objet 3D et le concept de l'opération 3D ont tendance à se fondre en une même chose. La coupe est à la fois une opération, et l’objet 3D résultant de cette opération. Dans FreeCAD, cela s'appelle une "fonctionnalité", plutôt que objet ou opération.


 * Now let's do the tabletop, it will be a simple block of wood, let's do it with another Box with length: 126cm, width: 86cm, height: 8cm, position: x: 10mm, y: 10mm, z, 67cm. In the View tab, you can give it a nice brownish, wood-like color by changing its Shape Color property:



Notice that, although the legs are 8mm thick, we placed it 10mm away, leaving 2mm between them. This is not necessary, of course, it won't happen with the real table, but it is a common thing to do in that kind of "assembled" models, it helps people who look at the model to understand that these are independent parts, that will need to be attached together manually later.

Now that our five pieces are complete, it is a good time to give them more proper names than "Cut015". By right-clicking the objects in the tree view (or pressing F2), you can rename them to something more meaningful to yourself or to another person who would open your file later. It is often said that simply giving proper names to your objects is much more important than the way you model them.


 * We will now place some screws. There is nowadays an extremely useful addon developed by a member of the FreeCAD community, that you can find on the FreeCAD addons repository, called Fasteners, that makes the insertion of screws very easy. Installing additional workbenches is easy and described on the addons pages.
 * Once you have installed the Fasteners Workbench and restarted FreeCAD, it will appear in the workbenches list, and we can switch to it. Adding a screw to one of our holes is done by first selecting the circular edge of our hole:




 * Then we can press one of the screw buttons of the Fasteners Workbench, for example the EN 1665 Hexagon bolt with flanges, heavy series. The screw will be placed and aligned with our hole, and the diameter will automatically be selected to match the size of our hole. Sometimes the screw will be placed inverted, which we can correct by flipping its invert property. We can also set its offset to 2mm, to follow the same rule we used between the tabletop and the feet:




 * Repeat this for all the holes, and our table is complete!

The internal structure of Part objects

As we saw above, it is possible in FreeCAD to select not only whole objects, but parts of them, such as the circular border of our screw hole. This is a good time to have a quick look at how Part objects are constructed internally. Every workbench that produces Part geometry will be based on these:


 * Vertices: These are points (usually endpoints) on which all the rest is built. For example, a line has two vertices.
 * Edges: the edges are linear geometry like lines, arcs, ellipses or NURBS curves. They usually have two vertices, but some special cases have only one (a closed circle for example).
 * Wires: A wire is a sequence of edges connected by their endpoints. It can contain edges of any type, and it can be closed or not.
 * Faces: Faces can be planar or curved, and can be formed by one closed wire, which forms the border of the face, or more than one, in case the face has holes.
 * Shells: Shells are simply a group of faces connected by their edges. It can be open or closed.
 * Solids: When a shell is tightly closed, that is, it has no "leak", it becomes a solid. Solids carry the notion of inside and outside. Many workbench rely on this to make sure the objects they produce can be built in the real world.
 * Compounds: Compounds are simply aggregates of other shapes, no matter their type, into a single shape.

In the 3D view, you can select individual vertices, edges or faces. Selecting one of these also selects the whole object.

A note about shared design

You might look at the table above, and think its design is not good. The tightening of the feet with the tabletop is probably too weak. You might want to add reinforcing pieces, or simply you have other ideas to make it better. This is where sharing becomes interesting. You can download the file made during this exercise from the link below, and modify it to make it better. Then, if you share that improved file, others might be able to make it even better, or use your well-designed table in their projects. Your design might then give other ideas to other people, and maybe you will have helped a tiny bit to make a better world...

Downloads


 * The file produced in this exercise: https://github.com/yorikvanhavre/FreeCAD-manual/blob/master/files/table.FCStd

Read more


 * The Part Workbench
 * The FreeCAD addons repository
 * The Fasteners Workbench