PythonOCC: Difference between revisions

From FreeCAD Documentation
No edit summary
(Marked this version for translation)
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

== Description == <!--T:5-->

<!--T:1-->
<!--T:1-->
[http://www.pythonocc.org/ PythonOCC] is a pretty young and active project that aims at binding the whole range of OpenCasCADe functions into a python module. This is a very different approach than FreeCAD, where only certain components of OpenCasCade are used, resulting in a much simpler structure.
[[PythonOCC|PythonOCC]] is a project that aims at providing the entire range of [[OpenCASCADE|OpenCASCADE Technology]] (OCCT) functions through the [[Python|Python]] module {{incode|OCC}}. This is a different approach from FreeCAD's, where only certain components of OCCT are exposed through the [[Part_Module|Part Workbench]].


<!--T:2-->
<!--T:2-->
PythonOCC, on the other hand, since it provides you access to all of OCC classes and functions, is very complex, but also very powerful. It is therefore a very fine addition to FreeCAD. When you are limited by FreeCAD's available OCC functionality in your python scripts, it's time to load pythonOCC.
PythonOCC, on the other hand, provides access to all OCCT classes and functions so it is complex but also very powerful. Therefore, when you are limited by FreeCAD's OCCT functionality, using {{incode|OCC}} is a good alternative.

== Usage == <!--T:6-->


<!--T:3-->
<!--T:3-->
Currently in the Part module we have the methods: '''Part.__toPythonOCC__()''' and '''Part.__fromPythonOCC__()''' to exchange TopoDS_Shape entities to/from pythonOCC. This allows to use the full power of OCC in python (using pythonocc) and then put the resulting shapes back to FreeCAD.
The [[Part_Module|Part module]] has the methods {{incode|Part.__toPythonOCC__()}} and {{incode|Part.__fromPythonOCC__()}} to exchange {{incode|TopoDS_Shape}} ([[Part_TopoShape|Part TopoShape]]) entities to and from PythonOCC. These methods allow us to use the full power of OCCT in Python and then put the resulting shapes back into FreeCAD objects.

<!--T:7-->
PythonOCC is internally used by the [[Arch_IFC|IFC]] viewer included with the [[IfcOpenShell|IfcOpenShell]] libraries. IfcOpenShell is used to read and write [[Arch_IFC|IFC]] documents with FreeCAD. PythonOCC is only needed to launch IfcOpenShell's integrated viewer, otherwise it is not necessary.

== Installation == <!--T:10-->

<!--T:11-->
PythonOCC must be compiled from source. For this you need to get the corresponding development files for [[OpenCASCADE|OpenCASCADE Technology]] (OCCT) and SWIG. The older version of PythonOCC was intended to wrap around OCE 0.18, the community edition of OCCT 6.9.x, which is now unmaintained. The newest version of PythonOCC is now intended to work with the recent, official OCCT 7.4 version.

<!--T:12-->
Together with OCCT 7.4, PythonOCC requires fairly recent dependencies like Python 3.7, CMake 3.12, and SWIG 3.0.11. Python 2 is no longer supported.

<!--T:13-->
It is also possible to install pre-compiled PythonOCC libraries using [[Conda|Conda]]. For more information and compilation instructions, see the main project's repository, [https://github.com/tpaviot/pythonocc-core tpaviot/pythonocc-core].

== More information == <!--T:8-->


<!--T:4-->
<!--T:9-->
* Project page: [http://www.pythonocc.org/ pythonocc.org]
[[Category:Hubs]]
* Newer version compatible with OCCT 7.4, [https://github.com/tpaviot/pythonocc-core tpaviot/pythonocc-core].
[[Category:Poweruser_Documentation]]
* Older version compatible with OCE 0.18, the community edition of OCCT 6.9.x, [https://github.com/tpaviot/pythonocc tpaviot/pythonocc].
* [https://forum.freecadweb.org/viewtopic.php?f=39&t=33254 IfcPlusPlus compiled on Gentoo - questions and alternatives?]


</translate>
</translate>
{{Powerdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
{{clear}}
{{clear}}

Revision as of 19:10, 29 August 2020

Description

PythonOCC is a project that aims at providing the entire range of OpenCASCADE Technology (OCCT) functions through the Python module OCC. This is a different approach from FreeCAD's, where only certain components of OCCT are exposed through the Part Workbench.

PythonOCC, on the other hand, provides access to all OCCT classes and functions so it is complex but also very powerful. Therefore, when you are limited by FreeCAD's OCCT functionality, using OCC is a good alternative.

Usage

The Part module has the methods Part.__toPythonOCC__() and Part.__fromPythonOCC__() to exchange TopoDS_Shape (Part TopoShape) entities to and from PythonOCC. These methods allow us to use the full power of OCCT in Python and then put the resulting shapes back into FreeCAD objects.

PythonOCC is internally used by the IFC viewer included with the IfcOpenShell libraries. IfcOpenShell is used to read and write IFC documents with FreeCAD. PythonOCC is only needed to launch IfcOpenShell's integrated viewer, otherwise it is not necessary.

Installation

PythonOCC must be compiled from source. For this you need to get the corresponding development files for OpenCASCADE Technology (OCCT) and SWIG. The older version of PythonOCC was intended to wrap around OCE 0.18, the community edition of OCCT 6.9.x, which is now unmaintained. The newest version of PythonOCC is now intended to work with the recent, official OCCT 7.4 version.

Together with OCCT 7.4, PythonOCC requires fairly recent dependencies like Python 3.7, CMake 3.12, and SWIG 3.0.11. Python 2 is no longer supported.

It is also possible to install pre-compiled PythonOCC libraries using Conda. For more information and compilation instructions, see the main project's repository, tpaviot/pythonocc-core.

More information