Extra python modules/de: Difference between revisions

From FreeCAD Documentation
(Created page with "Wenn du eine binäre Version von FreeCAD verwendest, kannst du pip anweisen, pycollada in die Site Pakete innerhalb von FreeCAD.app zu installieren:")
(Created page with "* [https://doc.qt.io/qt.html#qtforpython Seite der offiziellen Qt-Dokumentation]")
 
(96 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{docnav/de
{{Docnav/de
|[[Localisation/de|Lokalisierung]]
|[[Workbench_creation/de|Erstellung von Arbereitsbereichen]]
|[[Source documentation/de|Quell Dokumentation]]
|[[Source_documentation/de|Quellendokumentation]]
}}
}}


{{TOCright}}
Auf dieser Seite findet man einige zusätzliche Python Module oder andere Software, die kostenlos aus dem Internet heruntergeladen werden können und die FreeCAD-Installation um Funktionen zu erweitern.

<span id="Overview"></span>
==Übersicht==

Diese Seite listet verschiedene zusätzliche Python-Module und andere Software-Elemente auf, die kostenlos aus dem Internet heruntergeladen werden können und deiner FreeCAD-Installation Funktionalität hinzufügen.

<span id="PySide_(previously_PyQt)"></span>
==PySide (vorher PyQt4)==


== PySide (vorher PyQt4) ==
* Homepage (PySide): (http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide)
* Homepage (PySide): (http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide http://qt-project.org/wiki/PySide)
* Lizenz: LGPL
* Lizenz: LGPL
* optional, wird aber von mehreren Modulen benötigt: Entwurf, Bogen, Schiff, Druck, OpenSCAD, Kalkulationsblatt
* Optional, wird aber von mehreren Modulen benötigt: Draft, Arch, Ship, Plot, OpenSCAD, Spreadsheet


PySide (früher PyQt) wird von mehreren Modulen von FreeCAD benötigt, um auf die Qt-Schnittstelle von FreeCAD zuzugreifen. Es ist bereits in der Windows-Version von FreeCAD enthalten und wird in der Regel automatisch von FreeCAD unter Linux installiert, wenn es aus offiziellen Repositories installiert wird. Wenn diese Module (Draft, Arch, etc.) nach der Installation von FreeCAD aktiviert werden, bedeutet das, dass PySide (früher PyQt) bereits vorhanden ist und nichts mehr getan werden muss.
PySide (früher PyQt) wird von mehreren Modulen von FreeCAD benötigt, um auf die Qt-Schnittstelle von FreeCAD zuzugreifen. Es ist bereits in der Windows-Version von FreeCAD enthalten und wird in der Regel automatisch von FreeCAD unter Linux installiert, wenn es aus offiziellen Repositories installiert wird. Wenn diese Module (Draft, Arch, etc.) nach der Installation von FreeCAD aktiviert werden, bedeutet das, dass PySide (früher PyQt) bereits vorhanden ist und nichts mehr getan werden muss.
Line 16: Line 24:
'''Hinweis:''' FreeCAD hat sich nach und nach von PyQt ab Version 0.13 zu Gunsten von [http://qt-project.org/wiki/PySide PySide] entfernt, das genau den gleichen Job macht, aber eine (LGPL) Lizenz hat, die besser mit FreeCAD kompatibel ist.
'''Hinweis:''' FreeCAD hat sich nach und nach von PyQt ab Version 0.13 zu Gunsten von [http://qt-project.org/wiki/PySide PySide] entfernt, das genau den gleichen Job macht, aber eine (LGPL) Lizenz hat, die besser mit FreeCAD kompatibel ist.


<span id="Installation"></span>
== Installation ==
== Installation ==


==== Linux ====
<span id="Linux"></span>
====Linux====
Der einfachste Weg, PySide zu installieren, ist über den Paketmanager Ihrer Distribution. Auf Debian/Ubuntu-Systemen lautet der Paketname im Allgemeinen ''python-PySide'', während er auf RPM-basierten Systemen ''pyside'' genannt wird. Die notwendigen Abhängigkeiten (Qt und SIP) werden automatisch erledigt.

Der einfachste Weg, PySide zu installieren, ist über den Paketmanager deiner Distribution. Auf Debian/Ubuntu-Systemen lautet der Paketname im Allgemeinen ''python-PySide'', während er auf RPM-basierten Systemen ''pyside'' genannt wird. Die notwendigen Abhängigkeiten (Qt und SIP) werden automatisch erledigt.

<span id="Windows"></span>
====Windows====


==== Windows ====
Das Programm kann unter http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads heruntergeladen werden. Du must die Qt- und SIP-Bibliotheken installieren, bevor Du PySide installieren kannst (zu dokumentieren).
Das Programm kann unter http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads heruntergeladen werden. Du must die Qt- und SIP-Bibliotheken installieren, bevor Du PySide installieren kannst (zu dokumentieren).


<span id="MacOS"></span>
==== MacOSX ====
====macOS====
PyQt auf Mac kann über Homebrew oder Port installiert werden. Weitere Informationen findet man unter [[Compile on MacOS#Install_Dependencies|Install dependencies]].

PySide auf dem Mac kann über Homebrew oder Port installiert werden. Weitere Informationen findet man unter [[Compile on MacOS/de#Abhängigkeiten_einrichten|Abhängigkeiten einrichten]].

<span id="Usage"></span>
===Anwendung===


Sobald es installiert ist, kann überprüft werden, ob alles funktioniert, indem in die FreeCAD-Python-Konsole eingegeben wird:
=== Verwendung ===
Sobald es installiert ist, kann überprüft werden, ob alles funktioniert, indem in die FreeCAD Python-Konsole eingegeben wird:


{{Code|code=
{{Code|code=
Line 69: Line 86:
}}
}}


<span id="Example_of_transition_from_PyQt4_and_PySide"></span>
===Beispiel für den Übergang von PyQt4 und PySide===
===Beispiel für den Übergang von PyQt4 und PySide===


Line 104: Line 122:
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window
except Exception:
except Exception:
FCmw = FreeCADGui.getMainWindow() # PySide # the active qt window, = the freecad window since we are inside it
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
FCmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,myNewFreeCADWidget) # add the widget to the main window
}}
}}


Arbeiten mit Unicode :
Arbeiten mit Unicode :


{{Code|code=
{{Code|code=
Line 144: Line 162:
try:
try:
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before
diag.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint) # PyQt4 # this function sets the window before
except Exception:
except Exception:
diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint)# PySide # this function sets the window before
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.setWindowModality(QtCore.Qt.ApplicationModal) # function has been disabled to promote "WindowStaysOnTopHint"
Line 153: Line 171:


{{Code|code=
{{Code|code=
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4
self.doubleSpinBox.setProperty("value", 10.0) # PyQt4
}}
}}


Line 159: Line 177:


{{Code|code=
{{Code|code=
self.doubleSpinBox.setValue(10.0) # PySide
self.doubleSpinBox.setValue(10.0) # PySide
}}
}}


Line 165: Line 183:


{{Code|code=
{{Code|code=
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4
self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4
}}
}}


Line 171: Line 189:


{{Code|code=
{{Code|code=
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide
self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide
}}
}}


Line 180: Line 198:
}}
}}


<span id="Additional_documentation"></span>
=== Zusätzliche Dokumentation ===
=== Zusätzliche Dokumentation ===

Einige pyQt4-Tutorien (einschließlich der Erstellung von Schnittstellen mit Qt Designer zur Verwendung mit Python):
* [https://doc.qt.io/qt.html#qtforpython Seite der offiziellen Qt-Dokumentation]
* http://pyqt.sourceforge.net/Docs/PyQt4/classes.html - die PyQt4 API Referenz auf sourceforge
* http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - eine einfache Einführung
* http://www.zetcode.com/tutorials/pyqt4/ - sehr komplettes, ausführliches Tutorial


== Pivy ==
== Pivy ==

* Startseite: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]
* Startseite: [https://bitbucket.org/Coin3D/coin/wiki/Home https://bitbucket.org/Coin3D/coin/wiki/Home]
* Lizenz: BSD
* Lizenz: BSD
* optional, aber von verschiedenen Modulen von FreeCAD benötigt: Entwurf, Bogen
* Optional, aber von verschiedenen Modulen von FreeCAD benötigt: Draft, Arch


Pivy wird von mehreren Modulen benötigt, um die 3D Ansicht von FreeCAD zu erreichen. Unter Windows ist Pivy bereits im FreeCAD Installationsprogramm enthalten, unter Linux wird es normalerweise automatisch installiert, wenn Du FreeCAD aus einem offiziellen Repository installierst. Unter MacOSX musst Du Pivy leider selbst kompilieren.
Pivy wird von mehreren Modulen benötigt, um auf die 3D-Ansicht von FreeCAD zuzugreifen. Unter Windows ist Pivy bereits im FreeCAD Installationsprogramm enthalten, unter Linux wird es normalerweise automatisch installiert, wenn Du FreeCAD aus einem offiziellen Repository installierst. Unter macOSX musst Du Pivy leider selbst kompilieren.


=== Installation ===
=== Installation ===


<span id="Prerequisites"></span>
==== Voraussetzungen ====
=== Voraussetzungen ===

Ich glaube, bevor Du Pivy kompilierst, solltest Du Coin und SoQt installiert haben.
Ich glaube, bevor Du Pivy kompilierst, solltest Du Coin und SoQt installiert haben.


Line 204: Line 224:
SoQt kompiliert von [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] gut auf Mac und Linux.
SoQt kompiliert von [http://www.coin3d.org/lib/soqt/releases/1.5.0 source] gut auf Mac und Linux.


<span id="Debian_&amp;_Ubuntu"></span>
===== Debian & Ubuntu =====
====Debian & Ubuntu====
Beginnend mit Debian Squeeze und Ubuntu Lucid, wird pivy direkt aus den offiziellen Repositorien verfügbar sein, was uns eine Menge Ärger erspart. In der Zwischenzeit kannst Du entweder eines der Pakete, die wir (für debian und ubuntu karmic) auf den [[Download]] Seiten zur Verfügung gestellt haben, herunterladen oder selbst kompilieren.

Beginnend mit Debian Squeeze und Ubuntu Lucid, ist pivy direkt aus den offiziellen Repositorien verfügbar, was uns eine Menge Ärger erspart. In der Zwischenzeit kannst Du entweder eines der Pakete, die wir (für debian und ubuntu karmic) auf den [[Download]] Seiten zur Verfügung gestellt haben, herunterladen oder selbst kompilieren.


Der beste Weg, pivy einfach zu kompilieren, ist, das Debian-Quellpaket für pivy zu holen und ein Paket mit debuild zu erstellen. Es ist derselbe Quellcode von der offiziellen Pivy Seite, aber die Debian Leute haben einige fehlerbereinigende Ergänzungen vorgenommen. Es lässt sich auch gut mit ubuntu karmic kompilieren: http://packages.debian.org/squeeze/python-pivy lade die .orig.gz und die .diff.gz Datei herunter, entpacke dann beide und wende dann den . diff auf den Quellcode an: gehe in den entpackten pivy Quellcode-Ordner und wende den .diff Patch an:
Der beste Weg, pivy einfach zu kompilieren, ist, das Debian-Quellpaket für pivy zu holen und ein Paket mit debuild zu erstellen. Es ist derselbe Quellcode von der offiziellen Pivy Seite, aber die Debian Leute haben einige fehlerbereinigende Ergänzungen vorgenommen. Es lässt sich auch gut mit ubuntu karmic kompilieren: http://packages.debian.org/squeeze/python-pivy lade die .orig.gz und die .diff.gz Datei herunter, entpacke dann beide und wende dann den . diff auf den Quellcode an: gehe in den entpackten pivy Quellcode-Ordner und wende den .diff Patch an:
Line 221: Line 243:
um pivy ordnungsgemäß in ein offizielles installierbares Paket eingebaut zu haben. Dann installiere das Paket einfach mit gdebi.
um pivy ordnungsgemäß in ein offizielles installierbares Paket eingebaut zu haben. Dann installiere das Paket einfach mit gdebi.


<span id="Other_linux_distributions"></span>
==== Andere Linux Distributionen ====
====Andere Linux-Distributionen====
Hole Dir zuerst die neuesten Quellen aus dem [http://pivy.coin3d.org/mercurial/ Projekt Repositorium]:

Hole Dir zuerst die neuesten Quellen aus dem [http://pivy.coin3d.org/mercurial/ Projekt-Repositorium]:


{{Code|code=
{{Code|code=
hg clone http://hg.sim.no/Pivy/default Pivy
hg clone http://hg.sim.no/Pivy/default Pivy
}}
}}


Line 238: Line 262:
}}
}}


Der Bau dauert nur wenige Sekunden.
Der Bau dauert nur wenige Sekunden.


Alternativ kannst Du versuchen, mit einer neueren SWIG zu bauen. Ab März 2012 ist eine typische Repositorien Version 2.0.4. Pivy hat ein kleines Kompilierproblem mit SWIG 2.0.4 unter Mac OS (siehe unten), scheint aber auf Fedora Core 15 gut zu bauen.
Alternativ kannst Du versuchen, mit einer neueren SWIG zu bauen. Ab März 2012 ist eine typische Repositorien Version 2.0.4. Pivy hat ein kleines Kompilierproblem mit SWIG 2.0.4 unter macOS (siehe unten), scheint aber auf Fedora Core 15 gut zu bauen.


Danach gehst du zu den pivy Quellen und rufst
Danach gehst du zu den pivy Quellen und rufst


{{Code|code=
{{Code|code=
python setup.py build
python setup.py build
}}
}}


die die Quelldateien erstellt. Beachte, dass der Bau tausende von Warnungen erzeugen kann, aber hoffentlich keine Fehler auftreten werden.
die die Quelldateien erstellt. Beachte, dass der Bau tausende von Warnungen erzeugen kann, aber hoffentlich keine Fehler auftreten werden.


Dies ist wahrscheinlich veraltet, aber du köntest auf einen Compiler Fehler stoßen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur eine 'const' vorher in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren.
Dies ist wahrscheinlich veraltet, aber du köntest auf einen Compiler Fehler stoßen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur eine 'const' vorher in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren.


Danach installieren durch ausgeben (als root):
Danach installieren durch ausgeben (als root):
Line 260: Line 284:
Das war's, pivy ist installiert.
Das war's, pivy ist installiert.


<span id="MacOS"></span>
===== Mac OS =======
====macOS====
Diese Anleitungen könnten möglicherweise nicht vollständig sein. Etwas in dieser Art funktionierte für OS 10.7 ab März 2012. Ich verwende MacPorts für Repositorien, aber andere Optionen sollten auch funktionieren.

Diese Anleitungen könnten möglicherweise nicht vollständig sein. Etwas in dieser Art funktionierte für OS 10.7 ab März 2012. Ich verwende MacPorts für Repositorien, aber andere Optionen sollten auch funktionieren.


Wie für Linux, hole dir die neueste Quelle:
Wie für Linux, hole dir die neueste Quelle:


{{Code|code=
{{Code|code=
hg clone http://hg.sim.no/Pivy/default Pivy
hg clone http://hg.sim.no/Pivy/default Pivy
}}
}}


Line 287: Line 313:
}}
}}


Seit März 2012 ist die MacPorts SWIG Version 2.0.4. Wie oben für Linux angemerkt, ist es vielleicht besser, eine ältere Version herunterzuladen. SWIG 2.0.4 scheint einen Fehler zu haben, der das Bauen von Pivy verhindert. Siehe erste Meldung in diesem Auszug: https://sourceforge.net/mailarchive/message.php?msg_id=28114815
Seit März 2012 ist die MacPorts SWIG Version 2.0.4. Wie oben für Linux angemerkt, ist es vielleicht besser, eine ältere Version herunterzuladen. SWIG 2.0.4 scheint einen Fehler zu haben, der das Bauen von Pivy verhindert. Siehe erste Meldung in diesem: [https://sourceforge.net/mailarchive/message.php?msg_id=28114815 Auszug]


Dies kann korrigiert werden, indem man die 2 Quellorte bearbeitet, um Dereferenzierungen hinzuzufügen: *arg4, *arg5 an Stelle von arg4, arg5. Jetzt sollte Pivy bauen:
Dies kann korrigiert werden, indem man die 2 Quellorte bearbeitet, um Dereferenzierungen hinzuzufügen: *arg4, *arg5 an Stelle von arg4, arg5. Jetzt sollte Pivy bauen:
Line 296: Line 322:
}}
}}


===== Windows =======
<span id="Windows"></span>
====Windows====

Angenommen, du verwendest Visual Studio 2005 oder höher, solltest du eine Eingabeaufforderung mit 'Visual Studio 2005 Command prompt' aus dem Werkzeugmenü öffnen.
Angenommen, du verwendest Visual Studio 2005 oder höher, solltest du eine Eingabeaufforderung mit 'Visual Studio 2005 Command prompt' aus dem Werkzeugmenü öffnen.
Wenn der Python Interpreter noch nicht im Systempfad liegt, mache
Wenn der Python-Interpreter noch nicht im Systempfad liegt, mache


{{Code|code=
{{Code|code=
Line 307: Line 335:


{{Code|code=
{{Code|code=
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy
svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy
}}
}}


Line 325: Line 353:
In Zeile 200 einfach den Teil 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') entfernen (die schließende Klammer nicht entfernen).
In Zeile 200 einfach den Teil 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') entfernen (die schließende Klammer nicht entfernen).


Danach gehe zu den pivy Quellen und rufe
Danach gehe zu den pivy Quellen und rufe


{{Code|code=
{{Code|code=
python setup.py build
python setup.py build
}}
}}


was die Quelldateien erstellt. Es kann sein, dass du einen Kompilierer Fehler bekommst, weil mehrere Kopfdateien nicht gefunden wurden. In diesem Fall passe die INCLUDE Variable an
was die Quelldateien erstellt. Es kann sein, dass du einen Kompilierer Fehler bekommst, weil mehrere Kopfdateien nicht gefunden wurden. In diesem Fall passe die INCLUDE Variable an
Line 350: Line 377:
}}
}}


Wenn du die Express Edition von Visual Studio verwendest, erhälst du möglicherweise eine Python keyerror Ausnahme.
Wenn du die Express Edition von Visual Studio verwendest, erhälst du möglicherweise eine Python-keyerror-Ausnahme.
In diesem Fall musst Du ein paar Dinge in der msvccompiler.py, die sich in deiner Pythoninstallation befindet, ändern.
In diesem Fall musst Du ein paar Dinge in der Datei msvccompiler.py, die sich in deiner Pythoninstallation befindet, ändern.


Gehe zur Zeile 122 und ersetze die Zeile
Gehe zur Zeile 122 und ersetze die Zeile
Line 365: Line 392:
}}
}}


Dann versuche es noch einmal.
Dann versuche es noch einmal. Wenn du einen zweiten Fehler erhältst, wie
Wenn du einen zweiten Fehler wie


{{Code|code=
{{Code|code=
Line 404: Line 430:
}}
}}


Nun kann es zu einem Compilerfehler kommen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur vorher eine 'const' in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren.
Nun kann es zu einem Compilerfehler kommen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur vorher eine 'const' in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren. Danach kopiere das generierte Pivy-Verzeichnis an einen Ort, wo der Python-Interpreter in FreeCAD es finden kann.

Danach kopiere das generierte Pivy Verzeichnis an einen Ort, wo der Python Interpreter in FreeCAD es finden kann.
<span id="Usage"></span>
===Anwendung===


=== Verwendung ===
Um zu überprüfen, ob Pivy korrekt installiert ist:
Um zu überprüfen, ob Pivy korrekt installiert ist:


Line 414: Line 441:
}}
}}


Um pivy Zugriff auf den FreeCAD Szenengraphen zu haben, gehe wie folgt vor:
Um pivy Zugriff auf den FreeCAD Szenengraphen zu haben, gehe wie folgt vor:


{{Code|code=
{{Code|code=
from pivy import coin
from pivy import coin
App.newDocument() # Open a document and a view
App.newDocument() # Open a document and a view
view = Gui.ActiveDocument.ActiveView
view = Gui.ActiveDocument.ActiveView
FCSceneGraph = view.getSceneGraph() # returns a pivy Python object that holds a SoSeparator, the main "container" of the Coin scenegraph
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
FCSceneGraph.addChild(coin.SoCube()) # add a box to scene
}}
}}


Du kannst nun den FCSceneGraph mit dem dir() Befehl untersuchen.
Du kannst nun den FCSceneGraph mit dem dir() Befehl untersuchen.


<span id="Additonal_Documentation"></span>
=== Additonal Documentation ===
=== Zusätzliche Dokumentation ===
Unfortunately documentation about pivy is still almost nonexistant on the net. But you might find Coin documentation useful, since pivy simply translate Coin functions, nodes and methods in python, everything keeps the same name and properties, keeping in mind the difference of syntax between C and python:


Leider ist die Dokumentation über pivy im Netz immer noch fast nicht vorhanden. Aber du könntest die Coin-Dokumentation nützlich finden, da pivy einfach Coin Funktionen, Knoten und Methoden in Python übersetzt, alles behält den gleichen Namen und die gleichen Eigenschaften, wobei der Unterschied in der Syntax zwischen C und Python berücksichtigt wird:
* 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 - The "bible" of Inventor scene description language.


* https://bitbucket.org/Coin3D/coin/wiki/Documentation - Coin3D API Referenz
You can also look at the Draft.py file in the FreeCAD Mod/Draft folder, since it makes big use of pivy.
* http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - Der Inventor Mentor - Die "Bibel" der Inventor Szenenbeschreibungssprache.

Du kannst dir auch die Datei Draft.py im FreeCAD Mod/Draft Ordner ansehen, da sie starken Gebrauch von pivy macht.


== pyCollada ==
== pyCollada ==
* homepage: http://pycollada.github.com
* license: BSD
* optional, needed to enable import and export of Collada (.DAE) files


* Startseite: http://pycollada.github.com
pyCollada is a python library that allow programs to read and write [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] files. When pyCollada is installed on your system, FreeCAD will be able to handle importing and exporting in the Collada file format.
* Lizenz: BSD
* optional, notwendig um den Import und Export von Collada-Dateien (.DAE) zu ermöglichen

pyCollada ist eine Python-Bibliothek, die es Programmen ermöglicht, Dateien [http://en.wikipedia.org/wiki/COLLADA Collada (*.DAE)] zu lesen und zu schreiben. Wenn pyCollada auf Ihrem System installiert ist, ist FreeCAD in der Lage, den Import und Export im Collada Dateiformat zu handhaben.


=== Installation ===
=== Installation ===
Pycollada is usually not yet available in linux distributions repositories, but since it is made only of python files, it doesn't require compilation, and is easy to install. You have 2 ways, or directly from the official pycollada git repository, or with the easy_install tool.


==== Linux ====
<span id="Linux"></span>
====Linux====
In either case, you'll need the following packages already installed on your system:


{{Code|code=
{{Code|code=
sudo apt-get install python3-collada
python-lxml
python-numpy
python-dateutil
}}
}}


Du kannst überprüfen, ob pycollada korrekt installiert wurde, indem du in einer Python-Konsole eingibst:
===== From the git repository =====

{{Code|code=
git clone git://github.com/pycollada/pycollada.git pycollada
cd pycollada
sudo python setup.py install
}}

===== With easy_install =====
Assuming you have a complete python installation already, the easy_install utility should be present already:

{{Code|code=
easy_install pycollada
}}

You can check if pycollada was correctly installed by issuing in a python console:


{{Code|code=
{{Code|code=
Line 474: Line 486:
}}
}}


If it returns nothing (no error message), then all is OK
Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK


==== Windows ====
==== Windows ====
Line 480: Line 492:
Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK. Unter Windows, da 0.15 pycollada sowohl in der FreeCAD Version als auch in den Entwickler Builds enthalten ist, so dass keine zusätzlichen Schritte notwendig sind.
Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK. Unter Windows, da 0.15 pycollada sowohl in der FreeCAD Version als auch in den Entwickler Builds enthalten ist, so dass keine zusätzlichen Schritte notwendig sind.


==== Mac OS ====
==== MacOS ====


Wenn du den Homebrew Build von FreeCAD verwendest, kannst du pycollada mit pip in dein System Python installieren.
Wenn du den Homebrew Build von FreeCAD verwendest, kannst du pycollada mit pip in dein System Python installieren.
Line 502: Line 514:
}}
}}


or after downloading the pycollada code
oder nach dem Herunterladen des pycollada Codes


{{Code|code=
{{Code|code=
Line 511: Line 523:
== IfcOpenShell ==
== IfcOpenShell ==


* homepage: http://www.ifcopenshell.org
* Startseite: http://www.ifcopenshell.org
* license: LGPL
* Lizenz. * LGPL
* optional, needed to extend import abilities of IFC files
* optional, notwendig zur Erweiterung der Importfähigkeit von IFC-Dateien


IFCOpenShell is a library currently in development, that allows to import (and soon export) [http://en.wikipedia.org/wiki/Industry_Foundation_Classes Industry foundation Classes (*.IFC)] files. IFC is an extension to the STEP format, and is becoming the standard in [http://en.wikipedia.org/wiki/Building_information_modeling BIM] workflows. When ifcopenshell is correctly installed on your system, the FreeCAD [[Arch Module]] will detect it and use it to import IFC files, instead of its built-in rudimentary importer. Since ifcopenshell is based on OpenCasCade, like FreeCAD, the quality of the import is very high, producing high-quality solid geometry.
IFCOpenShell ist eine derzeit in Entwicklung befindliche Bibliothek, die es erlaubt, Dateien [https://de.wikipedia.org/wiki/Industry_Foundation_Classes Industry Foundation Classes (*.IFC)] zu importieren (und bald auch zu exportieren). IFC ist eine Erweiterung des STEP-Formats und wird zum Standard in [hhttps://de.wikipedia.org/wiki/Building_Information_Modeling BIM]-Arbeitsabläufen. Wenn ifcopenshell korrekt auf Ihrem System installiert ist, wird das FreeCAD [[Arch_Workbench/de|Arch-Arbeitsgebiet]] es erkennen und zum Importieren von IFC-Dateien verwenden, anstelle des eingebauten rudimentären Importeurs. Da ifcopenshell wie FreeCAD auf OpenCasCade basiert, ist die Qualität des Imports sehr hoch und erzeugt hochwertige Volumenkörpergeometrie.


=== Installation ===
=== Installation ===

Da ifcopenshell ziemlich neu ist, wirst du es wahrscheinlich selbst kompilieren müssen.
Da ifcopenshell ziemlich neu ist, wirst du es wahrscheinlich selbst kompilieren müssen.


===== Linux =======
<span id="Linux"></span>
====Linux====

Du brauchst ein paar auf deinem System installierte Entwicklungspakete, um ifcopenshell zu kompilieren:
Du brauchst ein paar auf deinem System installierte Entwicklungspakete, um ifcopenshell zu kompilieren:


Line 548: Line 563:


{{Code|code=
{{Code|code=
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake
cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake
}}
}}


Da ifcopenshell hauptsächlich für Blender gemacht ist, verwendet es standardmäßig python3. Um es innerhalb von FreeCAD zu verwenden, musst du es gegen die gleiche Version von Python kompilieren, die auch von FreeCAD verwendet wird. Daher musst du möglicherweise die Python Version mit zusätzlichen cmake Parametern erzwingen (passe die Python Version an Deine an):
Da ifcopenshell hauptsächlich für Blender gemacht ist, verwendet es standardmäßig Python3. Um es innerhalb von FreeCAD zu verwenden, musst du es gegen die gleiche Version von Python kompilieren, die auch von FreeCAD verwendet wird. Daher musst du möglicherweise die Python-Version mit zusätzlichen cmake-Parametern erzwingen (passe die Python-Version an Deine an):


{{Code|code=
{{Code|code=
Line 564: Line 579:
}}
}}


Du kannst überprüfen, ob ifcopenshell korrekt installiert wurde, indem du in einer Python Konsole eingibst:
Du kannst überprüfen, ob ifcopenshell korrekt installiert wurde, indem du in einer Python-Konsole eingibst:


{{Code|code=
{{Code|code=
Line 578: Line 593:
''Kopiert von der IfcOpenShell README Datei''
''Kopiert von der IfcOpenShell README Datei''


Anwendern wird empfohlen, die Visual Studio .sln Datei im Ordner win/ zu verwenden. Für Windows Anwender ist eine vorkompilierte Open CASCADE Version auf der Website http://opencascade.org verfügbar. Lade diese Version herunter, installiere sie und stelle die Pfade zu den Open CASCADE Header- und Bibliotheksdateien für MS Visual Studio C++ zur Verfügung.
Anwendern wird empfohlen, die Visual Studio .sln Datei im Ordner win/ zu verwenden. Für Windows-Anwender ist eine vorkompilierte Open CASCADE Version auf der [http://opencascade.org OpenCASCADE-Webseite] erhältlich. Lade diese Version herunter, installiere sie und stelle die Pfade zu den OpenCASCADE-Header- und Bibliotheksdateien für MS Visual Studio C++ zur Verfügung.


Um den IfcPython wrapper zu erstellen, muss SWIG installiert werden. Bitte lade die aktuelle swigwin Version von http://www.swig.org/download.html herunter. Nach dem Entpacken der .zip Datei füge bitte den entpackten Ordner in die Umgebungsvariable PATH ein. Python muss installiert sein, bitte gib die Include- und Bibliotheks Pfade zu Visual Studio an.
Um den IfcPython wrapper zu erstellen, muss SWIG installiert werden. Bitte lade die aktuelle swigwin Version von der [http://www.swig.org/download.html SWIG-Webseite] herunter. Nach dem Entpacken der .zip-Datei füge bitte den entpackten Ordner in die Umgebungsvariable PATH ein. Python muss installiert sein, bitte gib die Include- und Bibliotheks-Pfade in Visual Studio an.


<span id="Links"></span>
===Verweise===
===Verweise===

Tutorium [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]
Tutorium [[Import/Export_IFC_-_compiling_IfcOpenShell|Import/Export IFC - compiling IfcOpenShell]]


== LazyLoader ==
== ODA Konverter (vormals Teigha Konverter) ==


LazyLoader ist ein Python-Modul, das ein zeitversetztes Laden ermöglicht, während der Import immer noch am Anfang des Skripts erfolgt. Dies ist nützlich, wenn du ein anderes Modul importierst, das langsam ist und im gesamten Skript mehrmals verwendet wird. Die Verwendung von LazyLoader kann die Startzeiten des Arbeitsbereichs verbessern, aber das Modul muss bei der ersten Verwendung immer noch geladen werden.
* Homepage: https://www.opendesign.com/guestfiles/oda_file_converter
* Lizenz: Freeware
* Optional, wird verwendet, um den Import und Export von DWG Dateien zu ermöglichen

Der ODA Konverter ist ein kleines, frei verfügbares Programm, das die Konvertierung zwischen verschiedenen Versionen von DWG und DXF Dateien ermöglicht. FreeCAD kann es verwenden, um DWG Import und Export anzubieten, indem es DWG Dateien in das DXF Format unter der Oberfläche konvertiert und dann seinen Standard DXF Importer verwendet, um den Dateiinhalt zu importieren. Es gelten die Einschränkungen des [[Draft_DXF/de|DXF Importeur]].


=== Installation ===
=== Installation ===
Auf allen Plattformen, nur durch Installation des entsprechenden Pakets von https://www.opendesign.com/guestfiles/oda_file_converter. Nach der Installation, wenn das Dienstprogramm nicht automatisch von FreeCAD gefunden wird, musst Du möglicherweise den Pfad zur ausführbaren Konverterdatei manuell einstellen, öffne Bearbeiten → Einstellungen → Import-Export → DWG und fülle "Pfad zum Teigha File Converter" entsprechend.


LazyLoader ist in FreeCAD v0.19 enthalten
{{docnav/de

|[[Localisation/de|Lokalisierung]]
<span id="Usage"></span>
|[[Source documentation/de|Quell Dokumentation]]
===Anwendung===

Du musst LazyLoader importieren und dann den Import des Moduls, das zurückgestellt werden soll, ändern.

{{Code|code=
from lazy_loader.lazy_loader import LazyLoader
Part = LazyLoader('Part', globals(), 'Part')
}}
}}
Die Variable Part gibt an, wie das Modul in deinem Skript benannt ist. Du kannst "Part als P importieren" wiederholen, indem du die Variable änderst.


{{Code|code=
{{Userdocnavi/de}}
P = LazyLoader('Part', globals(), 'Part')
}}
You can also import a module from a package.
{{Code|code=
utils = LazyLoader('PathScripts', globals(), 'PathScripts.PathUtils')
}}
Du kannst keine Einzelfunktionen importieren, sondern nur ganze Module.


<span id="Links"></span>
[[Category:Python Code/de]]
=== Verweise ===


* Originalquelle: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/util/lazy_loader.py
[[Category:Developer Documentation/de]]
* Weitere Erklärung: https://wil.yegelwel.com/lazily-importing-python-modules/
* Code innerhalb des FreeCAD Quellcodes: https://github.com/FreeCAD/FreeCAD/tree/master/src/3rdParty/lazy_loader
* Forumsdiskussion: https://forum.freecadweb.org/viewtopic.php?f=10&t=45298


{{Docnav/de
|[[Workbench_creation/de|Erstellung von Arbeitsbereichen]]
|[[Source_documentation/de|Quellendokumentation]]
}}


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

Latest revision as of 13:40, 24 November 2023

Übersicht

Diese Seite listet verschiedene zusätzliche Python-Module und andere Software-Elemente auf, die kostenlos aus dem Internet heruntergeladen werden können und deiner FreeCAD-Installation Funktionalität hinzufügen.

PySide (vorher PyQt4)

PySide (früher PyQt) wird von mehreren Modulen von FreeCAD benötigt, um auf die Qt-Schnittstelle von FreeCAD zuzugreifen. Es ist bereits in der Windows-Version von FreeCAD enthalten und wird in der Regel automatisch von FreeCAD unter Linux installiert, wenn es aus offiziellen Repositories installiert wird. Wenn diese Module (Draft, Arch, etc.) nach der Installation von FreeCAD aktiviert werden, bedeutet das, dass PySide (früher PyQt) bereits vorhanden ist und nichts mehr getan werden muss.

Hinweis: FreeCAD hat sich nach und nach von PyQt ab Version 0.13 zu Gunsten von PySide entfernt, das genau den gleichen Job macht, aber eine (LGPL) Lizenz hat, die besser mit FreeCAD kompatibel ist.

Installation

Linux

Der einfachste Weg, PySide zu installieren, ist über den Paketmanager deiner Distribution. Auf Debian/Ubuntu-Systemen lautet der Paketname im Allgemeinen python-PySide, während er auf RPM-basierten Systemen pyside genannt wird. Die notwendigen Abhängigkeiten (Qt und SIP) werden automatisch erledigt.

Windows

Das Programm kann unter http://qt-project.org/wiki/Category:LanguageBindings::PySide::Downloads heruntergeladen werden. Du must die Qt- und SIP-Bibliotheken installieren, bevor Du PySide installieren kannst (zu dokumentieren).

macOS

PySide auf dem Mac kann über Homebrew oder Port installiert werden. Weitere Informationen findet man unter Abhängigkeiten einrichten.

Anwendung

Sobald es installiert ist, kann überprüft werden, ob alles funktioniert, indem in die FreeCAD-Python-Konsole eingegeben wird:

import PySide

Um auf die FreeCAD-Schnittstelle zuzugreifen, gib ein :

from PySide import QtCore,QtGui
FreeCADWindow = FreeCADGui.getMainWindow()

Nun kann mit dem Befehl dir() begonnen werden, die Oberfläche zu erkunden. Neue Elemente können ergänzt werden, wie ein benutzerdefiniertes Widget, mit Befehlen wie :

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

Arbeiten mit Unicode :

text = text.encode('utf-8')

Arbeiten mit QFileDialog und OpenFileName :

path = FreeCAD.ConfigGet("AppHomePath")
#path = FreeCAD.ConfigGet("UserAppData")
OpenName, Filter = PySide.QtGui.QFileDialog.getOpenFileName(None, "Read a txt file", path, "*.txt")

Arbeiten mit QFileDialog und SaveFileName :

path = FreeCAD.ConfigGet("AppHomePath")
#path = FreeCAD.ConfigGet("UserAppData")
SaveName, Filter = PySide.QtGui.QFileDialog.getSaveFileName(None, "Save a file txt", path, "*.txt")

Beispiel für den Übergang von PyQt4 und PySide

PS: diese Beispiele von Fehlern wurden beim Übergang von PyQt4 zu PySide gefunden und diese Korrekturen wurden vorgenommen, andere Lösungen sind sicherlich mit den obigen Beispielen verfügbar

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

Um auf die FreeCAD Oberfläche zuzugreifen, gib ein : Du kannst neue Elemente hinzufügen, wie ein benutzerdefiniertes Widget, mit Befehlen wie :

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

Arbeiten mit Unicode :

try:
    text = unicode(text, 'ISO-8859-1').encode('UTF-8')  # PyQt4
except Exception:
    text = text.encode('utf-8')                         # PySide

Arbeiten mit QFileDialog und OpenFileName :

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

Arbeiten mit QFileDialog und SaveFileName :

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

Die MitteilungsBox:

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_()

Arbeiten mit setProperty (PyQt4) und setValue (PySide)

self.doubleSpinBox.setProperty("value", 10.0) # PyQt4

ersetzen durch :

self.doubleSpinBox.setValue(10.0) # PySide

Arbeiten mit setToolTip

self.doubleSpinBox.setToolTip(_translate("MainWindow", "Coordinate placement Axis Y", None)) # PyQt4

ersetzen durch :

self.doubleSpinBox.setToolTip(_fromUtf8("Coordinate placement Axis Y")) # PySide

oder:

self.doubleSpinBox.setToolTip(u"Coordinate placement Axis Y.")# PySide

Zusätzliche Dokumentation

Pivy

Pivy wird von mehreren Modulen benötigt, um auf die 3D-Ansicht von FreeCAD zuzugreifen. Unter Windows ist Pivy bereits im FreeCAD Installationsprogramm enthalten, unter Linux wird es normalerweise automatisch installiert, wenn Du FreeCAD aus einem offiziellen Repository installierst. Unter macOSX musst Du Pivy leider selbst kompilieren.

Installation

Voraussetzungen

Ich glaube, bevor Du Pivy kompilierst, solltest Du Coin und SoQt installiert haben.

Ich fand, dass es zum Bauen auf Mac ausreicht, das Coin3-Binärpaket zu installieren. Der Versuch, Coin von MacPorts aus zu installieren, war problematisch: versuchte, eine Menge X Windowspakete hinzuzufügen und stürzte schließlich mit einem Skriptfehler ab.

Für Fedora habe ich eine RPM mit Coin3 gefunden.

SoQt kompiliert von source gut auf Mac und Linux.

Debian & Ubuntu

Beginnend mit Debian Squeeze und Ubuntu Lucid, ist pivy direkt aus den offiziellen Repositorien verfügbar, was uns eine Menge Ärger erspart. In der Zwischenzeit kannst Du entweder eines der Pakete, die wir (für debian und ubuntu karmic) auf den Download Seiten zur Verfügung gestellt haben, herunterladen oder selbst kompilieren.

Der beste Weg, pivy einfach zu kompilieren, ist, das Debian-Quellpaket für pivy zu holen und ein Paket mit debuild zu erstellen. Es ist derselbe Quellcode von der offiziellen Pivy Seite, aber die Debian Leute haben einige fehlerbereinigende Ergänzungen vorgenommen. Es lässt sich auch gut mit ubuntu karmic kompilieren: http://packages.debian.org/squeeze/python-pivy lade die .orig.gz und die .diff.gz Datei herunter, entpacke dann beide und wende dann den . diff auf den Quellcode an: gehe in den entpackten pivy Quellcode-Ordner und wende den .diff Patch an:

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

dann

debuild

um pivy ordnungsgemäß in ein offizielles installierbares Paket eingebaut zu haben. Dann installiere das Paket einfach mit gdebi.

Andere Linux-Distributionen

Hole Dir zuerst die neuesten Quellen aus dem Projekt-Repositorium:

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

Ab März 2012 ist die neueste Version Pivy-0.5.

Dann brauchst Du ein Werkzeug namens SWIG, um den C++ Code für die Python Bindungen zu generieren. Pivy-0.5 berichtet, dass es nur mit SWIG 1.3.31, 1.3.33, 1.3.35 und 1.3.40 getestet wurde. Du kannst also eine Quell Tar-Datei für eine dieser alten Versionen von http://www.swig.org herunterladen. Dann entpacke sie und mache sie von der Kommandozeile aus (als root):

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

Der Bau dauert nur wenige Sekunden.

Alternativ kannst Du versuchen, mit einer neueren SWIG zu bauen. Ab März 2012 ist eine typische Repositorien Version 2.0.4. Pivy hat ein kleines Kompilierproblem mit SWIG 2.0.4 unter macOS (siehe unten), scheint aber auf Fedora Core 15 gut zu bauen.

Danach gehst du zu den pivy Quellen und rufst

python setup.py build

die die Quelldateien erstellt. Beachte, dass der Bau tausende von Warnungen erzeugen kann, aber hoffentlich keine Fehler auftreten werden.

Dies ist wahrscheinlich veraltet, aber du köntest auf einen Compiler Fehler stoßen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur eine 'const' vorher in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren.

Danach installieren durch ausgeben (als root):

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

Das war's, pivy ist installiert.

macOS

Diese Anleitungen könnten möglicherweise nicht vollständig sein. Etwas in dieser Art funktionierte für OS 10.7 ab März 2012. Ich verwende MacPorts für Repositorien, aber andere Optionen sollten auch funktionieren.

Wie für Linux, hole dir die neueste Quelle:

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

Wenn du kein hg hast, kannst du es von MacPorts holen:

port install mercurial

Dann brauchst du wie oben SWIG. Es sollte eine Sache sein von:

port install swig

Ich fand, ich brauche auch:

port install swig-python

Seit März 2012 ist die MacPorts SWIG Version 2.0.4. Wie oben für Linux angemerkt, ist es vielleicht besser, eine ältere Version herunterzuladen. SWIG 2.0.4 scheint einen Fehler zu haben, der das Bauen von Pivy verhindert. Siehe erste Meldung in diesem: Auszug

Dies kann korrigiert werden, indem man die 2 Quellorte bearbeitet, um Dereferenzierungen hinzuzufügen: *arg4, *arg5 an Stelle von arg4, arg5. Jetzt sollte Pivy bauen:

python setup.py build
sudo python setup.py install

Windows

Angenommen, du verwendest Visual Studio 2005 oder höher, solltest du eine Eingabeaufforderung mit 'Visual Studio 2005 Command prompt' aus dem Werkzeugmenü öffnen. Wenn der Python-Interpreter noch nicht im Systempfad liegt, mache

set PATH=path_to_python_2.5;%PATH%

Um mit pivy arbeiten zu können, solltest du dir die neuesten Quellen aus dem Repositorium des Projekts besorgen:

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

Dann brauchst Du ein Werkzeug namens SWIG, um den C++ Code für die Python Bindungen zu erzeugen. Es wird empfohlen, die Version 1.3.25 von SWIG zu verwenden, nicht die neueste Version, da Pivy im Moment nur mit 1.3.25 korrekt funktioniert. Lade die Binärdateien für 1.3.25 von http://www.swig.org herunter. Entpacke sie dann und füge sie von der Kommandozeile aus dem Systempfad hinzu

set PATH=path_to_swig_1.3.25;%PATH%

und setze COINDIR auf den entsprechenden Pfad

set COINDIR=path_to_coin

Unter Windows erwartet die Pivy Konfigurationsdatei standardmäßig SoWin anstelle von SoQt. Ich habe keinen naheliegenden Weg gefunden, um mit SoQt zu bauen, also habe ich die Datei setup.py direkt modifiziert. In Zeile 200 einfach den Teil 'sowin' : ('gui._sowin', 'sowin-config', 'pivy.gui.') entfernen (die schließende Klammer nicht entfernen).

Danach gehe zu den pivy Quellen und rufe

python setup.py build

was die Quelldateien erstellt. Es kann sein, dass du einen Kompilierer Fehler bekommst, weil mehrere Kopfdateien nicht gefunden wurden. In diesem Fall passe die INCLUDE Variable an

set INCLUDE=%INCLUDE%;path_to_coin_include_dir

und wenn die SoQt Kopfzeilen nicht an der gleichen Stelle wie die Coin Kopfzeilen sind auch

set INCLUDE=%INCLUDE%;path_to_soqt_include_dir

und schließlich die Qt Kopfzeilen

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

Wenn du die Express Edition von Visual Studio verwendest, erhälst du möglicherweise eine Python-keyerror-Ausnahme. In diesem Fall musst Du ein paar Dinge in der Datei msvccompiler.py, die sich in deiner Pythoninstallation befindet, ändern.

Gehe zur Zeile 122 und ersetze die Zeile

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

mit

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

Dann versuche es noch einmal. Wenn du einen zweiten Fehler erhältst, wie

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

Du must auch Zeile 128 ersetzen

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

mit

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

Versuche es noch einmal. Wenn du wieder einen Fehler wie

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.

dann solltest du die Umgebungsvariablen DISTUTILS_USE_SDK und MSSDK prüfen mit

echo %DISTUTILS_USE_SDK%
echo %MSSDK%

Wenn noch nicht gesetzt, dann setze ihn einfach z.B. auf 1

set DISTUTILS_USE_SDK=1
set MSSDK=1

Nun kann es zu einem Compilerfehler kommen, bei dem ein 'const char*' nicht in ein 'char*' umgewandelt werden kann. Um das zu beheben, musst du nur vorher eine 'const' in die entsprechenden Zeilen schreiben. Es sind sechs Zeilen zu korrigieren. Danach kopiere das generierte Pivy-Verzeichnis an einen Ort, wo der Python-Interpreter in FreeCAD es finden kann.

Anwendung

Um zu überprüfen, ob Pivy korrekt installiert ist:

import pivy

Um pivy Zugriff auf den FreeCAD Szenengraphen zu haben, gehe wie folgt vor:

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

Du kannst nun den FCSceneGraph mit dem dir() Befehl untersuchen.

Zusätzliche Dokumentation

Leider ist die Dokumentation über pivy im Netz immer noch fast nicht vorhanden. Aber du könntest die Coin-Dokumentation nützlich finden, da pivy einfach Coin Funktionen, Knoten und Methoden in Python übersetzt, alles behält den gleichen Namen und die gleichen Eigenschaften, wobei der Unterschied in der Syntax zwischen C und Python berücksichtigt wird:

Du kannst dir auch die Datei Draft.py im FreeCAD Mod/Draft Ordner ansehen, da sie starken Gebrauch von pivy macht.

pyCollada

  • Startseite: http://pycollada.github.com
  • Lizenz: BSD
  • optional, notwendig um den Import und Export von Collada-Dateien (.DAE) zu ermöglichen

pyCollada ist eine Python-Bibliothek, die es Programmen ermöglicht, Dateien Collada (*.DAE) zu lesen und zu schreiben. Wenn pyCollada auf Ihrem System installiert ist, ist FreeCAD in der Lage, den Import und Export im Collada Dateiformat zu handhaben.

Installation

Linux

sudo apt-get install python3-collada

Du kannst überprüfen, ob pycollada korrekt installiert wurde, indem du in einer Python-Konsole eingibst:

import collada

Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK

Windows

Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK. Unter Windows, da 0.15 pycollada sowohl in der FreeCAD Version als auch in den Entwickler Builds enthalten ist, so dass keine zusätzlichen Schritte notwendig sind.

MacOS

Wenn du den Homebrew Build von FreeCAD verwendest, kannst du pycollada mit pip in dein System Python installieren.

Wenn du pip installieren musst:

$ sudo easy_install pip

Installiere pycollada:

$ sudo pip install pycollada

Wenn du eine binäre Version von FreeCAD verwendest, kannst du pip anweisen, pycollada in die Site Pakete innerhalb von FreeCAD.app zu installieren:

$ pip install --target="/Applications/FreeCAD.app/Contents/lib/python2.7/site-packages" pycollada

oder nach dem Herunterladen des pycollada Codes

$ 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

IfcOpenShell

IFCOpenShell ist eine derzeit in Entwicklung befindliche Bibliothek, die es erlaubt, Dateien Industry Foundation Classes (*.IFC) zu importieren (und bald auch zu exportieren). IFC ist eine Erweiterung des STEP-Formats und wird zum Standard in [hhttps://de.wikipedia.org/wiki/Building_Information_Modeling BIM]-Arbeitsabläufen. Wenn ifcopenshell korrekt auf Ihrem System installiert ist, wird das FreeCAD Arch-Arbeitsgebiet es erkennen und zum Importieren von IFC-Dateien verwenden, anstelle des eingebauten rudimentären Importeurs. Da ifcopenshell wie FreeCAD auf OpenCasCade basiert, ist die Qualität des Imports sehr hoch und erzeugt hochwertige Volumenkörpergeometrie.

Installation

Da ifcopenshell ziemlich neu ist, wirst du es wahrscheinlich selbst kompilieren müssen.

Linux

Du brauchst ein paar auf deinem System installierte Entwicklungspakete, um ifcopenshell zu kompilieren:

liboce-*-dev
python-dev
swig

aber da FreeCAD auch alle benötigt, benötigst Du, wenn Du FreeCAD kompilieren kannst, keine zusätzlichen Abhängigkeiten, um IfcOpenShell zu kompilieren.

Hole dir den neuesten Quellcode von hier:

git clone https://github.com/IfcOpenShell/IfcOpenShell.git

Der Bauprozess ist sehr einfach:

mkdir ifcopenshell-build
cd ifcopenshell-build
cmake ../IfcOpenShell/cmake

oder, wenn du oce statt opencascade benutzt:

cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake

Da ifcopenshell hauptsächlich für Blender gemacht ist, verwendet es standardmäßig Python3. Um es innerhalb von FreeCAD zu verwenden, musst du es gegen die gleiche Version von Python kompilieren, die auch von FreeCAD verwendet wird. Daher musst du möglicherweise die Python-Version mit zusätzlichen cmake-Parametern erzwingen (passe die Python-Version an Deine an):

cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake

Dann:

make
sudo make install

Du kannst überprüfen, ob ifcopenshell korrekt installiert wurde, indem du in einer Python-Konsole eingibst:

import ifcopenshell

Wenn es nichts zurückgibt (keine Fehlermeldung), dann ist alles OK

Windows

Hinweis: Offizielle FreeCAD Installationsprogramme, die von der FreeCAD Webseite/Github Seite bezogen wurden, enthalten jetzt bereits ifcopenshell.

Kopiert von der IfcOpenShell README Datei

Anwendern wird empfohlen, die Visual Studio .sln Datei im Ordner win/ zu verwenden. Für Windows-Anwender ist eine vorkompilierte Open CASCADE Version auf der OpenCASCADE-Webseite erhältlich. Lade diese Version herunter, installiere sie und stelle die Pfade zu den OpenCASCADE-Header- und Bibliotheksdateien für MS Visual Studio C++ zur Verfügung.

Um den IfcPython wrapper zu erstellen, muss SWIG installiert werden. Bitte lade die aktuelle swigwin Version von der SWIG-Webseite herunter. Nach dem Entpacken der .zip-Datei füge bitte den entpackten Ordner in die Umgebungsvariable PATH ein. Python muss installiert sein, bitte gib die Include- und Bibliotheks-Pfade in Visual Studio an.

Verweise

Tutorium Import/Export IFC - compiling IfcOpenShell

LazyLoader

LazyLoader ist ein Python-Modul, das ein zeitversetztes Laden ermöglicht, während der Import immer noch am Anfang des Skripts erfolgt. Dies ist nützlich, wenn du ein anderes Modul importierst, das langsam ist und im gesamten Skript mehrmals verwendet wird. Die Verwendung von LazyLoader kann die Startzeiten des Arbeitsbereichs verbessern, aber das Modul muss bei der ersten Verwendung immer noch geladen werden.

Installation

LazyLoader ist in FreeCAD v0.19 enthalten

Anwendung

Du musst LazyLoader importieren und dann den Import des Moduls, das zurückgestellt werden soll, ändern.

from lazy_loader.lazy_loader import LazyLoader
Part = LazyLoader('Part', globals(), 'Part')

Die Variable Part gibt an, wie das Modul in deinem Skript benannt ist. Du kannst "Part als P importieren" wiederholen, indem du die Variable änderst.

P = LazyLoader('Part', globals(), 'Part')

You can also import a module from a package.

utils = LazyLoader('PathScripts', globals(), 'PathScripts.PathUtils')

Du kannst keine Einzelfunktionen importieren, sondern nur ganze Module.

Verweise