Extra python modules/fr

Présentation
Cette page contient plusieurs modules Python supplémentaires ou d'autres bouts de code qui peuvent être téléchargés gratuitement sur Internet, et ajouter des fonctionnalités à votre installation de FreeCAD.



PySide (précédemment PyQt4)

 * Page officielle (PySide): http://qt-project.org/wiki/PySide
 * Licence : LGPL
 * Option, plusieurs modules sont nécessaires et d'autres modules peuvent être ajoutés : Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet

PySide (auparavant PyQt) est requise par tous les modules de FreeCAD et pour accéder à l'interface Qt de FreeCAD. Il est déjà livré dans dans les versions FreeCAD, et est généralement installé automatiquement par FreeCAD sur Linux, l'installation peut se faire à partir des dépôts officiels. Si ces modules (Draft, Arch, etc) sont activés après l'installation de FreeCAD, cela signifie que PySide (auparavant PyQt) est déjà installé, et vous n'avez pas besoin de faire quoi que ce soit de plus.

Remarque : FreeCAD s'est progressivement éloigné de PyQt après la version 0.13, en faveur de PySide, qui fait exactement le même travail mais a une licence (LGPL) plus compatible avec FreeCAD.

Linux
La manière la plus simple d'installer PySide est de passer par le gestionnaire de paquets de votre distribution. Sur les systèmes Debian/Ubuntu, le nom du paquet est généralement python-PySide, tandis que sur les systèmes basés sur RPM, il est nommé pyside. Les dépendances nécessaires (Qt et SIP) seront prises en charge automatiquement.

Windows
Le programme peut être téléchargé à partir PySide Downloads. Vous aurez besoin d'installer les bibliothèques Qt et SIP avant d'installer PySide (à documenter).

MacOS
PySide sur Mac peut être installé via homebrew ou port. Voir Installation des dépendances.

Utilisation
Une fois installé, vous pouvez vérifier que tout fonctionne en tapant dans la console Python de FreeCAD :

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

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

Travailler avec Unicode :

Travailler avec QFileDialog et OpenFileName :

Travailler avec QFileDialog et SaveFileName :



Exemple de transition de PyQt4 vers PySide
PS : ces exemples d'erreurs ont été trouvées dans la transition de PyQt4 à PySide et ces corrections ont été faites, d'autres solutions sont certainement disponibles avec les exemples ci-dessus

Pour accéder à l'interface FreeCAD, tapez : Vous pouvez ajouter de nouveaux éléments, comme un widget personnalisé, avec des commandes comme :

Travailler avec Unicode :

Travailler avec QFileDialog et OpenFileName :

Travailler avec QFileDialog et SaveFileName :

Travailler avec MessageBox :

Travailler avec setProperty (PyQt4) et setValue (PySide)

remplacer par :

Travailler avec setToolTip

remplacer par :

ou



Documentation complémentaire

 * Site de la documentation officielle de Qt

Pivy

 * Page d'accueil : https://bitbucket.org/Coin3D/coin/wiki/Home
 * Licence : BSD
 * Optionnel mais nécessaire pour plusieurs modules de FreeCAD : Draft, Arch

Pivy est un module nécessaire pour accéder à la vue 3D de FreeCAD. Sous Windows, Pivy est déjà inclus dans le programme d'installation de FreeCAD, et sous Linux, il est généralement installé automatiquement lorsque vous installez FreeCAD à partir d'un dépôt officiel. Sur macOS, malheureusement, vous devrez compiler Pivy vous-même.

Prérequis
Je pense qu'avant de compiler Pivy, vous devrez installer Coin et SoQt.

J'ai constaté que pour construire sur Mac, il suffisait d'installer le Coin3 binaire. Tenter d'installer Coin à partir de MacPorts s'est avéré problématique : j'ai essayé d'ajouter un grand nombre de paquets X Windows et j'ai fini par me planter avec une erreur de script.

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

SoQt compilé à partir de la source fonctionne bien sur Mac et Linux.

Debian & Ubuntu
À partir de Debian Squeeze et Ubuntu Lucid, pivy sera disponible directement depuis les dépôts officiels, ce qui nous évitera bien des tracas. En attendant, vous pouvez soit télécharger l'un des paquets que nous avons mis à disposition (pour Debian et Ubuntu Karmic) sur les pages de téléchargements, soit le compiler vous-même.

La meilleure façon de compiler pivy facilement est de récupérer le paquet source debian pour pivy et de faire un paquet avec debuild. Il s'agit du même code source que celui du site officiel de pivy, mais les gens de debian ont fait plusieurs ajouts pour corriger des bogues. Il se compile également très bien sur ubuntu karmic : http://packages.debian.org/squeeze/python-pivy téléchargez le fichier .orig.gz et le fichier .diff.gz, puis décompressez les deux, et appliquez le .diff au source : allez dans le dossier source décompressé de pivy, et appliquez le patch .diff :

alors

pour que pivy soit correctement intégré dans un paquetage installable officiel. Ensuite, il suffit d'installer le paquet avec gdebi.



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

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

Ensuite, vous avez besoin d'un outil appelé SWIG pour générer le code C++ pour les liaisons Python. Pivy-0.5 indique qu'il n'a été testé qu'avec SWIG 1.3.31, 1.3.33, 1.3.35, et 1.3.40. Vous pouvez donc télécharger une archive des sources pour l'une de ces anciennes versions à partir de http://www.swig.org. Ensuite, décompressez-la et, à partir d'une ligne de commande, faites (en tant que root) :

Il faut quelques secondes pour la compilation.

Vous pouvez également essayer de compiler avec un SWIG plus récent. Depuis mars 2012, une version standard du dépôt est la 2.0.4. Pivy a un problème mineur de compilation avec SWIG 2.0.4 sur macOS (voir ci-dessous) mais semble se compiler correctement sur Fedora Core 15.

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

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) :

Ça y est, pivy est installé.

MacOS
Ces instructions peuvent ne pas être complètes. Quelque chose d'approchant a fonctionné pour OS 10.7 à partir 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 :

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

Puis, comme ci-dessus vous avez besoin SWIG.

Faites :

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

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:

Windows
Si vous utilisez Visual Studio 2005 ou une version ultérieure, vous devez ouvrir une fenêtre de commande en cliquant sur "Visual Studio 2005 Command prompt" dans le menu Outils. Si l'interpréteur Python ne se trouve pas encore dans le chemin d'accès du système, procédez comme suit

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

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

et définir le chemin approprié à COINDIR :

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 :

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 :

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

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

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 :

par

Puis réessayez.

Si vous obtenez une deuxième erreur comme :

vous devez également remplacer la ligne 128 comme ceci :

par

Réessayez encore une fois.

Si vous obtenez de nouveau une erreur comme :

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

Si ce n'est pas toujours pas arrangé, il suffit de définir à 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 vérifier si Pivy est correctement installé :

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

Vous pouvez maintenant explorer la FCSceneGraph avec la commande dir.



Documentation complémentaire
Malheureusement, la documentation sur pivy est encore presque inexistante sur le net. Mais vous pourriez trouver la documentation Coin utile, puisque pivy traduit simplement les fonctions de Coin, les noeuds et les méthodes en Python, tout en gardant le même nom et les mêmes propriétés, en gardant à l'esprit la différence de syntaxe entre le C et Python :


 * https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Reference
 * http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - La "bible" de Inventor langage de description de scène.

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

pyCollada

 * Page d'accueil : http://pycollada.github.com
 * Licence : BSD
 * Optionnel, nécessaire pour permettre l'importation et l'exportation de fichiers Collada (.DAE)

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 comme il n'est constitué que de fichiers Python, il ne nécessite pas de compilation et est facile à installer. Vous avez deux possibilités, soit directement depuis le dépôt git officiel de pycollada, soit avec l'outil easy_install.

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



Depuis le dépôt git (pycollada git repository)


Avec easy_install
En supposant que vous ayez déjà une installation complète en Python, l'utilitaire easy_install devrait déjà être présent :

Vous devez vous assurer que pycollada, est correctement installé, en utilisant la commande suivante dans la console Python :

Si la commande ne retourne aucun message d'erreur, alors tout est OK.

Windows
Pycollada est inclus sur Windows depuis la version 0.15 et dans les versions de développement de FreeCAD, donc aucune étape supplémentaire n'est nécessaire.

MacOS
Si vous utilisez l'accumulation des Homebrew FreeCAD vous pouvez installer pycollada dans votre système Python en utilisant pip.

Si vous devez installer pip:

Installer pycollada:

Si vous utilisez une version binaire de FreeCAD, vous pouvez dire pip installez pycollada dans le site-packages à l'intérieur FreeCAD.app:

ou après avoir téléchargé le code pycollada

IfcOpenShell

 * homepage: http://www.ifcopenshell.org
 * license: LGPL
 * option, requis pour étendre les capacités d'importation de fichiers IFC

IFCOpenShell, est une bibliothèque actuellement en développement, ce qui permet d'importer (et bientôt d'exporter) Industry foundation Classes (*.Fichiers IFC). Ceci est une extension pour le format STEP et devient la norme dans les workflows BIM. Lorsque ifcopenshell est correctement installé sur votre système, l' de FreeCAD le détectera et l'utilisera pour importer des fichiers IFC. Étant donné qu'ifcopenshell est basé sur OpenCasCade, comme FreeCAD, la qualité de l'importation est très élevée, en produisant une géométrie de solides de haute qualité.

Installation
Comme ifcopenshell est assez récent, vous devrez probablement le compiler vous-même.

Linux
Vous aurez besoin de quelques paquets de développement installés sur votre système afin de compiler ifcopenshell :

mais, étant donné que FreeCAD exige tout, vous pouvez compiler FreeCAD, vous n'aurez aucune dépendance supplémentaire pour compiler IfcOpenShell.

Prenez le dernier code source ici :

Le processus de création est très simple :

ou, si vous utilisez oce au lieu d'opencascade :

Étant donné que ifcopenshell est fait principalement pour Blender, il utilise python3 par défaut. Pour l'utiliser à l'intérieur de FreeCAD, vous devez le compiler avec la même version de Python qui est utilisé dans FreeCAD. Vous devrez peut-être forcer les paramètres avec la version de Python et cmake (réglez la version de Python avec la vôtre) :

Alors :

Vous pouvez vérifier que ifcopenshell, a été correctement installé en tapant dans la console Python :

Si la commande ne retourne aucun message d'erreur, alors tout est OK.

Windows
Note: les installateurs officiels FreeCAD obtenus à partir de la page du site Web/github de FreeCAD contiennent déjà ifcopenshell.

 Documentation copiée à partir du fichier README IfcOpenShell

Les utilisateurs sont priés d'utiliser le fichier .sln de Visual Studio qui se trouve dans win/folder.

Pour les utilisateurs de Windows une version pré-construite Open CASCADE est disponible sur le site d'OpenCascade. Téléchargez, et, installez cette version dans le chemin d'accès d'Open CASCADE, et, des fichiers de la bibliothèque de MS Visual Studio C++.

Pour créer le IfcPython wrapper, SWIG doit être installé. Téléchargez la dernière version de swigwin. Après avoir extrait le fichier .zip, veuillez ajouter le dossier à la variable d'environnement PATH. Python doit être installé, veuillez fournir les chemins d'accès des fichiers include, et, bibliothèque pour Visual Studio.

Liens
Tutoriel Importer/Exporter IFC - compiler IfcOpenShell

Installation
Sur toutes les plateformes, il suffit d'installer le paquet approprié à partir de ODA DWG-DXF Converter. Après l'installation, si l'utilitaire n'est pas trouvé automatiquement par FreeCAD, vous devrez peut-être définir manuellement le chemin d'accès à l'exécutable du convertisseur via le menu Édition → Préférences → Importer-Exporter → DWG. Renseignez le champs "Chemin d’accès du convertisseur de fichier Teiga".

LazyLoader
LazyLoader est un module Python qui permet un chargement différé, tout en continuant à importer en haut du script. C'est utile si vous importez un autre module qui est lent et qui est utilisé plusieurs fois dans le script. L'utilisation de LazyLoader peut améliorer les temps de démarrage d'un atelier mais le module devra toujours être chargé lors de la première utilisation.

Installation
LazyLoader est inclus avec FreeCAD v0.19.

Utilisation
Vous devrez importer LazyLoader puis modifier l'importation du module que vous souhaitez différer.

La variable Part est la façon dont le module est nommé dans votre script. Vous pouvez répliquer "import Part as P" (importer une pièce en P) en modifiant la variable.

Vous pouvez également importer un module à partir d'un package.

Vous ne pouvez pas importer des fonctions individuelles, seulement des modules entiers.

Liens

 * Source d'origine : https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/util/lazy_loader.py
 * Plus d'explications : https://wil.yegelwel.com/lazily-importing-python-modules/
 * Code dans le code source de FreeCAD : https://github.com/FreeCAD/FreeCAD/tree/master/src/3rdParty/lazy_loader
 * Discussion du forum : https://forum.freecadweb.org/viewtopic.php?f=10&t=45298