OpenCASCADE
Description
OpenCASCADE Technology, OCC ou OCCT pour faire court, est une collection de bibliothèques C ++ qui constituent ensemble un noyau professionnel de conception assistée par ordinateur (CAO) pour la modélisation 2D et 3D objets et la construction d'outils spécialisés pour la fabrication, la simulation ou la visualisation. OpenCASCADE est le cœur des fonctionnalités géométriques de FreeCAD.
Les classes géométriques d'OCCT sont pour la plupart implémentées et rendues disponibles dans FreeCAD via l'atelier Part, dont dépendent la plupart des autres ateliers. Il fournit également des fonctions internes pour lire et écrire différents formats de fichiers comme STEP et IGES, et pour effectuer des projections 2D, qui peuvent être utilisées pour créer des dessins techniques dans l'atelier TechDraw.
OpenCASCADE fournit les classes géométriques de base et les fonctions de dessin à l'atelier Part qui sont ensuite utilisées par tous les ateliers de FreeCAD.
OpenCASCADE ne doit pas être confondu avec OpenSCAD, qui est un autre projet open source pour construire des modèles 3D et qui est accessible via l'atelier OpenSCAD.
OpenCASCADE est un logiciel libre régi par les termes de la GNU Lesser General Public License (LGPL) version 2.1 avec une exception supplémentaire.
Installation
OpenCASCADE est un composant central de FreeCAD, donc si vous installez FreeCAD à partir de l'un des liens de la page Téléchargement, vous l'aurez installé et aucune autre installation n'est nécessaire.
Cependant, si vous souhaitez développer des applications qui utilisent OCCT ou si vous souhaitez contribuer au code C ++ à FreeCAD, vous devez installer les fichiers de développement d'OCCT. Dans ce cas, la procédure est expliquée dans Compilation pour chacun des principaux systèmes, Linux, Windows et MacOS.
Édition communautaire
Une "édition communautaire" d'OpenCASCADE, abrégée OCE, a été publiée en 2011, basée sur les sources officielles d'OpenCASCADE (OCCT) de la version 6.5. En théorie, l'édition communautaire OCE devrait être compatible avec la version principale OCCT dans la plupart des aspects, tout en ayant du code supplémentaire fourni par la communauté.
Cependant, cette distribution alternative a arrêté le développement actif vers 2017 et a pris du retard par rapport à la version principale en termes de fonctionnalités et de corrections de bogues. Pour cette raison, depuis FreeCAD v0.17, FreeCAD est compilé exclusivement avec OCCT et OCE n'est pas testé.
Dans certaines distributions Linux plus anciennes, FreeCAD est compilé avec OCE 0.18, équivalent à OCCT 6.9.x, causant divers problèmes qui ont déjà été résolus dans les principales versions d'OCCT 7.x. Si tel est le cas, essayez de supprimer OCE et d'installer OCCT à la place. Si ce n'est pas possible, utilisez AppImage pour obtenir un FreeCAD récent avec une version OCCT mise à jour.
Histoire
Le noyau géométrique Cas.CADE était à l'origine fermé, mais il est devenu open source sous son nom actuel vers l'an 2000. Peu de temps après, le projet FreeCAD a été lancé, les fichiers les plus anciens datant de janvier 2001. En savoir plus dans Histoire.
La version 6.6 d'OpenCASCADE et les versions antérieures étaient régies par sa propre "licence publique OCCT", ce qui en faisait un "logiciel libre". Ce problème a été résolu avec la sortie d'OCCT 6.7 (2013), lors de l'adoption de la licence LGPL2.
OCCT concepts géométriques
In OpenCascade terminology, we distinguish between geometric primitives and topological shapes. A geometric primitive can be a point, a line, a circle, a plane, etc. or even some more complex types like a B-Spline curve or a surface. A shape can be a vertex, an edge, a wire, a face, a solid or a compound of other shapes. The geometric primitives are not made to be directly displayed on the 3D scene, but rather to be used as building geometry for shapes. For example, an edge can be constructed from a line or from a portion of a circle.
In summary, geometry primitives are "shapeless" building blocks, while topological shapes are the real objects built on them.
A complete list of all primitives and shapes refer to the OCC documentation (Alternative: sourcearchive.com) and search for Geom_* (for geometric primitives) and TopoDS_* (for shapes). There you can also read more about the differences between them. Please note that the official OCC documentation is not available online (you must download an archive) and is mostly aimed at programmers, not at end-users. But hopefully you'll find enough information to get started here. Also see Modeling Data User's Guide.
At a very high level, topology tells what pieces an object is made of, and the logical relationships between them. A shape is made of a certain set of faces. A face is bounded by a certain set of edges. Two faces are adjacent if they share a common edge.
Topology alone does not tell you the size, curvature, or 3D locations of any of those pieces. However, each piece of topology does knows about it's underlying geometry. A face knows what surface it lies on. An edge knows what curve it lies on. The geometry knows about curvature and location in space. - Source
Thus, Topology defines the relationship between simple geometric entities, which can be linked together to represent complex shapes. - Modeling Data User's Guide
Note: Only 3 types of topological objects have geometric representations – vertex, edge, and face (Source).
The geometric types actually can be divided into two major groups: curves and surfaces. Out of the curves (line, circle, ...) you can directly build an edge, out of the surfaces (plane, cylinder, ...) a face can be built. For example, the geometric primitive line is unlimited, i.e. it is defined by a base vector and a direction vector while its shape representation must be something limited by a start and end point. And a box -- a solid -- can be created by six limited planes.
From an edge or face you can also go back to its geometric primitive counterpart.
Thus, out of shapes you can build very complex parts or, the other way round, extract all sub-shapes a more complex shape is made of.
The Part::TopoShape
class is the geometrical object that is seen on screen. Essentially all workbenches use these TopoShapes internally to build and display edges, faces, and solids.
En relation
- Site Web principal, opencascade.com
- Portail de développement, dev.opencascade.org
- Technologie OpenCASCADE (OCCT), dernière version
- Glossaire, Open CASCADE
- Technologie en cascade ouverte sur Wikipedia
- OpenCASCADE Community Edition (OCE), repository
![](/images/thumb/8/8f/Power_user_hub.png/24px-Power_user_hub.png)
- Scripts FreeCAD : Python, Introduction à Python, Tutoriel sur les scripts Python, Débuter avec les scripts
- Modules : Modules intégrés, Unités, Quantity
- Ateliers : Création d'atelier, Commands Gui, Les commandes, Installer des ateliers supplémentaires
- Maillages et objets Parts : Scripts Mesh, Script de données topologiques, Conversion objet Mesh en Part, PythonOCC
- Objets paramétriques : Objets créés par script, Viewproviders (Icône personnalisée dans l'arborescence)
- Scénographie : Graphe de scène Coin (Inventor), Pivy
- Interface graphique : Création d'interface, Création d'une boite de dialogue (1, 2, 3, 4, 5), PySide, Exemples PySide débutant, intermédiaire, expérimenté
- Macros : Macros, Comment installer des macros
- Intégration : Intégrer FreeCAD, Intégration de FreeCADGui
- Autre : Expressions, Extraits de codes, Fonction - tracer une ligne, Bibliothèque mathématique vectorielle de FreeCAD (déprécié)