OpenCASCADE

From FreeCAD Documentation
This page is a translated version of the page OpenCASCADE and the translation is 100% complete.

Beschreibung

OpenCASCADE Technologie, kurz OCC oder OCCT, ist eine Sammlung von C++ Bibliotheken, die zusammen einen professionellen Computer-Aided-Design-Kernel (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 Modul Part umgesetzt und zur Verfügung gestellt, von dem die meisten anderen Arbeitsbereiche abhängen. Es enthält auch interne Funktionen zum Lesen und Schreiben verschiedener Dateiformate wie STEP und IGES und zum Ausführen von 2D-Projektionen, die zur Erstellung technischer Zeichnungen in TechDraw verwendet werden können.

OpenCASCADE stellt dem Arbeitsbereich Part die grundlegenden geometrischen Klassen und Zeichenfunktionen zur Verfügung, welche 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 den Arbeitsbereich OpenSCAD 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. Wird FreeCAD über einen der Verweise auf der Seite Herunterladen geladen, wird es auch 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.

Zusammenfassend lässt sich sagen, dass Geometrie-Grundelemente "formlose" Bausteine sind, während topologische Formen die darauf aufgebauten realen Objekte sind.

Eine vollständige Liste aller Grundelemente und Formen findet man in der OCC-Dokumentation (Alternativ: sourcearchive.com) wenn man nach Geom_* (für geometrische Grundelemente) und TopoDS_* (für Formen) sucht. Dort kann man auch mehr über die Unterschiede zwischen ihnen lesen. Bitte beachte, dass die offizielle OCC-Dokumentation nicht online verfügbar ist (Du musst ein Archiv herunterladen) und sich hauptsächlich an Programmierer und nicht an Endbenutzer richtet. Aber hoffentlich findest du hier genügend Informationen, um anzufangen. Siehe auch Benutzerhandbuch zur Datenmodellierung.

Auf einer sehr hohen Stufe sagt die Topologie aus, aus welchen Teilen ein Objekt besteht und welche logischen Beziehungen zwischen ihnen bestehen. Eine Form besteht aus einem bestimmten Satz von Flächen. Eine Fläche wird durch einen bestimmten Satz von Kanten begrenzt. Zwei Flächen sind benachbart, wenn sie eine gemeinsame Kante besitzen.

Die Topologie allein sagt dir nichts über die Größe, Krümmung oder 3D-Positionen jedes dieser Teile. Jedes Teil der Topologie weiß jedoch über seine zugrundeliegende Geometrie Bescheid. Eine Fläche weiß, auf welcher Oberfläche sie liegt. Eine Kante weiß, auf welcher Kurve sie liegt. Die Geometrie weiß über Krümmung und Lage im Raum Bescheid.. - Quelle


So definiert die Topologie die Beziehung zwischen einfachen geometrischen Einheiten, die miteinander verbunden werden können, um komplexe Formen darzustellen. - Benutzerhandbuch zur Datenmodellierung

Hinweis: Nur 3 Arten von topologischen Objekten haben geometrische Abbilder - Knoten, Kante und Fläche (Quelle).

Die geometrischen Typen lassen sich tatsächlich in zwei große Gruppen unterteilen: Kurven und Oberflächen. Aus den Kurven (Linie, Kreis, ...) kann man direkt eine Kante bauen, aus den Oberflächen (Ebene, Zylinder,...) kann man eine Fläche bauen. So ist beispielsweise die geometrische Grundlinie unbegrenzt, d.h. sie wird durch einen Basisvektor und einen Richtungsvektor definiert, während ihre Formdarstellung irgendetwas sein muss, das durch einen Start- und Endpunkt begrenzt ist. Und ein Quader - ein Festkörper - kann durch sechs begrenzte Ebenen erstellt werden.

Von einer Kante oder Fläche aus kannst du auch zu seinem geometrischen Grundelement-Gegenstück zurückkehren.

So können aus Formen sehr komplexe Teile gebaut oder umgekehrt alle Unterformen extrahiert werden, aus denen eine komplexere Form besteht.

Die Klasse Part::TopoShape ist das geometrische Objekt, das auf dem Bildschirm zu sehen ist. Im Wesentlichen verwenden alle Arbeitsbereiche intern diese TopoFormen um Kanten, Flächen und Festkörper zu erstellen und anzuzeigen.

Verwandt