Python scripting tutorial/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(80 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav/fr
{{docnav/fr|[[Introduction to Python/fr|Introduction au langage Python]]|[[FreeCAD Scripting Basics/fr|Débuter avec les scripts]]}}
|[[Introduction_to_Python/fr|Introduction à Python]]
|[[FreeCAD_Scripting_Basics/fr|Débuter avec les scripts FreeCAD]]
}}


{{TOCright}}
{{TOCright}}
Line 7: Line 10:
==Introduction==
==Introduction==


[https://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] est un langage de programmation qui est relativement facile à apprendre et à comprendre. Il est open-source et multi-plateforme et peut être utilisé à de nombreuses fins : des scripts shell simples aux programmes très complexes. Mais son utilisation la plus répandue se trouve dans le langage de script intégré dans d'autres applications. C'est ainsi qu'il est utilisé dans FreeCAD. Depuis la [[Python_console/fr|console Python]], ou depuis des scripts personnalisés, vous pouvez contrôler FreeCAD et lui faire effectuer des opérations très complexes.
[https://en.wikipedia.org/wiki/Python_%28programming_language%29 Python] est un langage de programmation qui est relativement facile à apprendre et à comprendre. Il est open-source, multi-plateforme et peut être utilisé à de nombreuses fins : des scripts shell simples aux programmes très complexes. Mais son utilisation la plus répandue se trouve dans le langage de script intégré dans d'autres applications. C'est ainsi qu'il est utilisé dans FreeCAD. Depuis la [[Python_console/fr|console Python]], ou depuis des scripts personnalisés, vous pouvez contrôler FreeCAD et lui faire effectuer des opérations très complexes.


Par exemple, à partir d'un script Python, vous pouvez :
Par exemple, à partir d'un script Python, vous pouvez :
Line 22: Line 25:
Dans ce tutoriel, nous allons travailler sur quelques exemples de base pour vous aider à démarrer, mais il y a beaucoup plus de [[Power users hub/fr| documentations sur les scripts Python]] disponibles sur ce wiki. Si vous êtes totalement nouveau sur Python et que vous voulez comprendre comment cela fonctionne, nous avons également une [[introduction to Python/fr|Introduction à Python]].
Dans ce tutoriel, nous allons travailler sur quelques exemples de base pour vous aider à démarrer, mais il y a beaucoup plus de [[Power users hub/fr| documentations sur les scripts Python]] disponibles sur ce wiki. Si vous êtes totalement nouveau sur Python et que vous voulez comprendre comment cela fonctionne, nous avons également une [[introduction to Python/fr|Introduction à Python]].


Avant de continuer avec les scripts Python, allez dans la fenêtre {{MenuCommand|Edit → Préférences → Général → Fenêtre de sortie}} et cochez les deux cases :
Avant de continuer avec les scripts Python, allez dans la fenêtre {{MenuCommand|Edit → Préférences → Général → Vue rapport}} et cochez les deux cases :
* {{MenuCommand|Rediriger les messages internes Python vers la vue rapport}}.
* {{MenuCommand|Rediriger les messages internes Python vers la vue rapport}}.
* {{MenuCommand|Rediriger les erreurs internes de Python vers la vue rapport}}.
* {{MenuCommand|Rediriger les erreurs internes de Python vers la vue rapport}}.
Line 28: Line 31:
* {{MenuCommand|Vue de rapport}} coché.
* {{MenuCommand|Vue de rapport}} coché.


<span id="Writing_Python_code"></span>
== Ecrire du code Python==
== Ecrire du code Python==


Line 36: Line 40:


Dans ce tutoriel vous pouvez utiliser les deux méthodes. Vous pouvez copier-coller chaque ligne dans la console Python puis appuyer sur {{KEY|Entrée}}, ou copier-coller le code entier dans une nouvelle fenêtre Macro.
Dans ce tutoriel vous pouvez utiliser les deux méthodes. Vous pouvez copier-coller chaque ligne dans la console Python puis appuyer sur {{KEY|Entrée}}, ou copier-coller le code entier dans une nouvelle fenêtre Macro.
{{Top}}

<span id="Exploring_FreeCAD"></span>
[[#top|En haut]]

== Exploration de FreeCAD ==
== Exploration de FreeCAD ==


Line 52: Line 55:
{{Caption|Le mécanisme de saisie semi-automatique de la console Python FreeCAD}}
{{Caption|Le mécanisme de saisie semi-automatique de la console Python FreeCAD}}


Maintenant notre nouveau document sera créé. Cela revient à appuyer sur le bouton {{Button|[[Image:Std_New.svg|16px]] [[Std_New|Std New]]}} dans la barre d'outils. En fait, la plupart des boutons de FreeCAD ne font rien d'autre que d'exécuter une ou plusieurs lignes de code Python. Encore mieux, vous pouvez définir une option dans {{MenuCommand|Édition → Préférences → Général → Macro}} avec {{MenuCommand|Montrer les commandes du script dans la console Python}}. Cela affichera dans la console tout le code Python exécuté lorsque vous pressez les boutons. Très utile pour apprendre à reproduire des actions dans Python.
Maintenant notre nouveau document sera créé. Cela revient à appuyer sur le bouton {{Button|[[Image:Std_New.svg|16px]] [[Std_New/fr|Nouveau]]}} dans la barre d'outils. En fait, la plupart des boutons de FreeCAD ne font rien d'autre que d'exécuter une ou plusieurs lignes de code Python. Encore mieux, vous pouvez définir une option dans {{MenuCommand|Édition → Préférences → Python → Macro}} avec {{MenuCommand|Montrer les commandes du script dans la console Python}}. Cela affichera dans la console tout le code Python exécuté lorsque vous pressez les boutons. Très utile pour apprendre à reproduire des actions dans Python.


Maintenant revenons à notre document et voyons ce que nous pouvons faire avec lui :
Maintenant revenons à notre document et voyons ce que nous pouvons faire avec lui :
Line 92: Line 95:
}}
}}


Si vous sélectionnez votre boîte avec la souris, vous verrez que dans l'[[Property_editor/fr|Éditeur de propriétés]], sous l'onglet {{MenuCommand|Données}}, notre propriété {{PropertyData/fr|Hauteur}} apparaît. Toutes les propriétés d'un objet FreeCAD qui y apparaissent (et également sur l'onglet {{MenuCommand|Vue}}, nous développerons plus tard), sont également directement accessibles par Python, par leur nom, comme nous l'avons fait avec notre propriété {{PropertyData/fr|Hauteur}}. Essayez de changer les autres dimensions de la boîte.
Si vous sélectionnez votre boîte avec la souris, vous verrez que dans l'[[Property_editor/fr|Éditeur de propriétés]], sous l'onglet {{MenuCommand|Données}}, notre propriété {{PropertyData|Height}} apparaît. Toutes les propriétés d'un objet FreeCAD qui y apparaissent (et également sur l'onglet {{MenuCommand|Vue}}, nous développerons plus tard), sont également directement accessibles dans Python, par leur nom, comme nous l'avons fait avec notre propriété {{PropertyData|Height}}. Essayez de changer les autres dimensions de la boîte.
{{Top}}

<span id="Vectors_and_placements"></span>
[[#top|En haut]]

== Vecteurs et placements ==
== Vecteurs et placements ==


Line 120: Line 122:


Avant d'aller plus loin, vous devez comprendre quelques concepts importants.
Avant d'aller plus loin, vous devez comprendre quelques concepts importants.
{{Top}}

<span id="App_and_Gui"></span>
[[#top|En haut]]

== Application et Interface Utilisateur ==
== Application et Interface Utilisateur ==


Line 141: Line 142:


Lorsque vous démarrez FreeCAD, la console Python charge déjà deux modules de base : {{incode|FreeCAD}} et {{incode|FreeCADGui}} (qui sont également accessibles par leurs raccourcis {{incode|App}} et {{incode|Gui}}). Ils contiennent toutes sortes de fonctionnalités génériques pour travailler avec des documents et leurs objets. Pour illustrer notre concept, voyez que {{incode|FreeCAD}} et {{incode|FreeCADGui}} contiennent à la fois un attribut {{incode|ActiveDocument}}, qui est le document actuellement ouvert. {{incode|FreeCAD.ActiveDocument}} et {{incode|FreeCADGui.ActiveDocument}} ne sont cependant pas le même objet. Ce sont les deux composants d'un document FreeCAD et ils contiennent différents attributs et méthodes. Par exemple, {{incode|FreeCADGui.ActiveDocument}} contient {{incode|ActiveView}}, qui est la [[3D_view/fr|Vue 3D]] actuellement ouverte.
Lorsque vous démarrez FreeCAD, la console Python charge déjà deux modules de base : {{incode|FreeCAD}} et {{incode|FreeCADGui}} (qui sont également accessibles par leurs raccourcis {{incode|App}} et {{incode|Gui}}). Ils contiennent toutes sortes de fonctionnalités génériques pour travailler avec des documents et leurs objets. Pour illustrer notre concept, voyez que {{incode|FreeCAD}} et {{incode|FreeCADGui}} contiennent à la fois un attribut {{incode|ActiveDocument}}, qui est le document actuellement ouvert. {{incode|FreeCAD.ActiveDocument}} et {{incode|FreeCADGui.ActiveDocument}} ne sont cependant pas le même objet. Ce sont les deux composants d'un document FreeCAD et ils contiennent différents attributs et méthodes. Par exemple, {{incode|FreeCADGui.ActiveDocument}} contient {{incode|ActiveView}}, qui est la [[3D_view/fr|Vue 3D]] actuellement ouverte.
{{Top}}

<span id="Modules"></span>
[[#top|En haut]]

== Les modules ==
== Les modules ==


La véritable puissance de FreeCAD réside dans ses précieux modules. L'application de base FreeCAD est plus ou moins un conteneur vide. Sans ses modules, elle ne peut guère faire plus que créer de nouveaux documents vides. Chaque module ajoute non seulement de nouveaux ateliers à l'interface, mais également de nouvelles commandes Python et de nouveaux types d'objets. Par conséquent, plusieurs types d'objets différents, voire totalement incompatibles, peuvent coexister dans le même document. Les modules les plus importants de FreeCAD que nous verrons dans ce tutoriel sont : [[Part_Module/fr| Part : Atelier pièce]], [[Mesh_Module/fr| Mesh]], [[Sketcher_Workbench/fr|Sketcher]] et [[Draft_Module/fr|Draft]].
La véritable puissance de FreeCAD réside dans ses modules indépendants, avec leurs ateliers respectifs. L'application de base FreeCAD est plus ou moins un conteneur vide. Sans ses modules, elle ne peut guère faire plus que créer de nouveaux documents vides. Chaque module ajoute non seulement de nouveaux ateliers à l'interface, mais également de nouvelles commandes Python et de nouveaux types d'objets. Par conséquent, plusieurs types d'objets différents, voire totalement incompatibles, peuvent coexister dans le même document. Les modules les plus importants de FreeCAD que nous verrons dans ce tutoriel sont : [[Part_Workbench/fr|Part]], [[Mesh_Workbench/fr|Mesh]], [[Sketcher_Workbench/fr|Sketcher]] et [[Draft_Workbench/fr|Draft]].


[[Sketcher_Workbench/fr|Sketcher]] et [[Draft_Workbench/fr|Draft]] utilisent tous deux l'[[Part_Workbench/fr|Part]] pour créer et gérer leur géométrie. Tandis que [[Mesh_Workbench/fr|Mesh]] est totalement indépendant et gère ses propres objets. Plus d'informations à ce sujet ci-dessous.
<div class="mw-translate-fuzzy">
[[Sketcher Workbench/fr|Atelier Sketcher (Esquisse)]] et [[Draft_Module/fr|Draft Module (Planche à dessin)]] utilisent tous les deux [[Part Module/fr|Part Module (Atelier Pièce)]] pour créer et gérer leurs objets, qui sont représentés par les bords, modélisation surfacique ou ([http://fr.wikipedia.org/wiki/B-Rep B-Rep]).<br />
Alors que [[Mesh Module|Mesh Module (Atelier Maillage)]] est totalement indépendant et gère ses propres objets.<br />
Nous en saurons plus tout à l'heure.
</div>


Vous pouvez en savoir plus sur tous les types d'objets disponibles dans le document courant comme ceci:
Vous pouvez vérifier tous les types d'objets de base disponibles pour le document actuel comme ceci :


{{Code|code=
{{Code|code=
Line 160: Line 156:
}}
}}


Les différents modules FreeCAD ne sont pas automatiquement chargés dans la console Python. C'est pour éviter d'avoir un démarrage très lent. Les modules sont chargés uniquement lorsque vous en avez besoin. Ainsi, par exemple, pour explorer ce qui se trouve à l'intérieur du module Part :
<div class="mw-translate-fuzzy">
Même si les différents modules de FreeCAD ont ajoutés leurs types d'objets, les modules ne sont pas automatiquement chargé dans la console python dans le but d'éviter de ralentir le démarrage. Les modules, ne sont chargés que lorsque vous en avez besoin.<br />
Ainsi, par exemple, pour explorer ce qui est à l'intérieur de "Part Module" (Atelier Pièce), faites:
</div>


{{Code|code=
{{Code|code=
Line 170: Line 163:
}}
}}


Mais nous parlerons plus en détail du module "Part module" ci-dessous.
Mais nous parlerons plus en détail du module Part ci-dessous.
{{Top}}
<span id="Mesh_module"></span>
==Atelier Mesh==


Les [https://fr.wikipedia.org/wiki/Mesh_(objet) maillages] sont un type d'objet 3D très simple, utilisé par exemple par [https://fr.wikipedia.org/wiki/SketchUp Sketchup], [https://fr.wikipedia.org/wiki/Blender Blender] et [https://fr.wikipedia.org/wiki/Autodesk_3ds_Max 3D Studio Max]. Ils sont composés de 3 éléments : des points (également appelés sommets), des lignes (également appelées arêtes) et des faces. Dans de nombreuses applications, FreeCAD inclus, les faces peuvent n'avoir que 3 sommets. Bien sûr, rien ne vous empêche d'avoir une face plus grande composée de plusieurs triangles coplanaires.
[[#top|top]]


Les maillages sont simples, mais comme ils sont simples, vous pouvez facilement en avoir des millions dans un seul document. Cependant, dans FreeCAD, ils sont moins utilisés et sont principalement là pour que vous puissiez importer des objets dans des formats de maillage ({{FileName|.stl}}, {{FileName|.obj}}) à partir d'autres applications. Le module Mesh a également été largement utilisé comme module de test principal au cours du premier mois de la vie de FreeCAD.
<div class="mw-translate-fuzzy">
== Mesh (Maillage)==
</div>


Les objets Mesh et les objets FreeCAD sont des choses différentes. Vous pouvez voir l'objet FreeCAD comme un conteneur pour un objet Mesh (et comme nous le verrons ci-dessous, pour les objets Part également). Donc pour ajouter un objet Mesh à FreeCAD, nous devons d'abord créer un objet FreeCAD et un objet Mesh, puis ajouter l'objet Mesh à l'objet FreeCAD :
<div class="mw-translate-fuzzy">
L'outil "[http://en.wikipedia.org/wiki/Polygon_mesh '''Mesh (mailles)''']" est un type d'objet 3D très simple, utilisé par exemple par [http://fr.wikipedia.org/wiki/Google_SketchUp Google SketchUp] , [http://fr.wikipedia.org/wiki/Blender Blender] ou [http://fr.wikipedia.org/wiki/3ds_Max 3D studio Max]. <br />
Il est composé de 3 éléments: <br />
*1 de [http://fr.wikipedia.org/wiki/Point_(géométrie) '''points'''] (également appelé [http://fr.wikipedia.org/wiki/Sommet_(géométrie) sommets] ou [http://en.wikipedia.org/wiki/Vertex_(geometry) Vertex])<br />
*2 de [http://fr.wikipedia.org/wiki/Droite_projective '''lignes'''], (également appelé bords ou arêtes)<br />
*3 de [http://fr.wikipedia.org/wiki/Face_(géométrie) '''faces''']. <br />
Dans de nombreuses applications, FreeCAD inclus des faces qui possèdent que 3 sommets. Mais bien sûr, rien ne vous empêche d'avoir la face d'un gros avion avec une multitude de triangles [http://fr.wikipedia.org/wiki/Coplanaire coplanaires].
</div>

<div class="mw-translate-fuzzy">
Les maillages sont simples, mais parce qu'ils sont simples, vous pouvez facilement en avoir des millions dans un seul document. Cependant, dans FreeCAD, ils sont peu utilisés et la plupart du temps vous pouvez donc importer des objets au format de maillage (.stl, .obj) à partir d’autres applications. Le module Mesh a également été largement utilisé comme module de test principal au départ du développement de FreeCAD.
</div>

L'objet '''Mesh''' et l'objet '''FreeCAD''' sont deux choses totalement différentes. Vous pouvez voir l'objet FreeCAD '''comme conteneur''' d'un Objet Mesh (nous le verrons ci-dessous avec les Objets Part). <br />
Ainsi, afin d'ajouter un Objet Mesh à FreeCAD, nous devons d'abord créer un Objet FreeCAD, créer un Objet Mesh et ensuite ajouter l'Objet Mesh à l'Objet FreeCAD:


{{Code|code=
{{Code|code=
Line 205: Line 185:
}}
}}


Il s'agit d'un exemple standard qui utilise la méthode {{incode|createSphere()}} pour créer une sphère, mais vous pouvez également créer des maillages personnalisés à partir de zéro en définissant leurs sommets et faces.
<div class="mw-translate-fuzzy">
Il s'agit ici d'un exemple classique, qui utilise la méthode '''createSphere()''' pour créer automatiquement une sphère mais vous pouvez très bien créer des maillages personnalisés à partir de rien, en définissant leurs sommets et leurs faces.
</div>


[[Mesh Scripting/fr|Ici plus de renseignements sur les scripts Mesh ...]]
[[Mesh Scripting/fr|Plus de renseignements sur les scripts Mesh...]]
{{Top}}
<span id="Part_module"></span>
==Atelier Part==


L'[[Part_Workbench/fr|atelier Part]] est le module le plus puissant de FreeCAD. Il vous permet de créer et de manipuler des objets [https://fr.wikipedia.org/wiki/B-Rep BREP]. BREP signifie Boundary Representation ou « Représentation par les Bords ». Un objet BREP est défini par des surfaces qui entourent et définissent un volume intérieur. Contrairement aux maillages, les objets BREP peuvent avoir une grande variété de composants, des faces planes aux surfaces NURBS très complexes.
[[#top|top]]


Le module Part est basé sur la puissante bibliothèque [https://fr.wikipedia.org/wiki/Open_CASCADE_Technology OpenCasCade], qui permet d'effectuer un large éventail d'opérations complexes sur ces objets, telles que les opérations booléennes, le filetage, les balayages, etc.
<div class="mw-translate-fuzzy">
== Part (Boîte à outils)==


Le module Part fonctionne de la même manière que le module Mesh : vous créez un objet FreeCAD, un objet Part, puis ajoutez l'objet Part à l'objet FreeCAD :
La [[Part Module/fr| boîte à outils]] est le module le plus puissant de l'ensemble FreeCAD. Il permet de créer et de manipuler des objets [http://fr.wikipedia.org/wiki/B-Rep B-Rep]. Ce type d'objet, contrairement à Mesh, peut avoir une grande variété de composantes. Pour mémoire, B-rep qui signifie '''boundary representation''', ce qui signifie en français '''Représentation par les Bords''' ou '''modélisation surfacique'''. Ces surfaces peuvent être une grande variété d'objets, tel que des surfaces planes ou des surfaces très complexes [http://fr.wikipedia.org/wiki/NURBS NURBS] (pour Non-Uniform Rational Basis Splines). Ils contribuent également à la notion de volume.
</div>

The [[Part Module|Part Module]] is the most powerful module in the whole of FreeCAD. It allows you to create and manipulate [http://en.wikipedia.org/wiki/Boundary_representation BRep] objects. BRep stands for "Boundary Representation". A BRep object is defined by surfaces that enclose and define an inner volume. Unlike meshes, BRep objects can have a wide variety of components from planar faces to very complex NURBS surfaces.

<div class="mw-translate-fuzzy">
La Boîte à outils est basée sur la puissante bibliothèque OpenCascade, qui permet un large éventail d'opérations complexes, qui peuvent être facilement effectuées sur ces objets, tels que, les opérations booléennes, le filetage, balayage, etc ..
</div>

Le module fonctionne en partie de la même manière que le module Mesh:<br />
Vous créez un Objet FreeCAD puis un Objet Part et après, ajoutez l'Objet Part à l'Objet FreeCAD:


{{Code|code=
{{Code|code=
Line 239: Line 209:
}}
}}


Le module Part (comme le module Mesh) a également un raccourci qui crée automatiquement un objet FreeCAD et lui ajoute une forme, vous pouvez donc raccourcir les trois dernières lignes avec :
<div class="mw-translate-fuzzy">
Le module Part (tout comme le module Mesh) dispose également d'un raccourci qui crée automatiquement un Objet dans FreeCAD et lui ajoute une forme, vous pouvez ainsi sauter les 3 dernières lignes ci-dessus:
</div>


{{Code|code=
{{Code|code=
Line 247: Line 215:
}}
}}


En explorant le contenu de myshape, vous remarquerez de nombreux sous-composants intéressants tels que {{incode|Faces}}, {{incode|Edges}}, {{incode|Vertexes}}, {{incode|Solids}} et {{incode|Shells}} et un large éventail d'opérations de géométrie telles que {{incode|cut}} (soustraction), {{incode|common}} (intersection) ou {{incode|fuse}} (union). La page [[Topological_data_scripting/fr|Script pour création topologique]] explique tout cela en détail.
<div class="mw-translate-fuzzy">
En explorant le contenu de myShape. dans la fenêtre, vous remarquerez de nombreuses et intéressantes options disponibles comme Faces, Edges, Vertexes, Solids ou Shells et un large éventail d'opérations géométriques telles soustraction, intersection ou union. La page [[Topological data scripting|Script pour les pièces]] explique tout cela en détail.
</div>


[[Topological_data_scripting/fr|Ici plus de renseignements sur les scripts Part]]
<div class="mw-translate-fuzzy">
{{Top}}
[[Topological data scripting/fr| Ici plus de renseignements sur données topologiques de scripts Part]]
<span id="Draft_module"></span>
</div>
==Atelier Draft==


FreeCAD propose de nombreux autres modules tels que l'[[Sketcher_Workbench/fr|atelier Sketch]] et l'[[Draft_Workbench/fr|atelier Draft]] qui créent également des objets Part (Pièce). Ces modules ajoutent des paramètres supplémentaires aux objets créés, voire implémentent une toute nouvelle façon de gérer la géométrie de la pièce (Part) qu'ils contiennent. Notre exemple de boîte ci-dessus est un exemple parfait d'un objet paramétrique. Tout ce dont vous avez besoin pour définir la boîte est de spécifier les paramètres hauteur, largeur et longueur. Sur la base de ceux-ci, l'objet calculera automatiquement sa forme " de pièce ". FreeCAD vous permet de [[Scripted_objects/fr|créer de tels objets en Python]].
[[#top|top]]


L'[[Draft_Workbench/fr|atelier Draft]] ajoute des objets de type paramétrique 2D (qui sont tous des objets Part) tels que des lignes et des cercles et fournit également des fonctions génériques qui fonctionnent non seulement sur les objets Draft, mais sur tout objet Part. Pour explorer ce qui est disponible, faites simplement :
<div class="mw-translate-fuzzy">
== Draft (projet de dessin) ==

FreeCAD propose de nombreux autres modules, tels que [[Sketcher Workbench/fr| Atelier sketcher(esquisse)]] et [[Draft Module/fr| Atelier draft (projet)]] qui créent également des objets Pièce. Ces modules ajoutent des paramètres supplémentaires aux objets créés voire implémentent une toute nouvelle façon de gérer la géométrie de la pièce qu'ils contiennent. Notre exemple de boîte ci-dessus est un exemple parfait d'objet paramétrique. Pour définir cette zone, il vous suffit de spécifier les paramètres hauteur, largeur et longueur. Sur cette base, l’objet calculera automatiquement la forme de sa partie. FreeCAD vous permet de [[Scripted objects|Objets créés par script]].
</div>

FreeCAD features many more modules, such as [[Sketcher_Workbench|Sketcher]] and [[Draft_Module|Draft]], that also create Part objects. These modules add additional parameters to the objects created, or even implement a whole new way to handle the Part geometry in them. Our box example above is a perfect example of a parametric object. All you need to define the box is to specify the parameters height, width and length. Based on those, the object will automatically calculate its Part shape. FreeCAD allows you to [[Scripted_objects|create such objects in Python]].

<div class="mw-translate-fuzzy">
Le [[Draft Module/fr|Module Draft]] ajoute une série d'objets de types 2D paramétriques (qui sont tous des objets Part) tels que les lignes et les cercles, et fournit également quelques fonctions génériques qui ne travaillent pas seulement sur ​​les objets fabriqués, mais sur n'importe quel objet Part.<br />
Pour voir ce qui est disponible, il suffit de faire:
</div>


{{Code|code=
{{Code|code=
Line 277: Line 233:
Draft.move(box, mvec)
Draft.move(box, mvec)
}}
}}
{{Top}}
==Interface==


L'interface utilisateur de FreeCAD est faite avec [https://fr.wikipedia.org/wiki/Qt Qt], un puissant système d'interface graphique, chargé de dessiner et de gérer tous les contrôles, menus, barres d'outils et boutons autour de la [[3D_view/fr|Vue 3D]]. Qt fournit un module, [[PySide/fr|PySide]], qui permet à Python d'accéder et de modifier des interfaces Qt telles que celle de FreeCAD. Essayons de jouer avec l'interface Qt et de produire une boîte de dialogue simple :
[[#top|top]]

<div class="mw-translate-fuzzy">
== Interface ==

L'interface utilisateur (Gui) de FreeCAD est faite avec [http://fr.wikipedia.org/wiki/Qt Qt], un puissant système de création d'interface visuelle graphique, chargé de construire et de gérer, commandes, menus, barres d'outils, boutons 3D ... Qt fournit un module appelé [[PySide/fr|PySide]] ([[PySide|en]]) qui permet à Python d'accéder et de modifier les interfaces contruites avec '''Qt''', comme FreeCAD. <br />
Essayons de travailler avec l'interface Qt et de construire une simple boîte de dialogue:
</div>

The FreeCAD user interface is made with [http://en.wikipedia.org/wiki/Qt_%28framework%29 Qt], a powerful graphical interface system, responsible for drawing and handling all the controls, menus, toolbars and buttons around the [[3D_view|3D view]]. Qt provides a module, [[PySide]], which allows Python to access and modify Qt interfaces such as FreeCAD's. Let's try to fiddle with the Qt interface and produce a simple dialog:


{{Code|code=
{{Code|code=
Line 294: Line 243:
}}
}}


Notez que la boîte de dialogue qui apparaît possède l'icône FreeCAD dans sa barre d'outils, ce qui signifie que Qt sait que la commande a été émise depuis l'intérieur de l'application FreeCAD. Il est possible de manipuler n'importe quelle partie de l'interface FreeCAD.
<div class="mw-translate-fuzzy">
Une boîte de dialogue apparaît et nous voyons aussi l'icone de FreeCAD, ce qui signifie que Qt sait que l'ordre d'affichage de la fenêtre a été fait à l'intérieur de l'application FreeCAD. Nous pouvons donc facilement et partiellement modifier l'interface de FreeCAD.
</div>


Qt est un système (de construction) d'interface très puissant qui vous permet de faire des choses très complexes. Il possède également des outils faciles à utiliser, tel que Qt Designer, avec lequel vous pouvez concevoir graphiquement des boîtes de dialogue, puis les ajouter à l'interface FreeCAD avec quelques lignes de code Python.
<div class="mw-translate-fuzzy">
Qt est un système de construction d'interface très puissant qui vous permet de faire des choses très complexes. Qt possède aussi une panoplie d'outils tel que Qt Designer avec lequel vous pouvez concevoir vos boîtes de dialogue graphique et de les ajouter à l'interface de FreeCAD avec quelques lignes de code Python.
</div>


[[PySide/fr|Plus de renseignements sur PyQt ici]] et ici [http://fr.wikipedia.org/wiki/PyQt PyQt]
[[PySide/fr|Plus de renseignements sur PySide ici]]
{{Top}}
<span id="Macros"></span>
== Macros ==


Maintenant que vous avez une bonne compréhension des bases, où allons-nous conserver nos scripts Python et comment allons-nous les lancer dans FreeCAD ? Il existe un mécanisme simple pour cela, appelé [[Macros/fr|Macros]]. Une macro est un script Python qui peut être ajouté à une barre d'outils et lancé via un clic de souris. FreeCAD vous fournit un éditeur de texte simple ({{MenuCommand|Macro → Macros... → Créer}}) où vous pouvez écrire ou coller des scripts. Une fois le script terminé, utilisez {{MenuCommand|Outils → Personnaliser... → Macros}} pour définir un bouton qui pourra être ajouté aux barres d'outils.
[[#top|top]]


<span id="External_scripts"></span>
<div class="mw-translate-fuzzy">
== Macros ==
==Scripts externes==


Une autre méthode pour créer, enregistrer et exécuter vos propres scripts en Python consiste à les créer en dehors de FreeCAD, en utilisant l'éditeur de votre choix (par exemple, Vim). Pour exécuter votre script en Python dans FreeCAD, assurez-vous de l'enregistrer avec l'extension {{FileName|.py}}.
Maintenant que vous avez une bonne connaissance des notions de base, où allons-nous placer nos scripts Python ? Comment allons-nous les lancer à partir de FreeCAD? <br />
Il y a pour cela un mécanisme appelé [[Macros/fr|Macros]]. Une macro est tout simplement un script en Python qui peut être ensuite ajouté à la barre d'outils et lancé à partir d'un simple clic de souris.<br />
FreeCAD est fournit avec un petit éditeur de texte (Macro → Macros → Créer) où vous pouvez écrire ou coller des scripts. Une fois le script terminé, allez dans '''Outils → Personnaliser → Macros''' où vous pouvez définir un bouton pour votre macro puis ajouter ce bouton à la barre d'outils.
</div>


Utilisez ensuite {{MenuCommand|Fichier → Ouvrir}} pour ouvrir votre script. Il se chargera dans un nouvel onglet de la [[Main_view_area/fr|zone d'affichage principale]]. Vous pouvez exécuter votre script en cliquant sur le bouton {{Button|[[Image:Std_DlgMacroExecuteDirect.svg|16px]] [[Std_DlgMacroExecuteDirect/fr|Lancer la macro ]]}}. Toute erreur ou résultat du script sera affichée dans la [[Report_view/fr|vue rapport]].
Now that you have a good understanding of the basics, where are we going to keep our Python scripts, and how are we going to launch them inside FreeCAD? There is an easy mechanism for that, called [[Macros|Macros]]. A macro is a Python script that can be added to a toolbar and launched via a mouse click. FreeCAD provides you with a simple text editor ({{MenuCommand|Macro → Macros... → Create}}) where you can write or paste scripts. Once the script is done, use {{MenuCommand|Tools → Customize... → Macros}} to define a button for it that can be added to toolbars.


Lorsque vous faites et enregistrez des modifications à votre script déjà chargé, une boîte de dialogue apparaît pour vous demander si vous voulez recharger le script modifié dans FreeCAD.
<div class="mw-translate-fuzzy">
Vous êtes maintenant prêt pour un script FreeCAD plus approfondi. Rendez-vous sur la [[Power users hub/fr|Documentation pour utilisateurs avancés]]!
</div>


Vous pouvez continuer à la page [[FreeCAD_Scripting_Basics/fr|FreeCAD Débuter avec les scripts]] ou vous pouvez accéder à cette page et à d'autres pages pertinentes sur le [[Power_users_hub/fr|hub pour utilisateurs expérimentés]].
[[#top|top]]
{{Top}}


{{Docnav/fr
<div class="mw-translate-fuzzy">
{{docnav/fr|[[Introduction to Python/fr|Introduction to Python]]|[[FreeCAD Scripting Basics/fr|FreeCAD Scripting Basics]]}}
|[[Introduction_to_Python/fr|Introduction à Python]]
|[[FreeCAD_Scripting_Basics/fr|Débuter avec les scripts FreeCAD]]
</div>
}}


{{Powerdocnavi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}
[[Category:Python_Code{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
{{clear}}

Latest revision as of 09:47, 10 August 2023

Introduction

Python est un langage de programmation qui est relativement facile à apprendre et à comprendre. Il est open-source, multi-plateforme et peut être utilisé à de nombreuses fins : des scripts shell simples aux programmes très complexes. Mais son utilisation la plus répandue se trouve dans le langage de script intégré dans d'autres applications. C'est ainsi qu'il est utilisé dans FreeCAD. Depuis la console Python, ou depuis des scripts personnalisés, vous pouvez contrôler FreeCAD et lui faire effectuer des opérations très complexes.

Par exemple, à partir d'un script Python, vous pouvez :

  • Créer de nouveaux objets.
  • Modifier les objets existants.
  • Modifier la représentation 3D de ces objets.
  • Modifier l'interface de FreeCAD.

Il existe plusieurs façons d'utiliser Python dans FreeCAD :

  • Depuis l'interpréteur Python de FreeCAD, où vous pouvez exécuter du code dans une interface du style " ligne de commande ".
  • Depuis les macros, qui sont un moyen pratique d'ajouter rapidement un outil manquant à l'interface FreeCAD.
  • A partir de scripts externes, qui peuvent être utilisés pour créer des solutions assez complexes, même des Ateliers entiers.

Dans ce tutoriel, nous allons travailler sur quelques exemples de base pour vous aider à démarrer, mais il y a beaucoup plus de documentations sur les scripts Python disponibles sur ce wiki. Si vous êtes totalement nouveau sur Python et que vous voulez comprendre comment cela fonctionne, nous avons également une Introduction à Python.

Avant de continuer avec les scripts Python, allez dans la fenêtre Edit → Préférences → Général → Vue rapport et cochez les deux cases :

  • Rediriger les messages internes Python vers la vue rapport.
  • Rediriger les erreurs internes de Python vers la vue rapport.

Accédez ensuite à Affichage → Panneau et vérifiez :

  • Vue de rapport coché.

Ecrire du code Python

Il existe deux façons d'écrire du code Python dans FreeCAD. Dans la Console Python (sélectionnez le menuAffichage → Panneau → Console Python) ou dans l'éditeur de Macro (sélectionnez Macro → Macros … dans le menu). Dans la console vous écrivez les commandes Python une par une, en les exécutant en appuyant sur Entrée, tandis que les macros peuvent contenir du code plus complexe composé de plusieurs lignes, exécuté uniquement lorsque la macro est démarrée.

La console Python FreeCAD

Dans ce tutoriel vous pouvez utiliser les deux méthodes. Vous pouvez copier-coller chaque ligne dans la console Python puis appuyer sur Entrée, ou copier-coller le code entier dans une nouvelle fenêtre Macro.

En haut

Exploration de FreeCAD

Commençons par créer un nouveau document vierge :

doc = FreeCAD.newDocument()

Si vous écrivez dans la console Python FreeCAD, vous remarquerez que dès que vous tapez FreeCAD. une fenêtre apparaît, permettant de compléter rapidement le reste de votre ligne. Encore mieux, chaque entrée de la liste de saisie semi-automatique a une info-bulle expliquant ce qu'elle fait. Cela facilite l'exploration des fonctionnalités disponibles. Avant de choisir newDocument, jetez un œil aux autres options.

Le mécanisme de saisie semi-automatique de la console Python FreeCAD

Maintenant notre nouveau document sera créé. Cela revient à appuyer sur le bouton Nouveau dans la barre d'outils. En fait, la plupart des boutons de FreeCAD ne font rien d'autre que d'exécuter une ou plusieurs lignes de code Python. Encore mieux, vous pouvez définir une option dans Édition → Préférences → Python → Macro avec Montrer les commandes du script dans la console Python. Cela affichera dans la console tout le code Python exécuté lorsque vous pressez les boutons. Très utile pour apprendre à reproduire des actions dans Python.

Maintenant revenons à notre document et voyons ce que nous pouvons faire avec lui :

doc.

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

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

Rien ne se passe. Pourquoi ? Parce que FreeCAD est conçu pour de gros projets. Un jour, il fonctionnera avec des centaines d'objets complexes, tous dépendants les uns des autres. Faire un petit changement quelque part pourrait avoir un grand impact, vous devrez peut-être recalculer tout le document, ce qui pourrait prendre du temps. Pour cette raison, presque aucune commande ne met automatiquement à jour la scène. Vous devez le faire manuellement :

doc.recompute()

Maintenant notre boîte est apparue. De nombreux boutons qui ajoutent des objets dans FreeCAD font en fait deux choses : ajouter l'objet et recalculer. Si vous avez activé l'option Montrer les commandes du script dans la console Python ci-dessus, essayez d'ajouter une sphère avec le bouton GUI, vous verrez les deux lignes de code Python s'exécuter l'une après l'autre.

Explorons maintenant le contenu de notre boîte :

box.

Vous verrez immédiatement un certain nombre de choses très intéressantes telles que :

box.Height

Cela affichera 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 que dans l'Éditeur de propriétés, sous l'onglet Données, notre propriété DonnéesHeight apparaît. Toutes les propriétés d'un objet FreeCAD qui y apparaissent (et également sur l'onglet Vue, nous développerons plus tard), sont également directement accessibles dans Python, par leur nom, comme nous l'avons fait avec notre propriété DonnéesHeight. Essayez de changer les autres dimensions de la boîte.

En haut

Vecteurs et placements

Les vecteurs sont un concept tout à fait fondamental dans toute application 3D. Un vecteur est une liste de 3 nombres (x, y et z), décrivant un point ou une position dans l'espace 3D. Beaucoup de choses peuvent être faites avec des vecteurs, tels que des additions, des soustractions, des projections et beaucoup plus. Dans FreeCAD, les vecteurs fonctionnent comme ceci :

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

Une autre caractéristique commune des objets FreeCAD est leur placement. Chaque objet possède une propriété DonnéesPlacement, qui contient les DonnéesBase (position) et les DonnéesRotation (orientation) de l'objet. Elle est facile à manipuler, par exemple pour déplacer notre objet :

box.Placement
box.Placement.Base
box.Placement.Base = sumvec
 
otherpla = FreeCAD.Placement()
box.Placement = otherpla

Avant d'aller plus loin, vous devez comprendre quelques concepts importants.

En haut

Application et Interface Utilisateur

FreeCAD a été conçu pour pouvoir également être utilisé sans son interface utilisateur, en tant qu'application en ligne de commande. Presque chaque objet dans FreeCAD se compose donc de deux parties : un Object (objet), sa composante "géométrie" et un ViewObject (Vue de l'objet), sa composante "visuelle". Lorsque vous travaillez en mode ligne de commande, la partie géométrique est présente, mais la partie visuelle est désactivée.

Pour illustrer le concept, observons notre objet cube. Les propriétés géométriques du cube, telles que ses dimensions, sa position, etc. sont stockées dans Object. Alors que ses propriétés visuelles, telles que sa couleur, son épaisseur de ligne, etc. sont stockées dans ViewObject. Cela correspond aux onglets Données et Vue dans l'Éditeur de propriétés. La partie ViewObject d'un objet est accessible comme ceci :

vo = box.ViewObject

Vous pouvez également modifier les propriétés de l'onglet Vue :

vo.Transparency = 80
vo.hide()
vo.show()

Lorsque vous démarrez FreeCAD, la console Python charge déjà deux modules de base : FreeCAD et FreeCADGui (qui sont également accessibles par leurs raccourcis App et Gui). Ils contiennent toutes sortes de fonctionnalités génériques pour travailler avec des documents et leurs objets. Pour illustrer notre concept, voyez que FreeCAD et FreeCADGui contiennent à la fois un attribut ActiveDocument, qui est le document actuellement ouvert. FreeCAD.ActiveDocument et FreeCADGui.ActiveDocument ne sont cependant pas le même objet. Ce sont les deux composants d'un document FreeCAD et ils contiennent différents attributs et méthodes. Par exemple, FreeCADGui.ActiveDocument contient ActiveView, qui est la Vue 3D actuellement ouverte.

En haut

Les modules

La véritable puissance de FreeCAD réside dans ses modules indépendants, avec leurs ateliers respectifs. L'application de base FreeCAD est plus ou moins un conteneur vide. Sans ses modules, elle ne peut guère faire plus que créer de nouveaux documents vides. Chaque module ajoute non seulement de nouveaux ateliers à l'interface, mais également de nouvelles commandes Python et de nouveaux types d'objets. Par conséquent, plusieurs types d'objets différents, voire totalement incompatibles, peuvent coexister dans le même document. Les modules les plus importants de FreeCAD que nous verrons dans ce tutoriel sont : Part, Mesh, Sketcher et Draft.

Sketcher et Draft utilisent tous deux l'Part pour créer et gérer leur géométrie. Tandis que Mesh est totalement indépendant et gère ses propres objets. Plus d'informations à ce sujet ci-dessous.

Vous pouvez vérifier tous les types d'objets de base disponibles pour le document actuel comme ceci :

doc.supportedTypes()

Les différents modules FreeCAD ne sont pas automatiquement chargés dans la console Python. C'est pour éviter d'avoir un démarrage très lent. Les modules sont chargés uniquement lorsque vous en avez besoin. Ainsi, par exemple, pour explorer ce qui se trouve à l'intérieur du module Part :

import Part
Part.

Mais nous parlerons plus en détail du module Part ci-dessous.

En haut

Atelier Mesh

Les maillages sont un type d'objet 3D très simple, utilisé par exemple par Sketchup, Blender et 3D Studio Max. Ils sont composés de 3 éléments : des points (également appelés sommets), des lignes (également appelées arêtes) et des faces. Dans de nombreuses applications, FreeCAD inclus, les faces peuvent n'avoir que 3 sommets. Bien sûr, rien ne vous empêche d'avoir une face plus grande composée de plusieurs triangles coplanaires.

Les maillages sont simples, mais comme ils sont simples, vous pouvez facilement en avoir des millions dans un seul document. Cependant, dans FreeCAD, ils sont moins utilisés et sont principalement là pour que vous puissiez importer des objets dans des formats de maillage (.stl, .obj) à partir d'autres applications. Le module Mesh a également été largement utilisé comme module de test principal au cours du premier mois de la vie de FreeCAD.

Les objets Mesh et les objets FreeCAD sont des choses différentes. Vous pouvez voir l'objet FreeCAD comme un conteneur pour un objet Mesh (et comme nous le verrons ci-dessous, pour les objets Part également). Donc pour ajouter un objet Mesh à FreeCAD, nous devons d'abord créer un objet FreeCAD et un objet Mesh, puis ajouter l'objet Mesh à l'objet FreeCAD :

import Mesh
mymesh = Mesh.createSphere()
mymesh.Facets
mymesh.Points
 
meshobj = doc.addObject("Mesh::Feature", "MyMesh")
meshobj.Mesh = mymesh
doc.recompute()

Il s'agit d'un exemple standard qui utilise la méthode createSphere() pour créer une sphère, mais vous pouvez également créer des maillages personnalisés à partir de zéro en définissant leurs sommets et faces.

Plus de renseignements sur les scripts Mesh...

En haut

Atelier Part

L'atelier Part est le module le plus puissant de FreeCAD. Il vous permet de créer et de manipuler des objets BREP. BREP signifie Boundary Representation ou « Représentation par les Bords ». Un objet BREP est défini par des surfaces qui entourent et définissent un volume intérieur. Contrairement aux maillages, les objets BREP peuvent avoir une grande variété de composants, des faces planes aux surfaces NURBS très complexes.

Le module Part est basé sur la puissante bibliothèque OpenCasCade, qui permet d'effectuer un large éventail d'opérations complexes sur ces objets, telles que les opérations booléennes, le filetage, les balayages, etc.

Le module Part fonctionne de la même manière que le module Mesh : vous créez un objet FreeCAD, un objet Part, puis ajoutez l'objet Part à l'objet FreeCAD :

import Part
myshape = Part.makeSphere(10)
myshape.Volume
myshape.Area

shapeobj = doc.addObject("Part::Feature", "MyShape")
shapeobj.Shape = myshape
doc.recompute()

Le module Part (comme le module Mesh) a également un raccourci qui crée automatiquement un objet FreeCAD et lui ajoute une forme, vous pouvez donc raccourcir les trois dernières lignes avec :

Part.show(myshape)

En explorant le contenu de myshape, vous remarquerez de nombreux sous-composants intéressants tels que Faces, Edges, Vertexes, Solids et Shells et un large éventail d'opérations de géométrie telles que cut (soustraction), common (intersection) ou fuse (union). La page Script pour création topologique explique tout cela en détail.

Ici plus de renseignements sur les scripts Part

En haut

Atelier Draft

FreeCAD propose de nombreux autres modules tels que l'atelier Sketch et l'atelier Draft qui créent également des objets Part (Pièce). Ces modules ajoutent des paramètres supplémentaires aux objets créés, voire implémentent une toute nouvelle façon de gérer la géométrie de la pièce (Part) qu'ils contiennent. Notre exemple de boîte ci-dessus est un exemple parfait d'un objet paramétrique. Tout ce dont vous avez besoin pour définir la boîte est de spécifier les paramètres hauteur, largeur et longueur. Sur la base de ceux-ci, l'objet calculera automatiquement sa forme " de pièce ". FreeCAD vous permet de créer de tels objets en Python.

L'atelier Draft ajoute des objets de type paramétrique 2D (qui sont tous des objets Part) tels que des lignes et des cercles et fournit également des fonctions génériques qui fonctionnent non seulement sur les objets Draft, mais sur tout objet Part. Pour explorer ce qui est disponible, faites simplement :

import Draft
rec = Draft.makeRectangle(5, 2)
mvec = FreeCAD.Vector(4, 4, 0)
Draft.move(rec, mvec)
Draft.move(box, mvec)

En haut

Interface

L'interface utilisateur de FreeCAD est faite avec Qt, un puissant système d'interface graphique, chargé de dessiner et de gérer tous les contrôles, menus, barres d'outils et boutons autour de la Vue 3D. Qt fournit un module, PySide, qui permet à Python d'accéder et de modifier des interfaces Qt telles que celle de FreeCAD. Essayons de jouer avec l'interface Qt et de produire une boîte de dialogue simple :

from PySide import QtGui
QtGui.QMessageBox.information(None, "Apollo program", "Houston, we have a problem")

Notez que la boîte de dialogue qui apparaît possède l'icône FreeCAD dans sa barre d'outils, ce qui signifie que Qt sait que la commande a été émise depuis l'intérieur de l'application FreeCAD. Il est possible de manipuler n'importe quelle partie de l'interface FreeCAD.

Qt est un système (de construction) d'interface très puissant qui vous permet de faire des choses très complexes. Il possède également des outils faciles à utiliser, tel que Qt Designer, avec lequel vous pouvez concevoir graphiquement des boîtes de dialogue, puis les ajouter à l'interface FreeCAD avec quelques lignes de code Python.

Plus de renseignements sur PySide ici

En haut

Macros

Maintenant que vous avez une bonne compréhension des bases, où allons-nous conserver nos scripts Python et comment allons-nous les lancer dans FreeCAD ? Il existe un mécanisme simple pour cela, appelé Macros. Une macro est un script Python qui peut être ajouté à une barre d'outils et lancé via un clic de souris. FreeCAD vous fournit un éditeur de texte simple (Macro → Macros... → Créer) où vous pouvez écrire ou coller des scripts. Une fois le script terminé, utilisez Outils → Personnaliser... → Macros pour définir un bouton qui pourra être ajouté aux barres d'outils.

Scripts externes

Une autre méthode pour créer, enregistrer et exécuter vos propres scripts en Python consiste à les créer en dehors de FreeCAD, en utilisant l'éditeur de votre choix (par exemple, Vim). Pour exécuter votre script en Python dans FreeCAD, assurez-vous de l'enregistrer avec l'extension .py.

Utilisez ensuite Fichier → Ouvrir pour ouvrir votre script. Il se chargera dans un nouvel onglet de la zone d'affichage principale. Vous pouvez exécuter votre script en cliquant sur le bouton Lancer la macro . Toute erreur ou résultat du script sera affichée dans la vue rapport.

Lorsque vous faites et enregistrez des modifications à votre script déjà chargé, une boîte de dialogue apparaît pour vous demander si vous voulez recharger le script modifié dans FreeCAD.

Vous pouvez continuer à la page FreeCAD Débuter avec les scripts ou vous pouvez accéder à cette page et à d'autres pages pertinentes sur le hub pour utilisateurs expérimentés.

En haut