FreeCAD-Doc/localwiki/Extra_python_modules-fr.html
2018-07-19 18:47:02 -05:00

476 lines
38 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><title>Extra python modules/fr</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Extra python modules/fr</h1></div>
<div id="mw-content-text" lang="fr" dir="ltr" class="mw-content-ltr"><hr/><div class="mw-parser-output"><p>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.
</p>
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#PySide_.28pr.C3.A9c.C3.A9demment_PyQt4.29"><span class="tocnumber">1</span> <span class="toctext">PySide (précédemment PyQt4)</span></a>
<ul>
<li class="toclevel-2 tocsection-2"><a href="#Installation"><span class="tocnumber">1.1</span> <span class="toctext">Installation</span></a>
<ul>
<li class="toclevel-3 tocsection-3"><a href="#Linux"><span class="tocnumber">1.1.1</span> <span class="toctext">Linux</span></a></li>
<li class="toclevel-3 tocsection-4"><a href="#Windows"><span class="tocnumber">1.1.2</span> <span class="toctext">Windows</span></a></li>
<li class="toclevel-3 tocsection-5"><a href="#MacOSX"><span class="tocnumber">1.1.3</span> <span class="toctext">MacOSX</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-6"><a href="#Utilisation"><span class="tocnumber">1.2</span> <span class="toctext">Utilisation</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#Exemple_de_transition_de_PyQt4_vers_PySide"><span class="tocnumber">1.3</span> <span class="toctext">Exemple de transition de PyQt4 vers PySide</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#Documentation"><span class="tocnumber">1.4</span> <span class="toctext">Documentation</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-9"><a href="#Pivy"><span class="tocnumber">2</span> <span class="toctext">Pivy</span></a>
<ul>
<li class="toclevel-2 tocsection-10"><a href="#Installation_2"><span class="tocnumber">2.1</span> <span class="toctext">Installation</span></a>
<ul>
<li class="toclevel-3 tocsection-11"><a href="#Pr.C3.A9requis"><span class="tocnumber">2.1.1</span> <span class="toctext">Prérequis</span></a></li>
<li class="toclevel-3 tocsection-12"><a href="#Debian_.26_Ubuntu"><span class="tocnumber">2.1.2</span> <span class="toctext">Debian &amp; Ubuntu</span></a></li>
<li class="toclevel-3 tocsection-13"><a href="#Autres_distributions_Linux"><span class="tocnumber">2.1.3</span> <span class="toctext">Autres distributions Linux</span></a></li>
<li class="toclevel-3 tocsection-14"><a href="#Mac_OS"><span class="tocnumber">2.1.4</span> <span class="toctext">Mac OS</span></a></li>
<li class="toclevel-3 tocsection-15"><a href="#Windows_2"><span class="tocnumber">2.1.5</span> <span class="toctext">Windows</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-16"><a href="#Utilisation_2"><span class="tocnumber">2.2</span> <span class="toctext">Utilisation</span></a></li>
<li class="toclevel-2 tocsection-17"><a href="#Documentation_2"><span class="tocnumber">2.3</span> <span class="toctext">Documentation</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-18"><a href="#pyCollada"><span class="tocnumber">3</span> <span class="toctext">pyCollada</span></a>
<ul>
<li class="toclevel-2 tocsection-19"><a href="#Installation_3"><span class="tocnumber">3.1</span> <span class="toctext">Installation</span></a>
<ul>
<li class="toclevel-3 tocsection-20"><a href="#Linux_2"><span class="tocnumber">3.1.1</span> <span class="toctext">Linux</span></a>
<ul>
<li class="toclevel-4 tocsection-21"><a href="#Depuis_le_d.C3.A9p.C3.B4t_git_.28pycollada_git_repository.29"><span class="tocnumber">3.1.1.1</span> <span class="toctext">Depuis le dépôt git <b>(pycollada git repository)</b></span></a></li>
<li class="toclevel-4 tocsection-22"><a href="#Avec_easy_install_.28easy_install.29"><span class="tocnumber">3.1.1.2</span> <span class="toctext">Avec easy_install <b>(easy_install)</b></span></a></li>
</ul>
</li>
<li class="toclevel-3 tocsection-23"><a href="#Windows_3"><span class="tocnumber">3.1.2</span> <span class="toctext">Windows</span></a></li>
<li class="toclevel-3 tocsection-24"><a href="#Mac_OS_2"><span class="tocnumber">3.1.3</span> <span class="toctext">Mac OS</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="toclevel-1 tocsection-25"><a href="#IfcOpenShell"><span class="tocnumber">4</span> <span class="toctext">IfcOpenShell</span></a>
<ul>
<li class="toclevel-2 tocsection-26"><a href="#Installation_4"><span class="tocnumber">4.1</span> <span class="toctext">Installation</span></a>
<ul>
<li class="toclevel-3 tocsection-27"><a href="#Linux_3"><span class="tocnumber">4.1.1</span> <span class="toctext">Linux</span></a></li>
<li class="toclevel-3 tocsection-28"><a href="#Windows_4"><span class="tocnumber">4.1.2</span> <span class="toctext">Windows</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-29"><a href="#Liens"><span class="tocnumber">4.2</span> <span class="toctext">Liens</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-30"><a href="#Teigha_Converter"><span class="tocnumber">5</span> <span class="toctext">Teigha Converter</span></a>
<ul>
<li class="toclevel-2 tocsection-31"><a href="#Installation_5"><span class="tocnumber">5.1</span> <span class="toctext">Installation</span></a></li>
</ul>
</li>
</ul>
</div>
<h2><span class="mw-headline" id="PySide_.28pr.C3.A9c.C3.A9demment_PyQt4.29">PySide (précédemment PyQt4)</span></h2>
<ul><li> page officielle (PySide): <a rel="nofollow" class="external free" href="http://qt-project.org/wiki/PySide">http://qt-project.org/wiki/PySide</a></li>
<li> licence: LGPL </li>
<li> option, plusieurs modules sont nécessaires et d'autres modules peuvent être ajoutés&#160;: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet</li></ul>
<p>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.
</p><p><b>Remarque&#160;:</b> PyQt4 va devenir progressivement obsolète dans FreeCAD, après la version 0.13, la préférence ira sur <a rel="nofollow" class="external text" href="http://qt-project.org/wiki/PySide">PySide</a>, qui fait exactement le même travail, mais dispose d'une licence (<b>LGPL</b>) plus compatible avec FreeCAD.
</p>
<h3><span class="mw-headline" id="Installation">Installation</span></h3>
<h4><span class="mw-headline" id="Linux">Linux</span></h4>
<p>La façon la plus simple d'installer PySide est de l'installer par le biais du gestionnaire de paquets de votre distribution. Sur les systèmes Debian / Ubuntu, le nom du package est généralement <b>python-PySide</b>, tandis que sur les systèmes basés sur RPM il est nommé <b>Pyside</b>. Les dépendances nécessaires (Qt et SIP) seront pris en charge automatiquement.
</p>
<h4><span class="mw-headline" id="Windows">Windows</span></h4>
<p>Le programme peut être téléchargé à partir <a rel="nofollow" class="external text" href="http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads">PySide Downloads</a>. Vous aurez besoin d'installer les bibliothèques Qt et SIP avant d'installer PySide (à documenter).
</p>
<h4><span class="mw-headline" id="MacOSX">MacOSX</span></h4>
<p>PyQt pour Mac doit être installé via homebrew ou port. Pour plus d'informations voir <a href="/wiki/CompileOnMac/fr#D.C3.A9pendances_de_l.27installation_D.C3.A9pendances_de_l.27installation" title="CompileOnMac/fr">CompileOnMac/fr#Dépendances_de_l'installation Dépendances_de_l'installation</a>.
</p>
<h3><span class="mw-headline" id="Utilisation">Utilisation</span></h3>
<p>Une fois installé, vous pouvez vérifier le bon fonctionne de l'installation, en tapant dans la console <b>Python</b> de FreeCAD&#160;:
</p>
<pre>import PySide </pre>
<p>Pour accéder à l'interface de FreeCAD, tapez&#160;:
</p>
<pre>from PySide import QtCore,QtGui
FreeCADWindow = FreeCADGui.getMainWindow() </pre>
<p>Maintenant, vous pouvez commencer l'exploration de l'interface avec la commande <b>dir()</b>.
Vous pouvez ajouter de nouveaux éléments, comme un widget personnalisé, avec des commandes comme&#160;:
</p>
<pre>FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget) </pre>
<p>Travailler avec Unicode&#160;:
</p>
<pre>text = text.encode('utf-8') </pre>
<p>Travailler avec QFileDialog et OpenFileName&#160;:
</p>
<pre>path = FreeCAD.ConfigGet("AppHomePath")
#path = FreeCAD.ConfigGet("UserAppData")
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt") </pre>
<p>Travailler avec QFileDialog et SaveFileName&#160;:
</p>
<pre>path = FreeCAD.ConfigGet("AppHomePath")
#path = FreeCAD.ConfigGet("UserAppData")
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt") </pre>
<h3><span class="mw-headline" id="Exemple_de_transition_de_PyQt4_vers_PySide">Exemple de transition de PyQt4 vers PySide</span></h3>
<p>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
</p>
<pre>try:
import PyQt4 # PyQt4
from PyQt4 import QtGui ,QtCore # PyQt4
from PyQt4.QtGui import QComboBox # PyQt4
from PyQt4.QtGui import QMessageBox # PyQt4
from PyQt4.QtGui import QTableWidget, QApplication # PyQt4
from PyQt4.QtGui import * # PyQt4
from PyQt4.QtCore import * # PyQt4
except Exception:
import PySide # PySide
from PySide import QtGui ,QtCore # PySide
from PySide.QtGui import QComboBox # PySide
from PySide.QtGui import QMessageBox # PySide
from PySide.QtGui import QTableWidget, QApplication # PySide
from PySide.QtGui import * # PySide
from PySide.QtCore import * # PySide </pre>
<p>Pour accéder à l'interface FreeCAD, tapez:
Vous pouvez ajouter de nouveaux éléments, comme un widget personnalisé, avec des commandes comme&#160;:
</p>
<pre>myNewFreeCADWidget = QtGui.QDockWidget() # create a new dockwidget
myNewFreeCADWidget.ui = Ui_MainWindow() # myWidget_Ui() # load the Ui script
myNewFreeCADWidget.ui.setupUi(myNewFreeCADWidget) # setup the ui
try:
app = QtGui.qApp # PyQt4 # the active qt window, = the freecad window since we are inside it
FCmw = app.activeWindow() # PyQt4 # the active qt window, = the freecad window since we are inside it
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window
except Exception:
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window </pre>
<p>Travailler avec Unicode&#160;:
</p>
<pre>try:
text = unicode(text, 'ISO-8859-1').encode('UTF-8') # PyQt4
except Exception:
text = text.encode('utf-8') # PySide </pre>
<p>Travailler avec QFileDialog et OpenFileName&#160;:
</p>
<pre>OpenName = ""
try:
OpenName = QFileDialog.getOpenFileName(None,QString.fromLocal8Bit("Lire un fichier FCInfo ou txt"),path,"*.FCInfo *.txt") # PyQt4
except Exception:
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Lire un fichier FCInfo ou txt", path, "*.FCInfo *.txt")#PySide </pre>
<p>Travailler avec QFileDialog et SaveFileName&#160;:
</p>
<pre>SaveName = ""
try:
SaveName = QFileDialog.getSaveFileName(None,QString.fromLocal8Bit("Sauver un fichier FCInfo"),path,"*.FCInfo") # PyQt4
except Exception:
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Sauver un fichier FCInfo", path, "*.FCInfo")# PySide </pre>
<p>Travailler avec MessageBox:
</p>
<pre>def errorDialog(msg):
diag = QtGui.QMessageBox(QtGui.QMessageBox.Critical,u"Error Message",msg )
try:
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before
except Exception:
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before
# diag.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"
diag.exec_() </pre>
<p>Travailler avec setProperty (PyQt4) et setValue (PySide)
</p>
<pre>self.doubleSpinBox.setProperty("value", 10.0) # PyQt4 </pre>
<p>remplacer par&#160;:
</p>
<pre>self.doubleSpinBox.setValue(10.0) # PySide </pre>
<p>Travailler avec setToolTip
</p>
<pre>self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4 </pre>
<p>remplacer par&#160;:
</p>
<pre>self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide </pre>
<p>ou
</p>
<pre>self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide </pre>
<h3><span class="mw-headline" id="Documentation">Documentation</span></h3>
<p>Plus de tutoriels sur <b>PyQt4</b> (y compris sur la façon de construire des interfaces avec <b>Qt Designer</b> pour utiliser avec python)&#160;:
</p>
<ul><li> <a rel="nofollow" class="external text" href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html">API PyQt4</a> - La référence officielle sur l'<b>API de PyQt4</b></li></ul>
<ul><li> <a rel="nofollow" class="external text" href="http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/">Introduction PyQt4</a>- une simple introduction.</li></ul>
<ul><li> <a rel="nofollow" class="external text" href="http://www.zetcode.com/tutorials/pyqt4/">un tutoriel</a> - vraiment complet.</li></ul>
<h2><span class="mw-headline" id="Pivy">Pivy</span></h2>
<ul><li> homepage: <a rel="nofollow" class="external free" href="https://bitbucket.org/Coin3D/coin/wiki/Home">https://bitbucket.org/Coin3D/coin/wiki/Home</a></li>
<li> license: BSD</li>
<li> option, utilisé par tous les modules de FreeCAD: Draft, Arch</li></ul>
<p>Pivy a besoin de plusieurs modules pour accéder à la vue 3D de FreeCAD. Pour les fenêtres, pivy est déjà fourni dans l'installateur de FreeCAD pour Linux, il est généralement installé automatiquement lorsque vous installez FreeCAD partir d'un référentiel officiel. Sur MacOSX, malheureusement, vous aurez besoin de compiler Pivy vous même.
</p>
<h3><span class="mw-headline" id="Installation_2">Installation</span></h3>
<h4><span class="mw-headline" id="Pr.C3.A9requis">Prérequis</span></h4>
<p>Je crois, qu'avant de compiler <b><a rel="nofollow" class="external text" href="http://pivy.coin3d.org/">Pivy</a></b> vous devez avoir <b><a rel="nofollow" class="external text" href="http://www.coin3d.org/">Coin</a></b> et <b><a rel="nofollow" class="external text" href="http://www.coin3d.org/lib/soqt/releases/1.5.0">SoQt</a></b> d'installés.
</p><p>J'ai trouvé que pour la compilation sur <b>Mac</b>, il suffisait d'installer le <b><a rel="nofollow" class="external text" href="http://www.coin3d.org/lib/plonesoftwarecenter_view">Coin3 binary package</a></b>.<br />
La tentative d'installation de <b>Coin</b> sur <b>MacPorts</b> était problématique&#160;: j'ai essayé d'ajouter un grand nombre de paquets X Windows, et, finalement, tout c'est terminé avec une erreur de script&#160;!
</p><p>Pour Fedora, j'ai trouvé un <b>RPM</b> avec <b>Coin3</b>.
</p><p><b>SoQt</b>, compilé à partir <a rel="nofollow" class="external text" href="http://www.coin3d.org/lib/soqt/releases/1.5.0">des sources</a> fonctionne très bien sur <b>Mac et Linux</b>.
</p>
<h4><span class="mw-headline" id="Debian_.26_Ubuntu">Debian &amp; Ubuntu</span></h4>
<p>Depuis <b>Debian Squeeze</b> et <b>Ubuntu Lucid</b>, <b>Pivy</b> est disponible directement à partir des dépôts officiels, et, nous permet d'économiser beaucoup de tracas.<br />
En attendant, vous pouvez soit télécharger l'un des <b>packages</b> que nous avons fait (pour Debian et Ubuntu karmic), disponibles sur les pages de <a href="https://www.freecadweb.org/wiki/index.php?title=Download/fr" title="Download/fr">téléchargements</a> , ou, vous pouvez le compiler vous-même.
</p><p>La meilleure façon de compiler facilement <b>Pivy</b>, est de prendre le <b>debian source package</b> pour <b>Pivy</b>, et, faire un <b>package</b> avec <b>debuild</b>.<br />
C'est le même code source que sur le site officiel de <b>Pivy</b>, mais, les gens de <b>Debian</b> ont ajoutés plusieurs bug-fixing. Il compile également très bien sur&#160;: <b><a rel="nofollow" class="external text" href="http://packages.debian.org/squeeze/python-pivy">Ubuntu Karmic</a></b> ... télécharger <b>.orig.gz</b> et <b>.diff.gz</b>, décompressez le tout, puis appliquez <b>.diff</b> à la source&#160;:<br />
allez dans le dossier source de <b>Pivy</b> décompressé, et appliquez le patch <b>.diff</b>&#160;:
</p>
<pre>patch -p1 &lt; ../pivy_0.5.0~svn765-2.diff </pre>
<p>alors
</p>
<pre>debuild </pre>
<p>pour avoir <b>Pivy</b>, correctement compilé, avec un package officiellement installable. Ensuite, il suffit d'installer le package avec <b>gdebi</b>.
</p>
<h4><span class="mw-headline" id="Autres_distributions_Linux">Autres distributions Linux</span></h4>
<p>D'abord, téléchargez les dernières sources du <a rel="nofollow" class="external text" href="http://pivy.coin3d.org/mercurial/">project's repository</a>&#160;:
</p>
<pre>hg clone http://hg.sim.no/Pivy/default Pivy </pre>
<p>En Mars 2012, la dernière version était la <b>pivy-0.5</b>.
</p><p>Ensuite, vous avez besoin d'un outil appelé <b>SWIG</b> pour générer le code C++ pour les <b>Python bindings</b>. <b>Pivy-0.5</b> rapports qui a été testé seulement avec <b>SWIG 1.3.31, 1.3.33, 1.3.35 et 1.3.40</b>. Ainsi, vous pouvez télécharger une archive source pour l'une de ces anciennes versions de <a rel="nofollow" class="external text" href="http://www.swig.org">SWIG</a>.<br />
Puis, décompressez-le, et, faites en ligne de commande (en tant que root)&#160;:
</p>
<pre>./configure
make
make install (or checkinstall if you use it) </pre>
<p>Il faut quelques secondes pour la compilation.
</p><p>Alternativement, vous pouvez essayer avec une compilation plus récent <b>SWIG</b>. En Mars 2012, la version référentielle typique était <b>2.0.4</b>.<br />
<b>Pivy</b> a un problème de compilation avec les versions inférieures <b>2.0.4</b> de <b>SWIG</b> sur Mac OS (<a href="#Mac_OS">voir ci-dessous</a>), mais semble compiler correctement sur <b>Fedora Core 15</b>.
</p><p>Après cela, allez dans le source <b>Pivy</b> et tapez&#160;:
</p>
<pre>python setup.py build </pre>
<p>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.
</p><p>Ceci est probablement obsolète, mais vous risquez de rencontrer une erreur de compilation, ou, un <b>"const char*"</b> ne peut pas être converti en un <b>"char*"</b>.<br />
Pour corriger cela, il vous suffit d'écrire une <b>"const"</b>, dans les lignes appropriées, avant la génération. Il y a six lignes à corriger.
</p><p>Après cela, installez (en tant que root)&#160;:
</p>
<pre>python setup.py install (or checkinstall python setup.py install) </pre>
<p>Ça y est, pivy est installé.
</p>
<h4><span class="mw-headline" id="Mac_OS">Mac OS</span></h4>
<p>Ces instructions peuvent ne pas être complètes. Quelque chose plus ou moins comme cela a fonctionné pour <b>OS 10.7 de Mars 2012</b>. J'utilise <b><a rel="nofollow" class="external text" href="http://www.macports.org/">MacPorts</a></b> pour les dépôts, mais d'autres options devraient également fonctionner.
</p><p>En ce qui concerne linux, téléchargez les dernières sources&#160;:
</p>
<pre>hg clone http://hg.sim.no/Pivy/default Pivy </pre>
<p>Si vous n'avez pas <b>hg</b>, vous pouvez l'obtenir à partir <b><a rel="nofollow" class="external text" href="http://www.macports.org/">MacPorts</a></b>&#160;:
</p>
<pre>port install mercurial </pre>
<p>Puis, comme ci-dessus vous avez besoin <b><a rel="nofollow" class="external text" href="http://www.swig.org/">SWIG</a></b>.<br />
Faites&#160;:
</p>
<pre>port install swig </pre>
<p>J'ai trouvé que j'avais besoin aussi de faire&#160;:
</p>
<pre>port install swig-python </pre>
<p>En Mars 2012, <b>MacPorts SWIG</b> est la version <b>2.0.4</b>. Comme il est indiqué ci-dessus pour Linux, il vaudrait mieux télécharger une version plus ancienne. <b>SWIG 2.0.4</b> semble avoir un bug qui empêche la compilation de <b>Pivy</b>.<br />
Regardez le premier message dans ce&#160;: <i><a rel="nofollow" class="external text" href="https://sourceforge.net/mailarchive/message.php?msg_id=28114815">digest</a></i>
</p><p>Cela peut être corrigé, en modifiant les 2 emplacements source et déréférencer&#160;: <b>*arg4, *arg5</b> à la place de <b>arg4, arg5</b>.<br />
Maintenant nous pouvons compiler <b>Pivy</b>:
</p>
<pre>python setup.py build
sudo python setup.py install </pre>
<h4><span class="mw-headline" id="Windows_2">Windows</span></h4>
<p>En supposant que vous utilisiez <b>Visual Studio 2005</b> ou une version ultérieure, vous devrez ouvrir une invite de commande avec <b>Visual Studio 2005 Command prompt</b> dans le menu Outils.<br />
Si l'interpréteur <b>Python</b> n'est pas encore dans le chemin système (PATH), faites&#160;:
</p>
<pre>set PATH=path_to_python_2.5;%PATH% </pre>
<p>Pour que <b>Pivy</b> soit fonctionnel, vous devriez télécharger les dernières sources à partir du référentiel du projet&#160;:
</p>
<pre>svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy </pre>
<p>Ensuite, vous avez besoin d'un outil appelé <a rel="nofollow" class="external text" href="http://www.swig.org/">SWIG</a> pour générer le code C++ pour les <b>Python bindings</b>. Il est recommandé d'utiliser la version <b>1.3.25 de SWIG</b>, pas la dernière version, parceque, <b>Pivy</b> ne fonctionne pas correctement avec la version <b>1.3.25</b>. Télécharger le binaire pour la version <b>1.3.25</b> de <b><a rel="nofollow" class="external text" href="http://www.swig.org">Swig</a></b>.<br />
Puis décompressez-le et à partir de la ligne de commande, ajoutez le chemin (path) du système
</p>
<pre>set PATH=path_to_swig_1.3.25;%PATH% </pre>
<p>et définir le chemin approprié à <b>COINDIR</b>&#160;:
</p>
<pre>set COINDIR=path_to_coin </pre>
<p>Sous Windows, le fichier de configuration <b>Pivy</b> attend <b>SoWin</b> au lieu de <b>SoQt</b> par défaut. Je n'ai pas trouvé de façon évidente pour compiler avec <b>SoQt</b>, alors, j'ai modifié le fichier <b>setup.py</b> directement.<br />
A la ligne 200 il suffit de retirer la partie <b>sowin</b>&#160;: <b>('gui._sowin', 'sowin-config', 'pivy.gui.') (ne pas enlever la parenthèse fermante&#160;! )</b>.
</p><p>Après cela, allez dans le source de <b>pivy</b> et tapez&#160;:
</p>
<pre>python setup.py build </pre>
<p>qui crée les fichiers source. Vous pouvez rencontrer une erreur de compilation, cause, <b>plusieurs fichiers d'en-tête n'ont pas été trouvés</b>.<br />
Dans ce cas, réglez la variable <b>INCLUDE</b> comme ceci&#160;:
</p>
<pre>set INCLUDE=%INCLUDE%;path_to_coin_include_dir </pre>
<p>et si les en-têtes <b>soqt</b>, ne sont pas au même endroit que les en-têtes <b>Coin</b>, faites aussi ceci&#160;:
</p>
<pre>set INCLUDE=%INCLUDE%;path_to_soqt_include_dir </pre>
<p>et finalement, pour les en-têtes <b>Qt</b> faites&#160;:
</p>
<pre>set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt </pre>
<p>Si vous utilisez <b>Express Edition of Visual Studio</b>, vous pouvez obtenir une exception <b>Python keyerror</b>.<br />
Dans ce cas, vous devez modifier de petites choses dans <b>msvccompiler.py</b>, qui se trouve, dans votre installation Python.
</p><p>Aller à la ligne 122 et remplacez la ligne&#160;:
</p>
<pre>vsbase = r"Software\Microsoft\VisualStudio\%0.1f"&#160;% version </pre>
<p>par
</p>
<pre>vsbase = r"Software\Microsoft\VCExpress\%0.1f"&#160;% version </pre>
<p>Puis réessayez.<br />
Si vous obtenez une deuxième erreur comme&#160;:
</p>
<pre>error: Python was built with Visual Studio 2003;... </pre>
<p>vous devez également remplacer la ligne 128 comme ceci&#160;:
</p>
<pre>self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1") </pre>
<p>par
</p>
<pre>self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0") </pre>
<p>Réessayez encore une fois.<br />
Si vous obtenez de nouveau une erreur comme&#160;:
</p>
<pre>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. </pre>
<p>alors vous devriez vérifier les variables d'environnement <b>DISTUTILS_USE_SDK</b> et <b>MSSDK</b> avec&#160;:
</p>
<pre>echo&#160;%DISTUTILS_USE_SDK%
echo&#160;%MSSDK% </pre>
<p>Si ce n'est pas toujours pas arrangé, il suffit de définir à 1&#160;:
</p>
<pre>set DISTUTILS_USE_SDK=1
set MSSDK=1 </pre>
<p>Maintenant, vous pouvez rencontrer une erreur de compilation, ou un <b>const char*</b> ne peut pas être converti en un <b>char*</b>.<br />
Pour corriger cela il vous suffit d'écrire un <b>const</b> avant, dans les lignes appropriées, il y a six lignes à corriger.<br />
Après copiez le répertoire généré par <b>Pivy</b> dans un endroit où l'interpréteur <b>Python</b> de FreeCAD peut le trouver.
</p>
<h3><span class="mw-headline" id="Utilisation_2">Utilisation</span></h3>
<p>Pour vérifier si pivy est correctement installé&#160;:
</p>
<pre>import pivy </pre>
<p>Pour avoir accès à Pivy à partir de la scénographique de FreeCAD, procédez comme ceci:
</p>
<pre>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 </pre>
<p>Vous pouvez maintenant explorer la <b>FCSceneGraph</b> avec la commande <b>dir()</b>.
</p>
<h3><span class="mw-headline" id="Documentation_2">Documentation</span></h3>
<p>Malheureusement, la documentation sur <b>Pivy</b> est "pour le moment" presque inexistante sur le net. Mais vous pouvez trouver de la documentation très utile sur <b>Coin</b>, car <b>Pivy</b> a simplement traduit les fonctions, <b>Coin</b>, des nœuds et des méthodes en <b>Python</b>, les noms sont conservés (mêmes noms) ainsi que les propriétés ne sont différentes que par la syntaxe entre le <b>C</b> et <b>Python</b>&#160;:
</p>
<ul><li> <a rel="nofollow" class="external free" href="https://bitbucket.org/Coin3D/coin/wiki/Documentation">https://bitbucket.org/Coin3D/coin/wiki/Documentation</a> - Coin3D API Reference</li>
<li> <a rel="nofollow" class="external free" href="http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html">http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html</a> - The Inventor Mentor - La "bible" de Inventor langage de description de scène.</li></ul>
<p>Vous pouvez également consulter le fichier <b>Draft.py</b> dans le dossier <b>FreeCAD Mod/Draft</b>, car <b>Pivy</b> est fortement utilisé.
</p>
<h2><span class="mw-headline" id="pyCollada">pyCollada</span></h2>
<ul><li> homepage: <a rel="nofollow" class="external free" href="http://pycollada.github.com">http://pycollada.github.com</a></li>
<li> license: BSD</li>
<li> option, est nécessaire pour permettre l'importation et l'exportation de fichiers Collada (.DAE)</li></ul>
<p><b><a rel="nofollow" class="external text" href="http://pycollada.github.com">pyCollada</a></b> est une bibliothèque <b>Python</b> qui permet aux programmes de lire et d'écrire des fichiers <b><a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/COLLADA">Collada (*.DAE)</a></b>. Lorsque <b>pyCollada</b> est installé sur votre système, FreeCAD (<span style="font-size:x-small;"><a href="Release_notes_0.13.html" class="mw-redirect" title="Release notes 0.13">available in version 0.13</a></span>
) le détecte et ajoute les options d'importation et d'exportation, qui permettent l'ouverture et l'enregistrement de fichiers au format <b>Collada</b>.
</p>
<h3><span class="mw-headline" id="Installation_3">Installation</span></h3>
<p><b>Pycollada</b> n'est généralement pas encore disponible dans les dépôts des distributions Linux, mais puisqu'il est fait uniquement en <b>Python</b>, il ne nécessite pas de compilation, et est facile à installer.<br />
Vous avez 2 façons de l'installer, soit directement à partir du <b>pycollada git repository</b> officiel, ou avec l'outil <b>easy_install</b>.
</p>
<h4><span class="mw-headline" id="Linux_2">Linux</span></h4>
<p>Dans les deux cas, vous aurez besoin des paquetages suivants, installés d'avance sur votre système&#160;:
</p>
<pre>python-lxml
python-numpy
python-dateutil </pre>
<h5><span class="mw-headline" id="Depuis_le_d.C3.A9p.C3.B4t_git_.28pycollada_git_repository.29">Depuis le dépôt git <b>(pycollada git repository)</b></span></h5>
<pre>git clone git://github.com/pycollada/pycollada.git pycollada
cd pycollada
sudo python setup.py install </pre>
<h5><span class="mw-headline" id="Avec_easy_install_.28easy_install.29">Avec easy_install <b>(easy_install)</b></span></h5>
<p>En supposant que vous avez déjà installé complètement <b>Python</b>, l'utilitaire <b>easy_install</b> doit être déjà présent&#160;:
</p>
<pre>easy_install pycollada </pre>
<p>Vous devez vous assurer que <b>pycollada</b>, est correctement installé, en utilisant la commande suivante dans la console Python&#160;:
</p>
<pre>import collada </pre>
<p>Si la commande ne retourne aucun message d'erreur, alors tout est OK.
</p>
<h4><span class="mw-headline" id="Windows_3">Windows</span></h4>
<p>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.
</p>
<h4><span class="mw-headline" id="Mac_OS_2">Mac OS</span></h4>
<p>Si vous utilisez l'accumulation des Homebrew FreeCAD vous pouvez installer pycollada dans votre système Python en utilisant pip.
</p><p>Si vous devez installer pip:
</p>
<pre>$ sudo easy_install pip </pre>
<p>Installer pycollada:
</p>
<pre>$ sudo pip install pycollada </pre>
<p>Si vous utilisez une version binaire de FreeCAD, vous pouvez dire pip installez pycollada dans le site-packages à l'intérieur FreeCAD.app:
</p>
<pre>$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada </pre>
<p>or after downloading the pycollada code
</p>
<pre>$ export PYTHONPATH=/Applications/FreeCAD\ 0.16.6706.app/Contents/lib/python2.7/site-packages:$PYTHONPATH
$ python setup.py install --prefix=/Applications/FreeCAD\ 0.16.6706.app/Contents </pre>
<h2><span class="mw-headline" id="IfcOpenShell">IfcOpenShell</span></h2>
<ul><li> homepage: <a rel="nofollow" class="external free" href="http://www.ifcopenshell.org">http://www.ifcopenshell.org</a></li>
<li> license: LGPL</li>
<li> option, requis pour étendre les capacités d'importation de fichiers IFC</li></ul>
<p>IFCOpenShell, est une bibliothèque actuellement en développement, ce qui permet d'importer (et bientôt d'exporter) <a rel="nofollow" class="external text" href="http://fr.wikipedia.org/wiki/Industry_Foundation_Classes">Industry foundation Classes (*.Fichiers IFC)</a>.
</p><p>Ceci est une extension pour le format <a rel="nofollow" class="external text" href="http://fr.wikipedia.org/wiki/Standard_pour_l%27%C3%A9change_de_donn%C3%A9es_de_produit">STEP</a>, et, devient la norme dans les workflows <a rel="nofollow" class="external text" href="http://fr.wikipedia.org/wiki/Building_Information_Modeling">BIM</a>. Lorsque <b>ifcopenshell</b> est correctement installé sur votre système, le <span style="background: #DDDDDD; border: 1px solid #888888; padding: 0px 5px 1px 5px;"><a href="https://www.freecadweb.org/wiki/index.php?title=Arch_Module/fr" title="text-top=Arch_Module"><img alt="text-top=Arch_Module" src="16px-Arch_Wall.png" width="16" height="16" srcset="/wiki/images/thumb/a/a5/Arch_Wall.png/24px-Arch_Wall.png 1.5x, /wiki/images/thumb/a/a5/Arch_Wall.png/32px-Arch_Wall.png 2x" /></a> <a href="https://www.freecadweb.org/wiki/index.php?title=Arch_Module/fr" title="Arch Module/fr">Module Arch</a></span> de FreeCAD le détectera, et, l'utilisera pour importer des fichiers <b>IFC</b>. Étant donné qu'<b>ifcopenshell</b> 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é.
</p>
<h3><span class="mw-headline" id="Installation_4">Installation</span></h3>
<p>Étant donné que '<b>ifcopenshell</b> est assez nouveau, vous devrez probablement le compiler vous-même.
</p>
<h4><span class="mw-headline" id="Linux_3">Linux</span></h4>
<p>Vous aurez besoin de deux ou trois paquets de développement, installés sur votre système afin de rassembler les ifcopenshell&#160;:
</p>
<pre>liboce-*-dev
python-dev
swig </pre>
<p>mais, étant donné que FreeCAD exige tout, vous pouvez compiler FreeCAD, vous n'aurez aucune dépendance supplémentaire pour compiler IfcOpenShell.
</p><p>Prenez le dernier code source ici&#160;:
</p>
<pre>git clone https://github.com/IfcOpenShell/IfcOpenShell.git </pre>
<p>Le processus de création est très simple&#160;:
</p>
<pre>mkdir ifcopenshell-build
cd ifcopenshell-build
cmake ../IfcOpenShell/cmake </pre>
<p>ou, si vous utilisez <b>oce</b> au lieu d'<b>opencascade</b>&#160;:
</p>
<pre>cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake </pre>
<p>Étant donné que <b>ifcopenshell</b> est fait principalement pour <a rel="nofollow" class="external text" href="http://www.blender.org/">Blender</a>, il utilise <b>python3</b> 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 <b>Python</b> et <b>cmake</b> (réglez la version de Python avec la vôtre)&#160;:
</p>
<pre>cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake </pre>
<p>Alors&#160;:
</p>
<pre>make
sudo make install </pre>
<p>Vous pouvez vérifier que <b>ifcopenshell</b>, a été correctement installé en tapant dans la console Python&#160;:
</p>
<pre>import ifcopenshell </pre>
<p>Si la commande ne retourne aucun message d'erreur, alors tout est OK.
</p>
<h4><span class="mw-headline" id="Windows_4">Windows</span></h4>
<p><i> Documentation copiée à partir du fichier README IfcOpenShell</i>
</p><p>Les utilisateurs sont priés d'utiliser le fichier <b>.sln</b> de Visual Studio qui se trouve dans <b>win/folder</b>.
</p><p>Pour les utilisateurs de Windows une version pré-construite Open CASCADE est disponible sur le site d'<a rel="nofollow" class="external text" href="http://opencascade.org">OpenCascade</a>. 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++.
</p><p>Pour créer le <b>IfcPython wrapper</b>, <b>SWIG</b> doit être installé. Téléchargez la dernière version de <a rel="nofollow" class="external text" href="http://www.swig.org/download.html">swigwin</a>. Après avoir extrait le fichier <b>.zip</b>, veuillez ajouter le dossier à la variable <b>d'environnement PATH</b>. Python doit être installé, veuillez fournir les chemins d'accès des fichiers include, et, bibliothèque pour Visual Studio.
</p>
<h3><span class="mw-headline" id="Liens">Liens</span></h3>
<p>Tutoriel <a href="https://www.freecadweb.org/wiki/index.php?title=Import/Export_IFC_-_compiling_IfcOpenShell" title="Import/Export IFC - compiling IfcOpenShell">Import/Export IFC - compiling IfcOpenShell</a>
</p>
<h2><span class="mw-headline" id="Teigha_Converter">Teigha Converter</span></h2>
<ul><li> homepage: <a rel="nofollow" class="external free" href="http://www.opendesign.com/guestfiles/Teigha_File_Converter">http://www.opendesign.com/guestfiles/Teigha_File_Converter</a></li>
<li> license: freeware </li>
<li> optionnellement, utilisé pour permettre l'importation et l'exportation de fichiers DWG</li></ul>
<p>Le convertisseur Teigha Converter est un petit utilitaire disponible gratuitement qui permet de convertir plusieurs versions de fichiers DWG et DXF. FreeCAD peut l'utiliser pour permettre l'importation et l'exportation de fichiers DWG, en convertissant les fichiers DWG au format DXF de manière transparente, puis utiliser son importateur DXF standard pour importer le contenu du fichier. Les restrictions de la <a href="https://www.freecadweb.org/wiki/index.php?title=Draft_DXF/fr" title="Draft DXF/fr">DXF importer</a> s'appliquent.
</p>
<h3><span class="mw-headline" id="Installation_5">Installation</span></h3>
<p>S'installe sur toutes les plateformes, par l'installation du package approprié dans <a rel="nofollow" class="external free" href="http://www.opendesign.com/guestfiles/TeighaFileConverter">http://www.opendesign.com/guestfiles/TeighaFileConverter</a>. Après l'installation, si l'utilitaire n'est pas trouvé automatiquement par FreeCAD, vous devrez configurer manuellement le chemin de l'exécutable du convertisseur, activez l'atelier Draft, dans le menu Édition -&gt; Préférences -&gt; Importer/Exportater -&gt; DWG &gt; Chemin daccès du convertisseur du fichier Teiga donnez le chemin approprié de l'exécutable.
</p>
<div style="clear:both"></div>
</div>
</div>
</div><div class="printfooter">
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Extra_python_modules/fr&amp;oldid=277141">http://www.freecadweb.org/wiki/index.php?title=Extra_python_modules/fr&amp;oldid=277141</a>"</div>
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
</body></html>