OpenCASCADE/de: Difference between revisions

From FreeCAD Documentation
(Created page with "== OCCT geometrische Konzepte ==")
(Created page with "In der OpenCascade Terminologie unterscheiden wir zwischen geometrischen Grundelementen (engl.: primitives) und topologischen Formen. Ein geometrisches Grundelement kann ein P...")
Line 39: Line 39:
== OCCT geometrische Konzepte ==
== OCCT geometrische Konzepte ==


In der OpenCascade Terminologie unterscheiden wir zwischen geometrischen Grundelementen (engl.: primitives) und topologischen Formen. Ein geometrisches Grundelement kann ein Punkt, eine Linie, ein Kreis, eine Ebene usw. oder sogar einige komplexere Typen wie eine B-Spline Kurve oder eine Oberfläche sein. Eine Form kann ein Knoten, eine Kante, ein Draht, eine Fläche, ein Solid oder eine Verbindung aus anderen Formen sein. Die geometrischen Grundelemente sind nicht dazu bestimmt, direkt in der 3D Szene dargestellt zu werden, sondern als Baugeometrie für Formen zu dienen. So kann beispielsweise eine Kante aus einer Linie oder aus einem Teil eines Kreises konstruiert werden.
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 [[Part_TopoShape|topological shapes]] are the real objects built on them.
In summary, geometry primitives are "shapeless" building blocks, while [[Part_TopoShape|topological shapes]] are the real objects built on them.

Revision as of 10:11, 5 September 2020

Beschreibung

OpenCASCADE Technologie, OCC oder kurz OCCT, ist eine Sammlung von C++ Bibliotheken, die zusammen einen professionellen Computer Aided Design (CAD)-Kernel für die Modellierung von 2D und 3D Objekten und den Aufbau spezialisierter Werkzeuge für die Fertigung, Simulation oder Visualisierung bilden. OpenCASCADE ist das Herzstück der geometrischen Fähigkeiten von FreeCAD.

Die geometrischen Klassen von OCCT werden in FreeCAD hauptsächlich durch das Part Arbeitsbereich implementiert und verfügbar gemacht, von dem die meisten anderen Arbeitsbereiche abhängen. Es bietet auch interne Funktionen zum Lesen und Schreiben verschiedener Dateiformate wie STEP und IGES sowie zur Durchführung von 2D Projektionen, die zur Erstellung technischer Zeichnungen in TechDraw verwendet werden können.

OpenCASCADE stellt dem Part Arbeitsbereich die grundlegenden geometrischen Klassen und Zeichenfunktionen zur Verfügung, die dann von allen Arbeitsbereichen in FreeCAD verwendet werden.

OpenCASCADE ist nicht zu verwechseln mit OpenSCAD, das ein anderes Open Source Projekt zur Erstellung von 3D Modellen ist und über die OpenSCAD Arbeitsbereich zugänglich ist.

OpenCASCADE ist freie Software und unterliegt den Bedingungen der GNU Lesser General Public License (LGPL) Version 2.1 mit einer zusätzlichen Ausnahme.

Installation

OpenCASCADE ist eine Kernkomponente von FreeCAD. Wenn du FreeCAD über einen der Verknüpfungen auf der Seite Herunterladen erhälst, hast du es installiert, und es ist keine weitere Installation erforderlich.

Wenn du jedoch Anwendungen entwickeln möchtest, die OCCT verwenden, oder C++ Code zu FreeCAD beitragen möchtest, dann musst du die Entwicklungsdateien von OCCT installieren. In diesem Fall wird die Prozedur unter Kompilieren für jedes der Hauptsysteme, Linux, Windows und MacOS, erklärt.

Gemeinschaftsausgabe

Eine "Gemeinschaftsausgabe" von OpenCASCADE, abgekürzt OCE, wurde 2011 veröffentlicht, die auf den offiziellen OpenCASCADE Quellen (OCCT) der Version 6.5 basiert. Theoretisch sollte die Community Edition OCE in den meisten Aspekten mit der Hauptversion OCCT kompatibel sein, wobei einige zusätzliche Codes von der Gemeinschaft beigesteuert werden sollten.

Diese alternative Distribution stoppte jedoch um 2017 die aktive Entwicklung und blieb in Bezug auf Funktionen und Fehlerbehebungen hinter der Hauptversion zurück. Aus diesem Grund wird FreeCAD seit FreeCAD v0.17 ausschließlich mit OCCT kompiliert und OCE wird nicht getestet.

In einigen älteren Linux Distributionen wird FreeCAD gegen OCE 0.18, äquivalent zu OCCT 6.9.x, kompiliert, was verschiedene Probleme verursacht, die bereits in den Hauptversionen von OCCT 7.x gelöst wurden. Wenn dies der Fall ist, versuche, OCE zu entfernen und stattdessen OCCT zu installieren. Falls dies nicht möglich ist, verwende das AnwendungsAbbild, um ein modernes FreeCAD mit einer aktualisierten OCCT Version zu erhalten.

Geschichte

Der geometrische Kernel von Cas.CADE war ursprünglich Closed Source, wurde aber um das Jahr 2000 unter seinem heutigen Namen Open Source. Kurz danach wurde das FreeCAD Projekt gestartet, wobei die ältesten Dateien auf Januar 2001 datiert sind. Lies mehr unter Geschichte.

OpenCASCADE Version 6.6 und früher wurde durch eine eigene öffentliche Lizenz "OCCT public license" reguliert, was es nicht gänzlich zu "freier Software" machte. Dies wurde mit der Veröffentlichung von OCCT 6.7 (2013) gelöst, als es die LGPL2 Lizenz übernahm.

OCCT geometrische Konzepte

In der OpenCascade Terminologie unterscheiden wir zwischen geometrischen Grundelementen (engl.: primitives) und topologischen Formen. Ein geometrisches Grundelement kann ein Punkt, eine Linie, ein Kreis, eine Ebene usw. oder sogar einige komplexere Typen wie eine B-Spline Kurve oder eine Oberfläche sein. Eine Form kann ein Knoten, eine Kante, ein Draht, eine Fläche, ein Solid oder eine Verbindung aus anderen Formen sein. Die geometrischen Grundelemente sind nicht dazu bestimmt, direkt in der 3D Szene dargestellt zu werden, sondern als Baugeometrie für Formen zu dienen. So kann beispielsweise eine Kante aus einer Linie oder aus einem Teil eines Kreises konstruiert werden.

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.

Verwandt