OpenCASCADE/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
(12 intermediate revisions by one other user not shown)
Line 5: Line 5:
== Description ==
== Description ==


[[OpenCASCADE/fr|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.
[[OpenCASCADE/fr|Open CASCADE 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'[[part_Module/fr|atelier Part]], dont dépendent la plupart des autres [[Workbenches/fr|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'[[TechDraw_Workbench/fr|atelier TechDraw]].
Les classes géométriques d'OCCT sont pour la plupart implémentées et rendues disponibles dans FreeCAD via l'[[part_Module/fr|atelier Part]], dont dépendent la plupart des autres [[Workbenches/fr|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'[[TechDraw_Workbench/fr|atelier TechDraw]].
Line 37: Line 37:
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.
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 geometric concepts ==
== 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.
Dans la terminologie OpenCascade, nous faisons la distinction entre les primitives géométriques et les formes (topologiques). Une primitive géométrique peut être un point, une ligne, un cercle, un plan, etc. ou même certains types plus complexes, comme une courbe B-Spline ou une surface. Une forme (shape en anglais) peut être un sommet, une arête, un fil, une face, un solide ou un composé d'autres formes. Les primitives géométriques ne sont pas faites pour être affichées directement sur la scène 3D, mais plutôt pour être utilisées comme géométrie de construction des formes. Par exemple, une arête peut être construite à partir d'une ligne ou d'une partie de cercle.


In summary, geometry primitives are "shapeless" building blocks, while [[Part_TopoShape|topological shapes]] are the real objects built on them.
Pour résumer, les primitives géométriques sont des blocs de construction "informes", tandis que les [[Part_TopoShape/fr|entités géométriques spatiales]]sont les véritables formes construites sur ces blocs.


A complete list of all primitives and shapes refer to the [http://www.opencascade.org/org/doc/ OCC documentation] (Alternative: [https://www.opencascade.com/doc/occt-7.4.0/refman/html/ 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 [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Modeling Data User's Guide].
Une liste complète de toutes les primitives et formes se réfère à la [http://www.opencascade.org/org/doc/ documentation OCC] (Alternative: [https://www.opencascade.com/doc/occt-7.4.0/refman/html/ sourcearchive.com]) et recherchez '''Geom_*''' (pour les primitives géométriques) et '''TopoDS_*''' (pour les formes). Là, vous pouvez également en savoir plus sur les différences entre eux. Veuillez noter que la documentation officielle de l'OCC n'est pas disponible en ligne (vous devez télécharger une archive) et est principalement destinée aux programmeurs, pas aux utilisateurs finaux. Mais j'espère que vous trouverez suffisamment d'informations pour commencer ici. Voir également [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Guide de l'utilisateur des données de modélisation].


<blockquote style="color: slategray">''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.''</blockquote>
<blockquote style="color: slategray">''À un niveau très élevé, la topologie indique de quelles pièces un objet est fait et les relations logiques entre elles. Une forme est constituée d'un certain ensemble de faces. Une face est délimitée par un certain ensemble d'arêtes. Deux faces sont adjacentes si elles partagent une arête commune.''</blockquote>


<blockquote style="color: slategray">''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.'' - [https://www.opencascade.com/content/geometry-and-topology Source]</blockquote>
<blockquote style="color: slategray">''La topologie seule ne vous indique pas la taille, la courbure ou les emplacements 3D de ces pièces. Cependant, chaque élément de la topologie connaît sa géométrie sous-jacente. Une face sait sur quelle surface elle se trouve. Un bord sait sur quelle courbe il se trouve. La géométrie connaît la courbure et l'emplacement dans l'espace.'' - [https://www.opencascade.com/content/geometry-and-topology Source]</blockquote>


<hr />
<hr />


<blockquote style="color: slategray">''Thus, Topology defines the relationship between simple geometric entities, which can be linked together to represent complex shapes.'' - [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Modeling Data User's Guide]</blockquote>
<blockquote style="color: slategray">''Ainsi, la topologie définit la relation entre des entités géométriques simples qui peuvent être liées entre elles pour représenter des formes complexes.'' - [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Modeling Data User's Guide]</blockquote>


[[File:ClassTopoDS_Shape_inherit_graph.png]]
[[File:ClassTopoDS_Shape_inherit_graph.png]]


'''Note:''' Only 3 types of topological objects have geometric representations vertex, edge, and face ([https://opencascade.blogspot.com/2009/02/topology-and-geometry-in-open-cascade.html Source]).
'''Remarque:''' Seuls 3 types d'objets topologiques ont des représentations géométriques - sommet, arête et face ([https://opencascade.blogspot.com/2009/02/topology-and-geometry-in-open- cascade.html 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.
Les types géométriques peuvent en fait être divisés en deux groupes principaux: les courbes et les surfaces. Sur les courbes (ligne, cercle...) vous pouvez directement créer une arête, sur les surfaces (plan, cylindre...) une face peut être construite. Par exemple, la ligne primitive géométrique est illimitée, c'est à dire qu'elle est définie par un vecteur de base et un vecteur directeur tandis que la forme associée (et représentée) doit être quelque chose de limité par un début et de fin. Et un cube -- un solide -- peut être créée par six plans limités.


A partir d'une arête ou d'une face, on peut aussi revenir à son équivalent géométrique primitif.
From an edge or face you can also go back to its geometric primitive counterpart.


Ainsi, à partir de formes, vous pouvez créer des pièces très complexes ou, inversement, extraire toutes les sous-formes dont une forme plus complexe est constituée.
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.


[[File:Part_TopoShape_relationships.svg|600px]]
[[File:Part_TopoShape_relationships.svg|600px]]


{{Caption|The {{incode|Part::TopoShape}} class is the geometrical object that is seen on screen. Essentially all workbenches use these [[Part_TopoShape|TopoShapes]] internally to build and display edges, faces, and solids.}}
{{Caption|La classe {{incode|Part::TopoShape}} est l'objet géométrique visible à l'écran. Essentiellement, tous les ateliers utilisent ces [[Part_TopoShape/fr|TopoShapes]] en interne pour créer et afficher des arêtes, des faces et des solides.}}


== En relation ==
== En relation ==

Revision as of 21:15, 12 November 2020

Description

Open CASCADE 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

Dans la terminologie OpenCascade, nous faisons la distinction entre les primitives géométriques et les formes (topologiques). Une primitive géométrique peut être un point, une ligne, un cercle, un plan, etc. ou même certains types plus complexes, comme une courbe B-Spline ou une surface. Une forme (shape en anglais) peut être un sommet, une arête, un fil, une face, un solide ou un composé d'autres formes. Les primitives géométriques ne sont pas faites pour être affichées directement sur la scène 3D, mais plutôt pour être utilisées comme géométrie de construction des formes. Par exemple, une arête peut être construite à partir d'une ligne ou d'une partie de cercle.

Pour résumer, les primitives géométriques sont des blocs de construction "informes", tandis que les entités géométriques spatialessont les véritables formes construites sur ces blocs.

Une liste complète de toutes les primitives et formes se réfère à la documentation OCC (Alternative: sourcearchive.com) et recherchez Geom_* (pour les primitives géométriques) et TopoDS_* (pour les formes). Là, vous pouvez également en savoir plus sur les différences entre eux. Veuillez noter que la documentation officielle de l'OCC n'est pas disponible en ligne (vous devez télécharger une archive) et est principalement destinée aux programmeurs, pas aux utilisateurs finaux. Mais j'espère que vous trouverez suffisamment d'informations pour commencer ici. Voir également Guide de l'utilisateur des données de modélisation.

À un niveau très élevé, la topologie indique de quelles pièces un objet est fait et les relations logiques entre elles. Une forme est constituée d'un certain ensemble de faces. Une face est délimitée par un certain ensemble d'arêtes. Deux faces sont adjacentes si elles partagent une arête commune.

La topologie seule ne vous indique pas la taille, la courbure ou les emplacements 3D de ces pièces. Cependant, chaque élément de la topologie connaît sa géométrie sous-jacente. Une face sait sur quelle surface elle se trouve. Un bord sait sur quelle courbe il se trouve. La géométrie connaît la courbure et l'emplacement dans l'espace. - Source


Ainsi, la topologie définit la relation entre des entités géométriques simples qui peuvent être liées entre elles pour représenter des formes complexes. - Modeling Data User's Guide

Remarque: Seuls 3 types d'objets topologiques ont des représentations géométriques - sommet, arête et face (cascade.html Source).

Les types géométriques peuvent en fait être divisés en deux groupes principaux: les courbes et les surfaces. Sur les courbes (ligne, cercle...) vous pouvez directement créer une arête, sur les surfaces (plan, cylindre...) une face peut être construite. Par exemple, la ligne primitive géométrique est illimitée, c'est à dire qu'elle est définie par un vecteur de base et un vecteur directeur tandis que la forme associée (et représentée) doit être quelque chose de limité par un début et de fin. Et un cube -- un solide -- peut être créée par six plans limités.

A partir d'une arête ou d'une face, on peut aussi revenir à son équivalent géométrique primitif.

Ainsi, à partir de formes, vous pouvez créer des pièces très complexes ou, inversement, extraire toutes les sous-formes dont une forme plus complexe est constituée.

La classe Part::TopoShape est l'objet géométrique visible à l'écran. Essentiellement, tous les ateliers utilisent ces TopoShapes en interne pour créer et afficher des arêtes, des faces et des solides.

En relation