Power users hub/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
(45 intermediate revisions by 5 users not shown)
Line 6: Line 6:
C'est l'endroit à venir si vous êtes un utilisateur expérimenté et que vous voulez en savoir plus sur la personnalisation et l'extension de FreeCAD.
C'est l'endroit à venir si vous êtes un utilisateur expérimenté et que vous voulez en savoir plus sur la personnalisation et l'extension de FreeCAD.


FreeCAD est extensible par du code [[Python/fr|Python]] qui est exécuté directement dans la [[Python_console/fr|console Python]] ou chargé à partir de modules au démarrage. Cela signifie que vous pouvez modifier FreeCAD sans avoir besoin de recompiler le programme. Par exemple, vous pouvez :
<div class="mw-translate-fuzzy">
* '''Créer et modifier la géométrie''' : vous pouvez créer un nouveau type d'objet, soit à partir de zéro, soit en adaptant un type existant.
Une des plus intéressantes possibilités de FreeCAD est de pouvoir créer et compléter des scripts sans devoir compiler quoi que ce soit ni toucher au code source. Tous les scripts sont écrits en langage [http://fr.wikipedia.org/wiki/Python_(langage) Python], un langage de programmation simple et très puissant. Avec un simple script Python vous avez un accès total à toutes les parties de FreeCAD.
* '''Créer des outils et des commandes personnalisés''' : ajoutez votre propre ensemble d'outils qui exécutent votre code.
* '''Modifier l'interface''' : créer des barres d'outils pour y placer vos outils, créer des fenêtres, des panneaux ou des interfaces spéciales pour interagir avec vos outils.
* '''Modifier la représentation scénographique''' : FreeCAD a des processus séparés pour construire la géométrie et afficher cette géométrie à l'écran. Vous avez un accès complet à la façon dont le contenu de la scène est affiché à l'écran, vous pouvez donc modifier cette représentation, interagir avec elle ou lui ajouter un comportement personnalisé. Vous pouvez également ajouter des widgets d'écran personnalisés, comme des informations, des glisseurs, des ancres ou des entités temporaires.


Si vous souhaitez contribuer au contenu de ces pages, demandez un compte wiki avec les droits d'éditeur [https://forum.freecadweb.org/viewtopic.php?f=21&t=6830 dans le forum] et lisez les [[WikiPages/fr|Pages Wiki]] pour les directives générales que vous devez suivre. Pour d'autres façons de contribuer au projet, consultez la page [[Help_FreeCAD/fr|Contribuer à FreeCAD]].
Vous pouvez par exemple :

* '''Créer et modifier des éléments géométriques''' : Avez-vous besoin d’un objet spécial qui n’est pas présent dans l’installation par défaut de FreeCAD ? Vous pouvez facilement créer un nouveau type d'objet, soit à partir de zéro, soit en adaptant un type existant.
* '''Créer des outils et commandes personnalisés''' : Actuellement, FreeCAD possède déjà de nombreuses fonctionnalités, mais il manque encore beaucoup d'outils et de commandes utiles à l'utilisateur final. Vous pouvez créer très facilement vos propres outils ou commandes.
* '''Modification de l'interface''': L'interface de FreeCAD est actuellement très basique. Mais FreeCAD vous permet de modifier son apparence et de l'adapter à vos besoins. Vous pouvez, par exemple, créer des barres d’outils pour utiliser vos propres outils, créer des panneaux spéciaux pour interagir avec vos outils, etc.
*'''Modifier la représentation de scènes''' : FreeCAD a des processus séparés pour construire et calculer les formes géométriques et afficher les figures à l'écran. Vous avez le contrôle total sur la manière dont les géométries sont affichées à l'écran, vous pouvez modifier la représentation, être interactif avec le processus ou ajouter toutes sortes de comportements personnalisés comme par exemple l'affichage d'informations, traçage ou entités temporaires.
</div>

<div class="mw-translate-fuzzy">
Ces pages sont au début de leur développement. Si vous ne trouvez pas l'information que vous recherchez, ou vous avez trouvé ailleurs des informations utiles non répertoriées ici, alors s'il vous plaît laissez un commentaire sur le [http://forum.freecadweb.org/ forum], ou, pourquoi pas, [[Help_FreeCAD/fr|ajouter du contenu vous-même]] !
</div>


== Personnaliser FreeCAD ==
== Personnaliser FreeCAD ==


<div class="mw-translate-fuzzy">
* [[Interface Customization/fr|Personnaliser l'interface]] : Les fondamentaux : les barres d'outils et les raccourcis claviers.
* [[Interface Customization/fr|Personnaliser l'interface]] : Les fondamentaux : les barres d'outils et les raccourcis claviers.
* [[Macros/fr|Travailler avec les macros]] : Enregistrer facilement les actions répétitives ou du code Python
* [[Macros/fr|Travailler avec les macros]] : Enregistrer facilement les actions répétitives ou du code Python
Line 29: Line 21:
* [[Customize_Toolbars/fr|Personnaliser la barre d'outils]]
* [[Customize_Toolbars/fr|Personnaliser la barre d'outils]]
* [[Installing_more_workbenches/fr|Installer plus d'ateliers]]
* [[Installing_more_workbenches/fr|Installer plus d'ateliers]]
* [http://forum.freecadweb.org/viewtopic.php?t=10556 Chargeur de plugins]
* [https://github.com/FreeCAD/FreeCAD-addons Addons installer.FCMacro]
</div>


== Scripts dans FreeCAD ==
== Scripts dans FreeCAD ==


'''Général'''
===Général===

* [[Introduction to Python/fr|Introduction à python]]: Allez voir aussi les autres tutoriels pour Python en liens en bas de cette page
* [[Introduction_to_Python/fr|Introduction à Python]] : Allez voir aussi les autres tutoriels pour Python en liens en bas de cette page.
* [[Python scripting tutorial/fr|FreeCAD scripting tutorial]]: Une vue générale des scripts Python dans FreeCAD
* [[FreeCAD Scripting Basics/fr|Scripts de base]]: Les bases des scripts en Python...
* [[Python_scripting_tutorial/fr|Tutoriel sur les scripts Python]] : Une vue générale des scripts Python dans FreeCAD.
* [[FreeCAD_Scripting_Basics/fr|Scripts de base]] : Les bases des scripts en Python...
* [[Gui Command/fr|Interface et commandes]]: Ajouter des commandes personnalisées dans l'interface de FreeCAD
* [[Gui_Command/fr|Interface et commandes]] : Ajouter des commandes personnalisées dans l'interface de FreeCAD.
* Utiliser des [[Units/fr|Unités]] variées dans FreeCAD
* Utiliser des [[Units/fr|Unités]] variées dans FreeCAD.
* [[Profiling/fr|Profilage]] du code Python.


=== Modules ===
=== Modules ===
Line 49: Line 40:
* [[Workbench creation/fr|Création d'Ateliers]] vous montre comment créer votre propre atelier.
* [[Workbench creation/fr|Création d'Ateliers]] vous montre comment créer votre propre atelier.


====Travailler avec les maillages "Mesh"====
====Travailler avec les maillages====
* [[Mesh Scripting/fr|Les scripts de maillage]] sont interactifs avec le [[Mesh Module/fr|module maillage]]


* [[Mesh Scripting/fr|Mesh Scripts]]: comment interagir avec l'[[Mesh_Workbench/fr|atelier Mesh]]
====Travailler avec les géométries "Parts"====
* Comment le [[Part Module/fr|module géométrie " Part "]] utilise les outils et structures [http://fr.wikipedia.org/wiki/Open_CASCADE Open CASCADE Technology] dans FreeCAD
* Les [[Topological data scripting/fr|scripts de données topologiques]] sont interactifs avec " Part "
* [[PythonOCC/fr|PythonOCC]] peut utiliser toute la puissance du moteur Open CASCADE
* [[Mesh to Part/fr|Maillage vers géométrie]] ou comment convertir les types d'objets différents " Mesh " et " Part "


====Accéder aux Scènes graphiques avec Coin====
====Travailler avec les objets Parts====

* [[Scenegraph/fr|Scènes graphiques et Coin/Inventor]] : Vous pouvez avec FreeCad représenter des scènes de travail grâce à [http://fr.wikipedia.org/wiki/Open_CASCADE_Technology Coin3D]
* [[Part_Workbench|Atelier Part]] : comment les outils et la structure de [https://fr.wikipedia.org/wiki/Open_CASCADE_Technology Open CASCADE Technology] sont utilisés dans FreeCAD.
* [[Pivy/fr|Pivy]] : permet d'accéder et modifier la scène graphique (passerelle d'accès à Coin)
* Les [[Topological_data_scripting/fr|Scripts pour création topologique]] : interaction avec l'atelier Part.
* [[PythonOCC/fr|PythonOCC]] :comment utiliser toute la puissance du moteur Open CASCADE.
* [[Mesh to Part/fr|Conversion objet Mesh en Part]] : conversion entre les types d'objets.

====Accéder aux graphes de scène de Coin====

* [[Scenegraph/fr|Graphe de scène]] : Comment fonctionne la représentation de la scène FreeCAD.
* [[Pivy/fr|Pivy]] : Comment accéder et modifier le graphe de scène


===Contrôler l'interface avec Qt===
===Contrôler l'interface avec Qt===

* [[PySide/fr|PySide]] dispose des outils nécessaires pour construire, accéder et modifier le contenu d'une interface utilisateur
* [[PySide/fr|PySide]] : comment accéder à l'interface et modifier son contenu.
* [[Embedding FreeCADGui/fr|Utilisez les modules graphiques FreeCAD]] dans d'autres applications Qt avec l'aide de PyQt
* [[Embedding_FreeCADGui/fr|Utilisez les modules graphiques FreeCAD]] : dans d'autres applications Qt avec l'aide de PyQt.


===Travailler avec des objets paramétriques===
===Travailler avec des objets paramétriques===


* [[Scripted_objects/fr|Objets créés par script]] : comment créer des objets créés par script à 100% en Python.
<div class="mw-translate-fuzzy">
* [[Scripted_objects/fr|Objets créés par script]]: comment créer des objets créés par script à 100% en Python.
** [[Scripted_objects_with_attachment/fr|Objets créés par script avec pièce jointe]] : comment rendre les objets créés par script attachables à d'autres objets.
** [[Scripted_objects_saving_attributes|Scripted objects saving attributes]] : comment sauvegarder et restaurer les attributs de la classe proxy avec {{incode|__getstate__}} et {{incode|__setstate__}}.
** [[Scripted_objects_with_attachment/fr|Objets créés par script avec pièce jointe]]: comment rendre les objets créés par script attachables à d'autres objets.
** [[Scripted_objects_migration/fr|Migration d'objets créés par script]]: comment migrer d'anciens objets créés par script vers une nouvelle classe.
** [[Scripted_objects_migration|Scripted objects migration]] : comment migrer d'anciens objets créés par script vers une nouvelle classe.
* [[Drawing Module/fr|Atelier Drawing]]: automatisation du processus 3D vers 2D.
</div>


===Exemples===
===Exemples===

* Collection d'[[Code snippets/fr|Extraits de code]] Python qui peuvent servir de base à vos scripts
* [[Code_snippets/fr|Code snippets]] : une collection de morceaux de code Python de FreeCAD, pour servir d'ingrédients dans vos scripts...
* [[Line drawing function/fr|Dessiner une ligne]]: Toute l'écriture d'un simple outil qui va dessiner une ligne
* [[Line_drawing_function/fr|Fonction - tracer une ligne]] : comment construire un outil simple pour dessiner des lignes.
* Comment [[Dialog creation/fr|créer une boîte de dialogue]] avec Qt designer, et l'utiliser dans FreeCAD
* [[Dialog_creation/fr|Création d'une boite de dialogue]] : comment construire des dialogues avec Qt designer et les utiliser dans FreeCAD.
* Faire l'[[Embedding FreeCAD/fr|intégration de FreeCAD]] comme module Python dans une application externe
* [[Embedding_FreeCAD/fr|Intégrer FreeCAD]] : comment importer FreeCAD en tant que module Python dans d'autres applications.
* Ajouter avec le [[Draft Module/fr|module Ébauche]] des fonctions de dessin 2D dans FreeCAD. Entièrement écrit en Python, c'est un bon exemple si vous voulez écrire vos propres modules
* L'[[Draft_Workbench/fr|atelier Draft]] ajoute des fonctions de dessin 2D de base à FreeCAD. Il est entièrement écrit en Python, donc il peut être un bon exemple si vous voulez écrire vos propres modules.
* [[FreeCAD vector math library/fr|Bibliothèque mathématique de vecteurs]] : Quelques fonctions pratiques pour manipuler les vecteurs FreeCAD. Cette bibliothèque est aussi incluse dans le module Draft.
* [[FreeCAD_vector_math_library/fr|Bibliothèque mathématique vectorielle de FreeCAD]] : Quelques fonctions pratiques pour manipuler les vecteurs FreeCAD. Cette bibliothèque est également incluse dans le module Draft.


== Fonctions API ==
== Fonctions API ==
Line 91: Line 85:
== Modifications avancées ==
== Modifications avancées ==


* [[Start up and Configuration/fr|Démarrage et configuration]] : Démarrage et options en ligne de commande
* [[Start_up_and_Configuration/fr|Démarrage et configuration]]: démarrage et options en ligne de commande
* [[Install on Windows/fr|Installation sous Windows]] : Utilisation de l'installeur Windows
* [[Installing_on_Windows/fr|Installation sous Windows]]: utilisation de l'installeur Windows
* [[Compile_on_Windows/fr|Compilation de FreeCAD sous Windows]] et [[Compile on Linux/Unix/fr|Compiler sous Linux/Unix]]
* [[Compile_on_Windows/fr|Compilation de FreeCAD sous Windows]] et [[Compile_on_Linux/fr|Compiler sous Linux/Unix]]
* [[Branding/fr|Identification à la marque FreeCAD]] : les modifications simples à effectuer sur le code source de FreeCAD pour construire votre propre application
* [[Branding/fr|Identification à la marque FreeCAD]]: les modifications simples à effectuer sur le code source de FreeCAD pour construire votre propre application
* [[Extra python modules/fr|Extension des modules Python]] : L’interpréteur Python de FreeCAD est facilement extensible par l'ajout de nombreux modules !
* [[Extra_python_modules/fr|Extension des modules Python]]: l’interpréteur Python de FreeCAD est facilement extensible par l'ajout de nombreux modules !


== Tutoriels pour Python ==
== Tutoriels pour Python ==
Line 102: Line 96:


'''Python'''
'''Python'''
* [http://docs.python.org/tut/tut.html Official python tutorial] - Un tutoriel très complet pour découvrir Python
* [https://docs.python.org/3/tutorial/index.html Official python tutorial] - Un tutoriel très complet pour découvrir Python
* [http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python Non-programmer tutorial for python] - un excellent livre au format Wiki
* [https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 Non-programmer tutorial for python] - un excellent livre au format Wiki
* [http://npt.cc.rsu.ru/user/wanderer/ODP/Python_for_Newbies.htm Python for newbies] - un grand tutoriel couvrant tous les grands principes de base.
* [http://npt.cc.rsu.ru/user/wanderer/ODP/Python_for_Newbies.htm Python for newbies] - un grand tutoriel couvrant tous les grands principes de base.


Line 115: Line 109:


Les deux références suivantes sont spécifique à PyQt (pas PySide) mais peuvent offrir des informations d'utilisation :
Les deux références suivantes sont spécifique à PyQt (pas PySide) mais peuvent offrir des informations d'utilisation :
* [Http://www.cs.usfca.edu/~afedosov/qttut/Basic PyQt tutoriel] : Un tutoriel simple et court basé sur Linux qui vous expliquera comment travailler avec PyQt et Qt Designer
* [http://www.cs.usfca.edu/~afedosov/qttut/Basic PyQt tutoriel] : Un tutoriel simple et court basé sur Linux qui vous expliquera comment travailler avec PyQt et Qt Designer
* [Http://vizzzion.org/?id=pyqt Programming Qt applications in python]: Un tutoriel plus approfondi couvrant l'ensemble des processus de travail avec Qt et python.
* [http://vizzzion.org/?id=pyqt Programming Qt applications in python]: Un tutoriel plus approfondi couvrant l'ensemble des processus de travail avec Qt et python.


'''Pivy''' - Comment être interactif entre FreeCad et scènes 3D
'''Pivy''' - Comment interagir avec les scènes 3D de FreeCAD
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.947&rep=rep1&type=pdf Pivy - Incorporation d'un langage de script dynamique dans une bibliothèque de graphes de scènes]: Thèse qui explique Pivy en détail
* [http://pivy.coin3d.org/documentation/pycon Tutoriel Pivy de base] : Un tutoriel très simple sur le site officiel de Pivy
* [http://ftp.ntua.gr/mirror/python/pycon/dc2004/papers/47/ Programmation graphique 3D de haut niveau en Python]: exemple Pivy de Pycon 2004
* [http://www.google.com.br/url?sa=U&start=3&q=http://studierstube.icg.tu-graz.ac.at/doc/pdf/PivyStudierstubeTutorial.pdf&ei=XyC1Sc2wOeCKmQem_eHnBQ&usg=AFQjCNEYhb-0DcUc6OxFVijAe1epBb-4aA Introduction à Pivy studiersturbe] : Ce document n'est pas vraiment un tutoriel mais, il illustre très bien le fonctionnement de Pivy au travail
* [https://www.semanticscholar.org/paper/Integrating-Pivy-into-Studierstube-4.2-Gruber/08c9a89c8326c87f81c2d83428029fbfb6c2ae64 Introducing Pivy into studierstube] [https://www.researchgate.net/publication/228737136_Integrating_Pivy_into_Studierstube_42 (Mirror)] : Un article qui n'est pas vraiment un tutoriel mais qui illustre bien le fonctionnement de Pivy (nécessite un compte académique)


== Projets communautaires ==
== Projets communautaires ==


Sur le [[FreeCAD Community Portal/fr|Portail communautaire FreeCAD]], vous pouvez rechercher d'autres projets basés sur FreeCAD et gérés par la communauté. Si vous avez commencé un nouveau projet FreeCAD, assurez vous de le signaler sur le [[FreeCAD Community Portal|Community portal (page en anglais)]] ! Si vous souhaitez participer au développement de FreeCAD vous pouvez visiter la page [[Help FreeCAD/fr|Aider FreeCAD]] et voir ce que vous pouvez faire.
Sur le [[FreeCAD Community Portal/fr|Portail communautaire FreeCAD]], vous pouvez rechercher d'autres projets basés sur FreeCAD et gérés par la communauté. Si vous avez commencé un nouveau projet FreeCAD, assurez vous de le signaler sur le [[FreeCAD Community Portal|Community portal (page en anglais)]] ! Si vous souhaitez participer au développement de FreeCAD vous pouvez visiter la page [[Help FreeCAD/fr|Aider FreeCAD]] et voir ce que vous pouvez faire.

* [[Scientific_literature|Scientific literature]]: articles qui référencent ou utilisent le système FreeCAD de différentes manières.



{{Powerdocnavi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}
[[Category:Hubs]]
[[Category:Hubs{{#translation:}}]]

Revision as of 18:56, 13 September 2021



C'est l'endroit à venir si vous êtes un utilisateur expérimenté et que vous voulez en savoir plus sur la personnalisation et l'extension de FreeCAD.

FreeCAD est extensible par du code Python qui est exécuté directement dans la console Python ou chargé à partir de modules au démarrage. Cela signifie que vous pouvez modifier FreeCAD sans avoir besoin de recompiler le programme. Par exemple, vous pouvez :

  • Créer et modifier la géométrie : vous pouvez créer un nouveau type d'objet, soit à partir de zéro, soit en adaptant un type existant.
  • Créer des outils et des commandes personnalisés : ajoutez votre propre ensemble d'outils qui exécutent votre code.
  • Modifier l'interface : créer des barres d'outils pour y placer vos outils, créer des fenêtres, des panneaux ou des interfaces spéciales pour interagir avec vos outils.
  • Modifier la représentation scénographique : FreeCAD a des processus séparés pour construire la géométrie et afficher cette géométrie à l'écran. Vous avez un accès complet à la façon dont le contenu de la scène est affiché à l'écran, vous pouvez donc modifier cette représentation, interagir avec elle ou lui ajouter un comportement personnalisé. Vous pouvez également ajouter des widgets d'écran personnalisés, comme des informations, des glisseurs, des ancres ou des entités temporaires.

Si vous souhaitez contribuer au contenu de ces pages, demandez un compte wiki avec les droits d'éditeur dans le forum et lisez les Pages Wiki pour les directives générales que vous devez suivre. Pour d'autres façons de contribuer au projet, consultez la page Contribuer à FreeCAD.

Personnaliser FreeCAD

Scripts dans FreeCAD

Général

Modules

Le fonctionnement de FreeCAD est séparé en modules qui traitent de types de données et d'applications spéciales. FreeCAD a intégré des modules et des modules d'extension (plug-ins). Une fois que les modules de plug-in sont installés, ils deviennent disponibles aussi facilement que les modules intégrés. Les modules décrits ci-dessous sont les modules par défaut, inclus dans chaque installation FreeCAD.

  • Les modules intégrés sont les principaux modules de FreeCAD. Ils contiennent les outils pour manipuler les configurations générales de FreeCAD, les documents et leur contenu.
  • Création d'Ateliers vous montre comment créer votre propre atelier.

Travailler avec les maillages

Travailler avec les objets Parts

Accéder aux graphes de scène de Coin

  • Graphe de scène : Comment fonctionne la représentation de la scène FreeCAD.
  • Pivy : Comment accéder et modifier le graphe de scène

Contrôler l'interface avec Qt

Travailler avec des objets paramétriques

Exemples

  • Code snippets : une collection de morceaux de code Python de FreeCAD, pour servir d'ingrédients dans vos scripts...
  • Fonction - tracer une ligne : comment construire un outil simple pour dessiner des lignes.
  • Création d'une boite de dialogue : comment construire des dialogues avec Qt designer et les utiliser dans FreeCAD.
  • Intégrer FreeCAD : comment importer FreeCAD en tant que module Python dans d'autres applications.
  • L'atelier Draft ajoute des fonctions de dessin 2D de base à FreeCAD. Il est entièrement écrit en Python, donc il peut être un bon exemple si vous voulez écrire vos propres modules.
  • Bibliothèque mathématique vectorielle de FreeCAD : Quelques fonctions pratiques pour manipuler les vecteurs FreeCAD. Cette bibliothèque est également incluse dans le module Draft.

Fonctions API

La documentation complète de l'API de FreeCAD se trouve à l'adresse http://www.freecadweb.org/api/. Elle contient à la fois les APIs C++ et Python, et n'est pas encore parfaitement formatée, ce qui peut être déroutant si vous recherchez du code uniquement Python. Une version plus facile à parcourir peut être trouvée ici. Notez qu'elle peut être incomplète, car elle est mise à jour manuellement. Pour des informations plus précises, parcourez les modules directement depuis la console Python de FreeCAD.

En rapport : Exposing C++ to Python

Modifications avancées

Tutoriels pour Python

Voici une compilation de très bons tutoriels, pas forcement liés à FreeCAD, mais très intéressants si vous êtes totalement débutants en Python.

Python

PySide - Comment créer et gérer l'UI Qt de FreeCAD à partir de Python

Les deux références suivantes sont spécifique à PyQt (pas PySide) mais peuvent offrir des informations d'utilisation :

  • PyQt tutoriel : Un tutoriel simple et court basé sur Linux qui vous expliquera comment travailler avec PyQt et Qt Designer
  • Programming Qt applications in python: Un tutoriel plus approfondi couvrant l'ensemble des processus de travail avec Qt et python.

Pivy - Comment interagir avec les scènes 3D de FreeCAD

Projets communautaires

Sur le Portail communautaire FreeCAD, vous pouvez rechercher d'autres projets basés sur FreeCAD et gérés par la communauté. Si vous avez commencé un nouveau projet FreeCAD, assurez vous de le signaler sur le Community portal (page en anglais) ! Si vous souhaitez participer au développement de FreeCAD vous pouvez visiter la page Aider FreeCAD et voir ce que vous pouvez faire.

  • Scientific literature: articles qui référencent ou utilisent le système FreeCAD de différentes manières.