Extra python modules/fr

=Extra_python_modules/fr=

L'interpréteur Python inclus dans FreeCAD, peut facilement être étendu, par l'ajout de nouveaux modules, dans l'installation Python présente sur votre système. Ces modules seront automatiquement détectés et utilisés par FreeCAD.

Tous les modules Python peuvent être utilisés à partir de FreeCAD, mais plusieurs d'entre eux, énumérés ci-dessous, ont une importance particulière, parce qu'ils permettent aux programmes Python un accès complet aux fonctionnalités de base de FreeCAD. Des exemples d'utilisation de ces modules, peuvent également être trouvés sur la page extraits de code. Remarque : les modules Pivy et PyQt4 sont désormais pleinement intégrés dans n'importe quel package d'installation FreeCAD, ainsi que les packages d'installation pour Windows.

PyQt4
PyQt (version 4 ?) est une bibliothèque Python bindings qui permet aux programmes d'accéder, de créer ou modifier des interfaces Qt. L'interface de FreeCAD est construit avec Qt, l'installation sur votre système de PyQt4 permet aux programmes Python inclus dans FreeCAD d'accéder à toute l'interface, modifier ses outils, de créer de nouveaux widgets, ou de recueillir des informations à partir des pièces de l'interface. PyQt est publié sous un système de licences multiples, les mêmes licences utilisées par Qt. Pour mémoire, il existe une version commerciale et une version gratuite GPL. Si vous voulez utiliser les programmes pour une utilisation commerciale (source fermée), vous devez acheter la licence commerciale, sinon vous pouvez simplement installer, et utiliser librement la version GPL.

Installation
Avant d'installer PyQt4, vous devez évidemment avoir un environnement Python installé et fonctionnel.

Linux

La façon la plus simple d'installer PyQt4, est le gestionnaire de paquets de votre distribution. Sur les systèmes Debian/Ubuntu, le nom du package est généralement Python-qt4, tandis que le RPM-systèmes est nommé pyqt4. Les dépendances nécessaire (Qt et SIP) seront prises en charge automatiquement.

Windows

Le programme peut être téléchargé ici. Vous aurez besoin d'installer les librairies Qt et SIP avant d'installer pyqt4 (à documenter).

Utilisation
Une fois installé, vous pouvez vérifier le bon fonctionne de l'installation, en tapant dans la console Python de FreeCAD :

import PyQt4

Pour accéder à l'interface de FreeCAD, tapez :

from PyQt4 import QtCore,QtGui app = QtGui.qApp FreeCADWindow = app.activeWindow

Maintenant, vous pouvez commencer l'exploration de l'interface avec la commande dir. Vous pouvez ajouter de nouveaux éléments, comme un widget personnalisé, avec des commandes comme :

FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)

Documentation
Plus de tutoriels sur PyQt4 (y compris sur la façon de construire des interfaces avec Qt Designer pour utiliser avec python) :

API PyQt4 - La référence officielle sur l'API de PyQt4

Introduction PyQt4- une simple introduction.

un tutoriel - vraiment complet.

Pivy
homepage: http://pivy.coin3d.org/

Pivy est une partie de la bibliothèque de liaisons pour Python, officiellement soutenu par Coin. Coin lui-même est une boîte à outils pour créer des applications 3D en OpenGL. Il s'agit de la boîte à outils que FreeCAD utilise pour dessiner sa scène 3D à l'écran. L'installation Pivy sur votre système permettra aux programmes Python d'accéder à la scenegraphique de FreeCAD, de dessiner de nouveaux objets sur la scène et d'utiliser la vaste gamme d'outils Coin, disponibles pour les opérations de dessin. Coin est basé sur le langage open Inventor scene description. Pivy est utilisé par le module de dessin 2D de FreeCAD (et aussi par tous les modules), il est donc nécessaire, si vous souhaitez utiliser n'importe quel outil de ces modules.

Il est important de savoir que FreeCAD utilise uniquement Coin, pour représenter les objets sur l'écran, et est séparé de la définition des objets. Cela signifie que Pivy ne sera pas en mesure de modifier les objets existants, ni de créer des objets valides pour FreeCAD. Mais, il peut être utilisé pour dessiner toutes sortes de choses temporaires sur l'écran, telles que axis, grids (axes, grilles), manipulateurs, de constructions géométriques, etc ..

Pivy, ainsi que Coin, sont publiés sous licence GPL.

Prérequis
Je crois, qu'avant de compiler Pivy vous devez avoir Coin et SoQt d'installés.

J'ai trouvé que pour la compilation sur Mac, il suffisait d'installer le Coin3 binary package. La tentative d'installation de Coin sur MacPorts était problématique : j'ai essayé d'ajouter un grand nombre de paquets X Windows, et, finalement, tout c'est terminé avec une erreur de script !

Pour Fedora, j'ai trouvé un RPM avec Coin3.

SoQt, compilé à partir des sources fonctionne très bien sur Mac et Linux.

Debian & Ubuntu
Depuis Debian Squeeze et Ubuntu Lucid, Pivy est disponible directement à partir des dépôts officiels, et, nous permet d'économiser beaucoup de tracas. En attendant, vous pouvez soit télécharger l'un des packages que nous avons fait (pour Debian et Ubuntu karmic), disponibles sur les pages de téléchargements, ou, vous pouvez le compiler vous-même.

La meilleure façon de compiler facilement Pivy, est de prendre le debian source package pour Pivy, et, faire un package avec debuild. C'est le même code source que sur le site officiel de Pivy, mais, les gens de Debian ont ajoutés plusieurs bug-fixing. Il compile également très bien sur : Ubuntu Karmic ... (télécharger .orig.gz et .diff.gz, décompressez le tout, puis appliquez .diff à la source : allez dans le dossier source de Pivy décompressé, et appliquez le patch .diff :

patch -p1 < ../pivy_0.5.0~svn765-2.diff

alors

debuild

pour avoir Pivy, correctement compilé, avec un package officiellement installable. Ensuite, il suffit d'installer le package avec gdebi.

Autres distributions Linux
D'abord, téléchargez les dernières sources du project's repository :

hg clone http://hg.sim.no/Pivy/default Pivy

En Mars 2012, la dernière version était la pivy-0.5.

Ensuite, vous avez besoin d'un outil appelé SWIG pour générer le code C++ pour les Python bindings. Pivy-0.5 rapports qui a été testé seulement avec SWIG 1.3.31, 1.3.33, 1.3.35 et 1.3.40. Ainsi, vous pouvez télécharger une archive source pour l'une de ces anciennes versions de SWIG. Puis, décompressez-le, et, faites en ligne de commande (en tant que root) :

./configure make make install (or checkinstall if you use it)

Il faut quelques secondes pour la compilation.

Alternativement, vous pouvez essayer avec une compilation plus récent SWIG. En Mars 2012, la version référentielle typique était 2.0.4. Pivy a un problème de compilation avec les versions inférieures 2.0.4 de SWIG sur Mac OS (voir ci-dessous), mais semble compiler correctement sur Fedora Core 15.

Après cela, allez dans le source Pivy et tapez :

python setup.py build

pour créer les fichiers sources. Notez que cette génération de fichiers peut produire des milliers de mises en garde, mais j'espère qu'il n'y aura pas d'erreurs.

Ceci est probablement obsolète, mais vous risquez de rencontrer une erreur de compilation, ou, un "const char*" ne peut pas être converti en un "char*". Pour corriger cela, il vous suffit d'écrire une "const", dans les lignes appropriées, avant la génération. Il y a six lignes à corriger.

Après cela, installez (en tant que root) :

python setup.py install (or checkinstall python setup.py install)

Ça y est, pivy est installé.

Mac OS
Ces instructions peuvent ne pas être complètes. Quelque chose plus ou moins comme cela a fonctionné pour OS 10.7 de Mars 2012. J'utilise MacPorts pour les dépôts, mais d'autres options devraient également fonctionner. En ce qui concerne linux, téléchargez les dernières sources :

hg clone http://hg.sim.no/Pivy/default Pivy

Si vous n'avez pas hg, vous pouvez l'obtenir à partir MacPorts :

port install mercurial

Puis, comme ci-dessus vous avez besoin SWIG. Faites :

port install swig

J'ai trouvé que j'avais besoin aussi de faire :

port install swig-python

En Mars 2012, MacPorts SWIG est la version 2.0.4. Comme il est indiqué ci-dessus pour Linux, il vaudrait mieux télécharger une version plus ancienne. SWIG 2.0.4 semble avoir un bug qui empêche la compilation de Pivy. Regardez le premier message dans ce : digest

Cela peut être corrigé, en modifiant les 2 emplacements source et déréférencer : *arg4, *arg5 à la place de arg4, arg5. Maintenant nous pouvons compiler Pivy:

python setup.py build sudo python setup.py install

Windows
En supposant que vous utilisiez Visual Studio 2005 ou une version ultérieure, vous devrez ouvrir une invite de commande avec Visual Studio 2005 Command prompt dans le menu Outils. Si l'interpréteur Python n'est pas encore dans le chemin système (PATH), faites :

set PATH=path_to_python_2.5;%PATH%

Pour que Pivy soit fonctionnel, vous devriez télécharger les dernières sources à partir du référentiel du projet :

svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy

Ensuite, vous avez besoin d'un outil appelé SWIG pour générer le code C++ pour les Python bindings. Il est recommandé d'utiliser la version 1.3.25 de SWIG, pas la dernière version, parceque, Pivy ne fonctionne pas correctement avec la version 1.3.25. Télécharger le binaire pour la version 1.3.25 de Swig. Puis décompressez-le et à partir de la ligne de commande, ajoutez le chemin (path) du système

set PATH=path_to_swig_1.3.25;%PATH%

et définir le chemin approprié à COINDIR :

set COINDIR=path_to_coin

Sous Windows, le fichier de configuration Pivy attend SoWin au lieu de SoQt par défaut. Je n'ai pas trouvé de façon évidente pour compiler avec SoQt, alors, j'ai modifié le fichier setup.py directement. A la ligne 200 il suffit de retirer la partie sowin : ('gui._sowin', 'sowin-config', 'pivy.gui.') (ne pas enlever la parenthèse fermante ! ).

Après cela, allez dans le source de pivy et tapez :

python setup.py build

qui crée les fichiers source. Vous pouvez rencontrer une erreur de compilation, cause, plusieurs fichiers d'en-tête n'ont pas été trouvés. Dans ce cas, réglez la variable INCLUDE comme ceci :

set INCLUDE=%INCLUDE%;path_to_coin_include_dir

et si les en-têtes soqt, ne sont pas au même endroit que les en-têtes Coin, faites aussi ceci :

set INCLUDE=%INCLUDE%;path_to_soqt_include_dir

et finalement, pour les en-têtes Qt faites :

set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt

Si vous utilisez Express Edition of Visual Studio, vous pouvez obtenir une exception Python keyerror. Dans ce cas, vous devez modifier de petites choses dans msvccompiler.py, qui se trouve, dans votre installation Python. Aller à la ligne 122 et remplacez la ligne :

vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version

par

vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version

Puis réessayez. Si vous obtenez une deuxième erreur comme :

error: Python was built with Visual Studio 2003;...

vous devez également remplacer la ligne 128 comme ceci :

self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")

par

self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")

Réessayez encore une fois. Si vous obtenez de nouveau une erreur comme :

error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.

alors vous devriez vérifier les variables d'environnement DISTUTILS_USE_SDK et MSSDK avec :

echo %DISTUTILS_USE_SDK% echo %MSSDK%

Si ce n'est pas toujours pas arrangé, il suffit de définir à 1 :

set DISTUTILS_USE_SDK=1 set MSSDK=1

Maintenant, vous pouvez rencontrer une erreur de compilation, ou un const char* ne peut pas être converti en un char*. Pour corriger cela il vous suffit d'écrire un const avant, dans les lignes appropriées, il y a six lignes à corriger. Après copiez le répertoire généré par Pivy dans un endroit où l'interpréteur Python de FreeCAD peut le trouver.

Utilisation
Pour avoir accès à pivy à partir de la scénographique de FreeCAD, procédez comme ceci :

from pivy import coin App.newDocument # Open a document and a view view = Gui.ActiveDocument.ActiveView FCSceneGraph = view.getSceneGraph # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph FCSceneGraph.addChild(coin.SoCube) # add a box to scene

Vous pouvez maintenant explorer la FCSceneGraph avec la commande dir.

Documentation
Malheureusement, la documentation sur Pivy est "pour le moment" presque inexistante sur le net. Mais vous pourriez trouver de la documentation sur Coin très utile, car Pivy a simplement traduit les fonctions, Coin, des nœuds et des méthodes (nodes and methods) en Python, les nom sont conservés (mêmes noms) et les propriétés, ne sont différentes que par la syntaxe entre le C et Python :

http://doc.coin3d.org/Coin/classes.html - Coin3D API Reference

http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - The "bible" of Inventor scene description language.

Vous pouvez également consulter le fichier Draft.py dans le dossier FreeCAD Mod/Draft, car Pivy est fortement utilisé.

pyCollada
pyCollada est une bibliothèque Python qui permet aux programmes de lire et d'écrire des fichiers Collada (*.DAE). Lorsque pyCollada est installé sur votre système, FreeCAD le détecte et ajoute les options d'importation et d'exportation, qui permettent l'ouverture et l'enregistrement de fichiers au format Collada.

Installation
Pycollada n'est généralement pas encore disponible dans les dépôts des distributions Linux, mais puisqu'il est fait uniquement en Python, il ne nécessite pas de compilation, et est facile à installer. Vous avez 2 façons de l'installer, soit directement à partir du pycollada git repository officiel, ou avec l'outil easy_install.

Linux
Dans les deux cas, vous aurez besoin des paquetages suivants, installés d'avance sur votre système :

python-lxml python-numpy python-dateutil

Depuis le dépôt git (pycollada git repository)
git clone git://github.com/pycollada/pycollada.git pycollada cd pycollada sudo python setup.py install

Avec easy_install (easy_install)
En supposant que vous avez déjà installé complètement Python, l'utilitaire easy_install doit être déjà présent :

easy_install pycollada

Windows
Documentation à venir.

IfcOpenShell
Documentation à venir.