Manuel : Utilisation de feuilles de calcul

From FreeCAD Documentation
Revision as of 16:21, 5 June 2017 by Jpg87 (talk | contribs) (Created page with "* Appuyez sur '''OK''', puis fermez l'onglet tableur. * Sélectionnez l'objet cube. * Dans l'éditeur de propriétés, cliquez sur la petite icône '''Expression''' (Image:B...")

FreeCAD dispose d'un autre atelier intéressant à explorer : l’atelier Feuilles de calcul (Spreadsheet Workbench). Cet atelier permet de créer des feuilles de calcul (spreadsheets) telles que celles réalisées avec Excel ou LibreOffice directement dans FreeCAD. Ces feuilles de calcul peuvent ensuite être remplies avec des données extraites de votre modèle et peuvent également effectuer une série de calculs entre les valeurs. Les feuilles de calcul peuvent être exportées sous forme de fichiers CSV, qui peuvent être importés dans n'importe quelle autre application de tableur.

Dans FreeCAD, cependant, les feuilles de calcul ont une utilité supplémentaire : leurs cellules peuvent recevoir un nom et peuvent être référencées par n'importe quel champ pris en charge par le moteur des expressions (expressions engine). Cela transforme les feuilles de calcul en puissantes structures de contrôle, où les valeurs insérées dans des cellules spécifiques peuvent générer des dimensions du modèle. Il n'y a qu'une chose à garder à l'esprit, car FreeCAD interdit les dépendances circulaires entre les objets, une même feuille de calcul ne peut pas être utilisée pour définir une propriété d'un objet et, en même temps, récupérer une valeur de propriété à partir du même objet. Cela rendrait la feuille de calcul et l'objet dépendant l’un de l'autre.

Dans l'exemple suivant, nous allons créer quelques objets, récupérer certaines de leurs propriétés dans une feuille de calcul, puis utiliser la feuille de calcul pour générer directement les propriétés d'autres objets.

Lecture des propriétés

  • Commencez par passer à l’atelier Part (Part Workbench), et créez quelques objets : une boîte ( box), un cylindre ( cylinder) et une sphère ( sphere).
  • Modifiez leur propriété de Placement (ou utilisez l'outil Déplacer Draft Move ) pour les séparer un peu, afin que nous puissions mieux observer les effets de ce que nous allons faire :

  • Maintenant, on va extraire des informations sur ces objets. Passez à l'atelier Feuille de calcul (Spreadsheet Workbench).
  • Appuyez sur le bouton Nouvelle feuille de calcul ().
  • Double-cliquez sur l'objet Nouvelle feuille de calcul dans l'arborescence. L'éditeur de feuille de calcul s'ouvre :

L'éditeur de feuilles de calcul de FreeCAD, bien qu'il ne soit pas aussi complet et puissant que les applications de tableurs plus complètes que nous avons énumérées ci-dessus, a néanmoins la plupart des outils et des fonctions de base couramment utilisés, comme la possibilité de modifier l'aspect des cellules (Taille, couleur, alignement), joindre et diviser les cellules, utiliser des formules telles que =2+2, ou référencer d'autres cellules avec =B1.

Dans FreeCAD, à ces comportements communs, on a ajouté une possibilité très intéressante : la possibilité de faire référence non seulement à d'autres cellules, mais aussi d'autres objets du document, et de récupérer des valeurs à partir de leurs propriétés. Par exemple, récupérons quelques propriétés des 3 objets que nous avons créés ci-dessus. Les propriétés sont ce que nous pouvons voir dans la fenêtre de l'éditeur de propriétés, sous l'onglet Données (Data), lorsqu'un objet est sélectionné.

  • Commençons par entrer quelques textes dans les cellules A1, A2 et A3, alors nous nous souvenons de ce qui se passera plus tard, par exemple Cube Length (longueur de l’arête du cube), Cylinder Radius (rayon du cylindre) et Sphere Radius (rayon de la sphère). Pour entrer du texte, écrivez simplement dans le "Conteneur" disposé au-dessus de la feuille de calcul ou double-cliquez sur une cellule.
  • Maintenant, récupérons la longueur réelle de notre cube. Dans la cellule B1, tapez =Cube.Length. Vous remarquerez que la feuille de calcul possède un mécanisme de remplissage automatique, qui est en fait le même que l'éditeur d'expression que nous avons utilisé dans le chapitre précédent.
  • Faites de même pour la cellule B2 (=Cylinder.Radius) et B3 (=Sphere.Radius).

  • Bien que ces résultats soient exprimés avec leurs unités, les valeurs peuvent être manipulées comme n'importe quel nombre, essayez, par exemple, d'entrer dans la cellule C1 : =B1*2.
  • Nous pouvons maintenant modifier une de ces valeurs dans l'éditeur de propriétés, et la modification sera immédiatement reflétée dans la feuille de calcul. Par exemple, modifions la longueur de notre cube à 20mm :

La page de l'atelier Spreadsheet (Spreadsheet Workbench) décrit plus en détail toutes les opérations et fonctions possibles que vous pouvez utiliser dans les feuilles de calcul.

Ecriture de propriétés

Une autre utilisation très intéressante de l’atelier Feuilles de calcul dans FreeCAD est de faire le contraire de ce que nous avons fait jusqu'ici : au lieu de lire les valeurs des propriétés des objets 3D, nous pouvons également attribuer des valeurs à ces objets. Rappelez-vous, cependant, une des règles fondamentales de FreeCAD : les dépendances circulaires sont interdites. Nous ne pouvons donc pas utiliser la même feuille de calcul pour lire et écrire des valeurs sur un objet 3D. Cela rendrait l'objet dépendant de la feuille de calcul, qui dépendrait également de l'objet. Au lieu de cela, nous allons créer une autre feuille de calcul.

  • Nous pouvons maintenant fermer l'onglet tableur (sous la vue 3D). Ceci n'est pas obligatoire, il n'y a pas de problème pour ouvrir plusieurs feuilles de calcul.
  • Appuyez de nouveau sur le bouton Nouvelle feuille de calcul ( New Spreadsheet).
  • Modifiez le nom de la nouvelle feuille de calcul en quelque chose de plus significatif, comme Entrée (faites-le en cliquant avec le bouton droit de la souris sur la nouvelle feuille de calcul et en choisissant Renommer).
  • Double-cliquez sur la feuille de calcul Entrée pour ouvrir l'éditeur du tableur.
  • Dans la cellule A1, mettons un texte descriptif, par exemple: "Dimensions du cube".
  • Dans la cellule B1, écrivez =5mm (en utilisant le signe = on s'assure que la valeur est interprétée comme une valeur numérique, pas un texte).
  • Maintenant, pour pouvoir utiliser cette valeur en dehors de la feuille de calcul, nous devons donner un nom ou alias à la cellule B1. Cliquez avec le bouton droit sur les cellules, cliquez sur Propriétés et sélectionnez l'onglet Alias. Donnez-lui un nom, tel que cubedims :

  • Appuyez sur OK, puis fermez l'onglet tableur.
  • Sélectionnez l'objet cube.
  • Dans l'éditeur de propriétés, cliquez sur la petite icône Expression () située sur le côté droit du champ Longueur. Cela ouvrira l'éditeur d'expressions (expressions editor), où vous pouvez écrire Spreadsheet001.cubedims. Répétez ceci pour Hauteur et Largeur :

You might wonder why we had to use "Spreadsheet001" instead of "Input" in the expression above. This is because each object, in a FreeCAD document, has an internal name, which is unique in the document, and a label, which is what appears in the tree view. If you uncheck the appropriate option in the preferences settings, FreeCAD will allow you to give the same label to more than one object. This is why all operations that must identify an object with absolutely no doubt, will use the internal name instead of the label, which could designate more than one object. The easiest way to know the internal name of an object is by keeping the selection panel (menu Edit->Panels) open, it will always indicate the internal name of a selected object:

By using cell aliases in spreadsheets, we are able to use a spreadsheet to store "master values" in a FreeCAD document. This can be used, for example, to have a model of a piece of certain dimensions, and to store these dimensions in a spreadsheet. It becomes then very easy to produce another model with different dimensions, it is just a matter of opening the file and changing a couple of dimensions in the spreadsheet.

Finally, note that the constraints inside a sketch can also receive the value of a spreadsheet cell:

You can also give aliases to dimensional constraints (horizontal, vertical or distance) in a sketch (you can then use that value from outside the sketch as well):

Download

Read more