Outils pour utilisateurs

Outils du site


issue123:freecad

In this series, we will be examining the world of FreeCAD, an open-source CAD modelling application that is still in Beta, but has been gaining acceptance in recent years. Naturally, it is readily available in the Ubuntu repositories. In the third article on using FreeCAD, we created a complex 3D object representing a Y-junction between two pipes of different diameters. In this part, we will go back to basics and examine how constraints can be used to draw complex planar shapes, that can then be used as a basis to create figures in 3D. Users of traditional CAD software such as AutoCAD or LibreCAD are well accustomed to two sets of techniques that help draw complex shapes from individual elementary shapes such as lines or arcs. The first set of techniques is the different ways in which an elementary shape can be defined in these applications. For instance, a straight-line segment may be defined by indicating both ends of the segment. But it could also be defined as the tangent to a circle at a certain point, and with a specific length. A further possibility is to define a line segment as being parallel to a previous segment of the same length and offset to a specific distance. As for circles, they may be defined from a center and a radius, or from three points that are not on the same straight line, and so forth.

Dans cette série, nous examinerons le monde de FreeCAD, une application Open Source de modélisation par CAO qui est encore en bêta, mais qui a reçu un bon accueil ces dernières années. Naturellement, elle est facilement disponible dans les dépôts d'Ubuntu. Dans le troisième article sur l'utilisation de FreeCAD, nous avons créé un objet complexe en 3D représentant une jonction en Y de deux tuyaux de diamètres différents.

Dans ce numéro, nous reviendrons aux bases et examinerons comment des contraintes peuvent être utilisées pour dessiner des formes planes complexes, qui peuvent ensuite être utilisées comme bases pour créer des figures en 3D.

Les utilisateurs de logiciels traditionnels de CAO tels qu'AutoCAD ou LibreCAD sont bien habitués aux deux jeux de techniques qui aident à la création des formes complexes à partir de formes élémentaires indépendantes telles que des lignes et des arcs. Le premier jeu de techniques comporte les différentes façons par lesquelles une forme élémentaire peut être définie dans ces applications. Par exemple, un segment de ligne droite peut être défini en indiquant les deux extrémités du segment. Mais il peut aussi être défini comme la tangente à un cercle en un certain point, avec une certaine longueur. Une autre possibilité est de définir le segment de ligne comme étant parallèle à un segment précédent de même longueur et décalé d'une certaine distance. Quant aux cercles, ils peuvent être définis par leur centre et leur rayon ou par trois points qui ne sont pas sur la même droite, et ainsi de suite.

A second set of techniques that may be considered quite basic in traditional applications is the use of layers. In a program such as LibreCAD, default line width, color and style (dashed, dotted, …) may be defined for each layer. A handy technique is thus to place the main elements of each drawing in one layer, while another is used to indicate dimensions, and a third to draw auxiliary items to help construction. When exporting the drawing, individual layers may be hidden with a single mouse click. At this point in time, the use of such techniques is perhaps not as easily visible in FreeCAD version 0.15 as could be desired. As has been pointed out in a previous part of this series, this application is known to still be very much in development, so there is hope that such features may be made more accessible as the application evolves. Version 0.16 - in the repositories for Ubuntu 17.04 - already hints at the presence of layers within a sketch. In the meantime, users of version 0.15 - in the repositories for Ubuntu 16.04 LTS and Linux Mint 18 - can today work around these limitations by using other features that are more clearly available in the program. This is the subject of this article.

Un second ensemble de techniques qui peut être considéré comme vraiment basique dans les applications traditionnelles est l'utilisation des calques. Dans un programme tel que LibreCAD, la largeur par défaut des lignes, la couleur et le style (tiret, pointillé…) peuvent être définis pour chaque calque. Une technique pratique est donc de placer les éléments principaux de chaque dessin sur un calque, tandis qu'un autre est utilisé pour indiquer les dimensions et un troisième pour dessiner les éléments auxiliaires qui aident à la construction. Lors de l'exportation du dessin, les couches peuvent être masquées individuellement d'un simple clic de souris.

À l'heure actuelle, l'utilisation de telles techniques n'est peut-être pas aussi facilement visible que désiré dans la version 0.15 de FreeCAD. Comme je disais dans une partie précédente de cette série, nous savons que l'application est encore en fort développement ; aussi, il y a de l'espoir que de telles fonctionnalités puissent être rendues plus accessibles au cours de l'évolution de l'application. La version 0.16 - dans les dépôts d'Ubuntu 17.04 - fait déjà allusion à la présence de calques dans une esquisse. Entre temps, les utilisateurs de la version 0.15 - dans les dépôts d'Ubuntu 16.04 LTS et Linux Mint 18 - peuvent aujourd'hui contourner ces limitations en utilisant d'autres fonctionnalités qui sont plus clairement disponibles dans le programme. C'est le sujet de cet article.

An example To visualize the problem, let us begin by drawing up a simple flat piece, with a geometry similar to that used in an engine connecting rod. This part is basically made up of two rings, one at each end, connected with two rectangular spars. The center of the rod has been removed, possibly to lighten the part. To draw this part in a traditional manner, the first step would be to create a layer that holds only auxiliary lines – that will not be part of the finished drawing. For instance, one could begin by drawing all the circles. Once the circles are defined, the external edge of the spars can be placed (in red). The easiest way in a traditional CAD application is to specify a line segment as tangent to both red circles, once for the upper spar and once for the lower. Then, the inner edge of each spar needs to be drawn (in green). There are several ways of doing this. The same procedure may be used, with each segment defined as tangent to the grey circles. An alternative way of doing it is to define the green segments as parallel to the red segments that have already been placed, while specifying an offset - in this case, 5mm. We can then create a second - main - layer, and draw the segments and arcs of the final part. Selecting snap-to-intersection instead of the more usual snap-to-grid allows us to carefully terminate each element precisely at the intersections between lines and circles.

Un exemple

Pour visualiser le problème, commençons par dessiner une simple pièce plate, avec une géométrie similaire à celle utilisée dans un embiellage de moteur. Cette pièce est faite essentiellement de deux anneaux, chacun à une extrémité, reliés par deux bras rectangulaires. Le centre de la bielle a été enlevé, probablement pour alléger la pièce.

Pour dessiner cette pièce de manière traditionnelle, la première étape serait de créer un calque qui ne contiendrait que les traits auxiliaires, qui ne feront pas partie du dessin final. Par exemple, on peut commencer par dessiner tous les cercles.

Une fois les cercles définis, le bord extérieur des bras peut être positionné (en rouge). La façon la plus facile de le faire dans une application traditionnelle de CAO est de spécifier un segment de ligne tangent aux deux cercles rouges, un pour le haut, l'autre pour le bas. Puis, le bord intérieur de chaque bras sera tracé (en vert). Il y a plusieurs façons de procéder. La même méthode peut être utilisée, chaque segment étant défini comme tangent aux cercles gris. Une manière alternative de le faire est de définir les segments verts comme parallèles aux segments rouges qui sont déjà en place, avec un décalage spécifié, dans ce cas, 5 mm.

Nous pouvons ensuite créer un second calque, le principal, et dessiner les segments et les arcs de la pièce finale. En sélectionnant l'aimantation aux intersections plutôt que la traditionnelle aimantation à la grille, nous pouvons soigneusement finir chaque élément exactement aux intersections des lignes et des cercles.

On to FreeCAD To create the same part in FreeCAD, let us begin by creating a new project. Now, we could proceed as in the previous episodes, by going into the Draft workbench and setting up the elements of the drawing using the tools available there for drawing lines, circles and arcs. However, though we can snap element vertices to the grid, or even to another element, there is no way of ensuring that a line stays tangent to a circle or an arc. For this reason, we will go into another workbench, the Sketcher. Here, we will create a new Sketch object, within the X-Y (horizontal) plane. This type of object represents a flat drawing, considered as a separate entity from the rest of our project. Once editing the new Sketch, we can begin by changing the default grid size from 10 to 5mm, since the dimensions of our part are all multiples of 5mm. Let us draw the two circles that define the left ring of our part, with respective radii of 20 and 25mm. It is interesting to note how the shape of the mouse pointer changes when creating a new point. In a general situation, the shape is a red circle, with the new point’s coordinates in blue beside it. However, if we click on an existing point, a red dot shows up beside the circle. If we click in this situation, we can choose to link both points. This is ideal when we are drawing two circles with the same center. If, later on, we move one of the center vertices, both will move at the same time - and both circles will be displaced an equal distance.

Sur FreeCAD

Pour créer la même pièce sur FreeCAD, commençons par créer un nouveau projet. Maintenant, nous pourrions procéder comme dans les épisodes précédents, en allant sur l'atelier Draft et et en mettant en place les éléments du dessin en utilisant les outils disponibles ici pour dessiner les lignes, cercles et arcs. Cependant, bien que nous puissions aimanter les sommets des éléments à la grille, ou même à un autre élément, il n'y a aucune façon d'assurer qu'une ligne reste tangente à un cercle ou un arc. Pour cette raison, nous irons dans un autre atelier, le Sketcher. Là, nous créerons un nouvel objet Sketch, dans la plan X-Y (horizontal). Ce type d'objet représente un dessin plat, considéré comme une entité séparée du reste du projet.

Une fois le nouveau Sketch édité, nous pouvons commencer par changer la taille par défaut de la grille de 10 à 5 mm car les dimensions de notre pièce sont toutes des multiples de 5 mm. Dessinons les deux cercles qui définissent l'anneau de gauche de notre pièce, avec des rayons de 20 et 25 mm respectivement. Il est intéressant de noter comment la forme du pointeur de notre souris change quand nous créons un nouveau point. Dans un cas général, la forme est un cercle rouge avec les nouvelles coordonnées du point en bleu sur le côté. Cependant, si nous cliquons sur un point existant, un point rouge s'affiche à côté du cercle. Si nous cliquons à ce moment-là, nous pouvons choisir de relier les deux points. C'est idéal quand nous dessinons deux cercles de même centre. Si, plus tard, nous déplaçons le sommet d'un des centres, les deux bougeront en même temps, et les deux cercles se déplaceront d'une distance égale.

Other options include placing the new point on a segment of an arc, thus linking the point to the arc. If we then displace one of the two objects, the movement of the other will equally be constrained. Likewise, when a line segment is drawn and one of the vertices has already been placed, a horizontal or a vertical constraint can be placed on the segment by placing the second vertex when the mouse cursor contains the corresponding red horizontal or vertical bar. Once the two circles have been created, we can inspect the number of elements created in the “Elements” window, and select each element by clicking on it. Once selected, each element can be moved around using the mouse. This is fine for the time being, but will introduce a difficulty when the connecting segments are placed to create the connecting rod itself: altering the position of a segment may very well end up by moving one of the circles that is connected to it, thus making sure the two elements remain in connection. We do not want this to happen; on the contrary, we want the circles to determine the position of the segments. So let us place a constraint on the position of each of our circles. Click on the center of the circles - which should be a single round dot - and then use the constraint toolbar to choose the “lock” constraint which has an icon shaped, rather appropriately, like a padlock.

Les autres options comprennent le placement du nouveau point sur un segment d'un arc, reliant ainsi le point à l'arc. Si, ensuite, nous déplaçons un des deux objets, le mouvement de l'autre sera également contraint. De même, quand un segment de ligne est tracé et qu'un des sommets a déjà été placé, une contrainte horizontale ou verticale peut être placée sur le segment en plaçant le second sommet quand le curseur de la souris contient la barre rouge horizontale ou verticale correspondante.

Une fois les deux cercles créés, nous pouvons inspecter le nombre d'éléments créés dans la fenêtre « Éléments » et sélectionner chacun en cliquant dessus.

Une fois choisi, chaque élément peut être ajusté en utilisant la souris. C'est bien pour le moment, mais cela introduira une difficulté quand les segments connectés seront mis en place pour créer la bielle elle-même : la modification de la position d'un segment peut très bien se terminer par le déplacement d'un des cercles auquel il est relié, s'assurant ainsi que les deux éléments restent connectés. Nous ne voulons pas que cela arrive ; au contraire, nous voulons que les cercles déterminent la position des segments. Aussi, plaçons une contrainte de position sur chacun de nos cercles. Cliquons sur le centre des cercles - qui devrait être un simple point rond -, puis utilisons la barre d'outils de contrainte pour choisir la contrainte « Contrainte fixe » qui a une icône de la forme proche de celle, plutôt approximative, d'un cadenas.

Let us continue by drawing the remaining circles, and locking them into place. We should now see four constraints, two for each center (one horizontal and one vertical), within the “Constraints” window at the left of the screen. The four circles should look approximately like the image on the next page (top left). We have constrained (fixed) the position of the center of each circle. However, their radii are not yet constrained, and could be altered when connecting segments are added. To fix their size, select each circle in turn and select the “Fix de radius” constraint, a red circle with a bar on it, from the constraints toolbar. Our sketch should now change aspect, with all elements changing color to become green. This indicates our sketch is fully constrained: existing elements cannot be further moved, unless at least one of the constraints is lifted. We are now ready to place the connecting segments on our - now immobile - circles. Start by drawing a line segment from one of the external circles, to the other. By carefully placing the mouse, we should be able to constrain the segment’s vertices so that each remain on a circle - this is the symbol of a red arc with a dot in its center. However, it should rapidly become clear that this segment is not yet necessarily tangent to each circle. To impose this new set of constraints, click on the dot representing the segment terminal vertex, then click on the circle. Finally, choose the “Create a tangent” constraint. The operation will need to be repeated several times, once for each intersection between a segment and a circle. It may also be necessary to remove spurious horizontal constraints on our segments, if they should appear during construction.

Continuons en dessinant les autres cercles et en les verrouillant en place. Nous devrions voir maintenant quatre contraintes, deux pour chaque centre (une horizontale et une verticale), dans la fenêtre « Contraintes » sur la gauche de l'écran. Les quatre cercles devraient ressembler approximativement à l'image de la page suivante (en haut à gauche).

Nous avons contraint (fixé) la position du centre de chaque cercle. Cependant les rayons ne sont pas encore contraints et pourraient être modifiés quand les segments de liaison seront ajoutés. Pour fixer leur longueur, sélectionnez tour à tour chaque cercle et choisissez la contrainte « Fixer le rayon », un cercle rouge avec un trait dedans, dans la barre d'outils de contrainte. Notre esquisse devrait maintenant changer d'aspect, avec tous les éléments changeant de couleur pour devenir verts. Ceci indique que notre esquisse est entièrement contrainte : les éléments existants ne peuvent plus être déplacés, sauf si au moins une des contraintes est levée.

Nous sommes maintenant prêts pour mettre les segments de liaison en position sur nos cercles - immobilisés maintenant. Commencez par dessiner un segment de ligne depuis un cercle extérieur vers l'autre. En plaçant avec soin la souris, nous devrions être capable de contraindre les sommets du segment de sorte qu'ils restent sur un cercle - c'est le symbole d'un arc rouge avec un point à son centre. Cependant, il devrait devenir rapidement clair que ce segment n'est pas encore nécessairement tangent à chaque cercle. Pour imposer ce nouveau jeu de contraintes, cliquez sur le point représentant le sommet terminal du segment, puis cliquez sur le cercle. Enfin, choisissez la contrainte « Créer une contrainte tangente ». L'opération devra être répétée plusieurs fois, à chaque intersection entre un segment et un cercle. Il peut aussi être nécessaire de supprimer les fausses contraintes horizontales sur nos segments, si de telles contraintes apparaissent pendant la construction.

The final result, with all four segments placed and the elements completely constrained, should appear like that shown below. Up until this point, we have been actively editing our Sketch object. We can now close this object, returning to the standard FreeCAD view, and examine our handiwork. All constraints have disappeared in the normal view, and we are left with our shape’s individual elements - all grouped together in a single planar Sketch object. Building the final shape What we have obtained so far is, in fact, just the auxiliary, constructive aides to help us place our final arcs and segments. It would be nice to see them in a different color and style, to help us distinguish between helper traces and elements belonging to the final drawing. There are two ways of going about this. The first is to exit Sketch edition. By clicking once on the Sketch, we can proceed down to the “Property” window, and change both “Line Color” and “Draw Style” for all lines in the Sketch in a single action. Then, we can proceed to the “Draft” workbench. Once here, we can use the drawing tools from the Draft toolbar (with yellow/black icons) to draw on top of the Sketch.

Le résultat final, avec les quatre segments en place et les éléments complètement contraints, devrait ressembler à ce qui est présenté ci-dessous.

Jusqu'ici, nous avons beaucoup modifié notre objet Sketch. Nous pouvons maintenant fermer cet objet, pour retourner à la vue standard de FreeCAD et examiner notre travail. Toutes les contraintes ont disparu dans la vue normale et nous ne gardons que les éléments individuels de notre forme, tous regroupés dans un seul objet plan Sketch.

Construire la forme finale

Ce que nous avons obtenu jusque-là ne sont, en fait, que des aides auxiliaires, de construction, pour nous permettre de placer nos arcs et segments définitifs. Il serait bien de les voir de couleur et style différents, pour nous aider à distinguer les tracés d'aide des éléments appartenant au dessin final. Il y a deux façons de le faire : la première est de sortir de l'édition de Sketch. En cliquant une fois sur le Sketch, nous pouvons aller dans la fenêtre « Propriétés » et modifier d'un seul coup « Linr color » (Couleur du trait) et « Draw style » (Style de dessin) pour toutes les lignes du Sketch.

Ensuite, nous pouvons poursuivre dans l'atelier « Draft ». Une fois là, nous pouvons utiliser les outils de dessin de la barre d'outils de Draft (avec les icônes jaune/noir) pour dessiner par-dessus le Sketch.

Intersections between Sketch elements can be made easily detectable if a point is placed at each intersection from within the Sketch. To do so, create a point using the tools with the icon with the red dot. When placing the point, snap to one of the elements creating the intersection, for example to the circle. Then click on the new point, click on the other element of the intersection - for example, a line segment - and create a new constraint of type “Fix a point onto an object”. The point should then be fixed by being constrained twice, once to each element, and thus should stay in place at the intersection. Once the points at the intersections have been created, lines in the Draft workbench and can be snapped to these points if the “Snap to intersection” option is chosen (the icon with a green ‘X’ from the snap toolbar). A second way of drawing the final shape of our part is to do it directly inside the Sketch. Go back into editing the Sketch object (double-click on the object), selecting all the lines and switch them all to “Construction mode” using tool . This will change their color to blue - and make them disappear from the Sketch when this is not being viewed from within edition mode. We can then proceed by creating the points at intersections, as needed. Continue by adding further elements to the Sketch object, taking these constructive elements as a guide. These elements, drawn in normal mode, will appear when not editing the Sketch. Since they are based upon other elements in constructive mode, some elements may need to be converted to normal mode using the same tool: .

Les intersections entre les éléments de Sketch peuvent être facilement détectées si un point est placé à chaque intersection dans le Sketch. Pour ce faire, créez un point en utilisant l'outil avec une icône au point rouge. En plaçant le point, aimantez-le à un des éléments créant l'intersection, par exemple le cercle. Puis cliquez sur le nouveau point, cliquez sur un autre élément de l'intersection - par exemple le segment de ligne - et créez une nouvelle contrainte de type « Fixer un point à un objet ». Le point devrait être fixé avec deux contraintes, un pour chaque élément et donc devrait rester en place à l'intersection.

Une fois créés les points de l'intersection, les lignes dans l'atelier Draft peuvent être aimantées à ces points si l'option « Aimanter à une intersection » est choisie (l'icône avec un X vert dans la barre d'outils d'aimantation).

Une seconde manière de dessiner la forme finale de notre pièce est de la réaliser directement à l'intérieur du Sketch. Retournez en modification de l'objet Sketch (double-cliquez sur l'objet), sélectionnez toutes les lignes et basculez-les toutes dans le « Mode construction » en utilisant l'outil. Ceci changera leur couleur en bleu et les fera disparaître du Sketch quand celui-ci n'est pas en mode édition. Nous pouvons ensuite poursuivre par la création des points d'intersection, là où ils sont nécessaires. Continuez en ajoutant d'autres éléments à l'objet Sketch, en se guidant sur ces éléments de construction. Ces éléments, dessinés dans le mode normal, apparaîtront quand Sketch n'est pas en modification. Comme ils sont basés sur d'autres éléments en mode constructif, cetains éléments devront être convertis en mode normal en utilisant le même outil.

At this point, we can use the Sketch object to print a diagram in two dimensions. However, we cannot use it directly to create a three-dimensional part. To do so, we must begin be going to workbench Draft, and there convert the Sketch object into a collection of drawing elements using the appropriate conversion tool: . Once this has been done, we can go to the Part workbench, extrude each object (the two circles and the two outline shapes) individually, and then combine them using boolean operations (Fusion and Cut out) to create the final piece in 3D, as described in Part 2 of this series. What next? In this article on using FreeCAD, we created a Sketch object, to place individual drawing elements such as lines, arcs and points, in a precise relationship to each other using constraints. We noted the use of Construction mode elements within the Sketch object, to aid construction of the complete diagram while not appearing in the final drawing. In the next part of the series, we will change scale altogether and work on an architectural project.

À ce stade, nous pouvons utiliser l'objet Sketch pour imprimer un schéma en deux dimensions. Cependant, nous ne pouvons pas l'utiliser directement pour créer une pièce en trois dimensions. Pour ce faire, nous devons commencer par aller dans l'atelier Draft, et, là, convertir l'objet Sketch dans un ensemble d'éléments de dessin en utilisant l'outil de conversion approprié :

Une fois ceci fait, nous pouvons aller dans l'atelier Part, extruder individuellement chaque objet (les deux cercles et les formes extérieures), puis les combiner en utilisant les opérations booléennes (Fusion et Découpe) pour créer la forme finale en 3D, comme décrit dans la partie 2 de la série.

Et ensuite ?

Dans cet article sur l'utilisation de FreeCAD, nous avons créé un objet Sketch, afin de mettre en place des éléments individuels du dessin tels que des lignes, arcs et cercles, avec une relation précise entre eux en utilisant des contraintes. Nous avons noté l'utilisation des éléments en mode construction dans l'objet Sketch, pour aider à construire le dessin définitif sans qu'ils apparaissent dans le dessin final. Dans le prochain numéro de cette série, nous changerons complètement d'échelle et nous travaillerons sur un projet architectural.

issue123/freecad.txt · Dernière modification : 2017/08/10 16:56 de andre_domenech