What is pythonOCC?
pythonOCC is a 3D CAD/CAE/PLM development framework for the Python programming language. It provides features such as advanced topological and geometrical operations, data exchange (STEP, IGES, STL import/export), 2D and 3D meshing, rigid body simulation, parametric modeling.
What is *not* pythonOCC?
- pythonOCC is not a CAD software as usually understood: excellent products are available on the market, whether they are proprietary/commercial (e.g. Catia V5™, SolidWorks™, SolidEdge™ etc.) or free and open source/commercial software as FreeCad for instance. Unlike these products, pythonOCC does not provide any advanced Graphical User Interface (GUI): development team focuses on adding value for engineers or architects, with high expectations, rather than spending time on GUI polishments.
- pythonOCC is not a low level C++ API intended to C/C++ software developers. The python programming language offers a radically more efficient way to design complex shapes/products.
As a consequence, pythonOCC is an intermediate layer between these two levels, and adresses both users (end-user engineers/designers, software developers).
What are the underlying technologies ?
Development team chose to rely on the strength of both :
- the python programming language, especially suitable for dynamic programming, also considered as a perfect gluing language
- some of the best quality free and open source industrial C++ libraries : the Open CASCADE Community Edition 3D modeling kernel, SALOME GEOM for parametric modeling and SALOME SMESH for advanced meshing features, both developed by the Open CASCADE company.
This meeting results in some library which is more than a basic wrapper : in a sense, the whole is greater than the sum of its part. The handling of geometry, topology or meshes using python offers another way of thinking CAD (at least, that’s our secret hope).
What is Agile CAD development?
pythonOCC introduces the concept of Agile CAD development. Being agile means being quick and robust at the same time, in other words being able to quickly, efficiently and safely react to any kind of perturbation. Agile CAD development is enabled by the combination of the three following points that guide pythonOCC development:
- dynamic programming
- use of free and open source software
- use of open standards
Who is it intended for?
- software developers who want to build CAD/CAE specific applications on top of pythonOCC,
- R&D engineers who want to quickly prototype a demonstrator, validate a new algorithm or a new concept,
- architects or designers, who wish to have a deep control over their topology and who feel blocked by the limitations of the scripting language of their favorite tool (VB or VBA in most cases),
- researchers from the CAD/CAE/PLM domains, who are not necessarily talented developers but however want to implement their ideas, if possible by using a low cost development environment,
- teachers from the CAD/CAE/PLM or mechanical engineering fields.
So what are the features of pythonOCC? And what can I do with it?
Go and browse the Features Overview page.