Manual:A gentle introduction/fr

Python est un langage populaire, open source, largement distribué, souvent utilisé comme langage de script, embarqué dans d'autre programme, comme c'est le cas dans FreeCAD. Il possède également des qualités qui le rende particulièrement attractif pour nous, utilisateurs de FreeCAD: il est facile à apprendre, surtout pour les novices en programmation, et il est embarqué dans d'autres logiciels, ce qui en fait un outil précieux à apprendre, car il pourra être réutilisé dans d'autres applications, comme Blender, Inkscape ou GRASS.

FreeCAD fait une utilisation intensive de Python. Avec lui, vous pouvez accéder et contrôler quasiment toutes les fonctions de FreeCAD. Vous pouvez, par exemple, créer de nouveaux objets, outils et panneaux. Certains ateliers de FreeCAD et la plupart des ateliers supplémentaires sont entièrement programmé en python. FreeCAD possède une console python avancée, disponible depuis le menu Affichage->Panneaux->Console Python. Il est souvent utile pour réaliser des opérations pour lesquelles il n'y a pas encore de boutons dans la barre d'outils, ou pour vérifier des formes, ou pour faire des tâches répétitives:



Mais la console python a une autre rôle très important: chaque fois qu'un bouton de la barre d'outils est cliqué, ou qu'une autre opération est réalisée dans FreeCAD, du code python est affiché puis exécuté dans la console. En laissant la console python ouverte, vous pouvez littéralement voire le code python se dérouler au fur et à mesure de votre travail, et, en un rien de temps, sans même vous en rendre compte, vous apprendrez le langage python.

FreeCAD possède également un système de macros, qui vous permets d’enregistrer vos actions pour les rejouer plus tard. Ce système utilise aussi la console python, en enregistrant simplement ce qui est fait à l'intérieur.

Dans ce chapitre, nous allons découvrir de façon très générale le langage Python. Si vous souhaitez en apprendre plus, la documentation wiki de FreeCAD possède une section extensive concernant la programmation python.

Écrire du code python
Il y a deux manières d'écrire du code python dans FreeCAD: à partir de la console python, dans la barre de menus, cliquez sur Affichage-> Vues-> Console Python ou de l'éditeur de macros Outils-> Macros. Dans la console Python, vous écrivez les lignes de code Python, une par une, qui seront exécutées lorsque vous appuyez sur la touche. Dans l'éditeur de macros, qui peuvent contenir un script plus complexe fait de plusieurs lignes de code, et sont exécuté uniquement lorsque vous cliquerez sur (triangle vert).

Dans ce chapitre, vous pourrez utiliser les deux méthodes, mais il est fortement recommandé d'utiliser la Console Python, car elle vous informera instantanément des erreurs que vous auriez pu faire en tapant.

Si c'est la première fois que vous programmez en Python, pensez à lire cette courte introduction à la programmation Python  avant d'aller plus loin. Cela rendra les concepts de base de Python plus clairs.

Manipuler des objets FreeCAD
Commençons pas créer un nouveau document vide:

doc = FreeCAD.newDocument

Si vous tapez ceci dans la console python de FreeCAD, vous remarquerez que dès que vous entrez "FreeCAD." (le mot FreeCAD suivi d'un point), une fenêtre apparaît, permettant rapidement de compléter le reste de votre ligne. Encore mieux, chaque entrée dans la liste des autocomplétions a une bulle d’aide expliquant ce qu'elle fait. Il est donc très facile d'explorer la fonctionnalité disponible. Avant de choisir "newDocument", regardez les autres options disponibles.



Dès que vous appuyez sur Entrée, notre nouveau document sera créé. Cela ressemble à la pression sur le bouton "nouveau document" dans la barre d'outils. En Python, le point sert à indiquer quelque chose qui est contenu dans quelque chose d'autre (newDocument est une fonction qui se trouve dans le module FreeCAD). La fenêtre qui s'affiche vous montre donc tout ce qui est contenu dans "FreeCAD". Si vous souhaitiez ajouter un point après le nouveau document, au lieu des parenthèses, cela vous montrerait tout ce qui est contenu dans la nouvelle fonction newDocument. Les parenthèses sont obligatoires lorsque vous appelez une fonction Python, comme celle-ci. Nous allons mieux illustrer cela ci-dessous.

Revenons maintenant à notre document. Voyons ce que nous pouvons faire avec ça :

doc.

Explorez les options disponibles. Habituellement, les noms qui commencent par une lettre majuscule sont des attributs, ils contiennent une valeur, alors que les noms commençant par une petite lettre sont des fonctions (également appelées méthodes), ils "font quelque chose". Les noms commençant par un trait de soulignement sont habituellement là pour le fonctionnement interne du module, et vous ne devriez pas vous en occuper. Utilisons l'une des méthodes pour ajouter un nouvel objet à notre document :

box = doc.addObject("Part::Box","myBox")

Notre boîte est ajoutée dans l'arborescence, mais rien ne se passe encore dans la vue 3D, car quand on travaille avec Python, le document n'est jamais recalculé automatiquement. Nous devons le faire manuellement, chaque fois que nous avons besoin :

doc.recompute

Maintenant, notre boîte est apparue dans la vue 3D. Beaucoup des boutons de la barre d'outils qui ajoutent des objets dans FreeCAD font en fait deux choses : ils ajoutent l'objet et recalculent. Si vous avez activé l’option "montrer les commandes du script dans la console python" ci-dessus, essayez maintenant d'ajouter une sphère avec le bouton approprié dans l’atelier Part, et vous verrez les deux lignes du code python exécutées l'une après l'autre.

Vous pouvez obtenir une liste de tous les types d'objets possibles, comme Part :: Box:

doc.supportedTypes

Voyons maintenant le contenu de notre boîte :

box.

Vous verrez immédiatement quelques choses très intéressantes telles que :

box.Height

Cela va imprimer la hauteur actuelle de notre boîte. Maintenant, essayons de changer cela :

box.Height = 5

Si vous sélectionnez votre boîte avec la souris, vous verrez cela dans le panneau des propriétés, sous l’onglet Données, notre propriété Hauteur apparaît avec la nouvelle valeur. Toutes les propriétés d'un objet FreeCAD qui apparaissent dans les onglets Données et Affichage sont directement accessibles par Python aussi, par leur noms, comme nous l'avons fait avec la propriété Height. Les propriétés des données sont accessibles directement depuis l’objet lui-même, par exemple :

box.Length

Les propriétés de vue sont stockées dans un ViewObject. Chaque objet FreeCAd possède un ViewObject, qui stocke les propriétés de visualisation de l'objet. Lors de l'exécution de FreeCAD sans son interface graphique (par exemple lors du lancement par un terminal avec l’option de ligne de commande -c, ou l'utilisation à partir d'un autre script Python), le ViewObject n'est pas disponible, car Il n'y a pas de visuel du tout.

Par exemple, pour accéder à la couleur de ligne de notre boîte :

box.ViewObject.LineColor

Vectors and Placements
Vectors are a very fundamental concept in any 3D application. It is a list of 3 numbers (x, y and z), describing a point or position in the 3D space. A lot of things can be done with vectors, such as additions, subtractions, projections and much more. In FreeCAD vectors work like this:

myvec = FreeCAD.Vector(2,0,0) print(myvec) print(myvec.x) print(myvec.y) othervec = FreeCAD.Vector(0,3,0) sumvec = myvec.add(othervec)

Another common feature of FreeCAD objects is their Placement. As we saw in earlier chapters, each object has a Placement property, which contains the position (Base) and orientation (Rotation) of the object. It is easy to manipulate from Python, for example to move our object:

print(box.Placement) print(box.Placement.Base) box.Placement.Base = sumvec otherpla = FreeCAD.Placement otherpla.Base = FreeCAD.Vector(5,5,0) box.Placement = otherpla

Read more


 * Python
 * Working with Macros
 * Introduction to Python scripting
 * Using Python in FreeCAD
 * The Python scripting wiki hub