OpenCASCADE

From FreeCAD Documentation
Revision as of 21:27, 24 June 2023 by Dikluwe (talk | contribs) (Created page with "Na terminologia OpenCascade, distinguimos entre primitivas geométricas e formas topológicas. Uma primitiva geométrica pode ser um ponto, uma linha, um círculo, um plano, etc. ou mesmo alguns tipos mais complexos, como uma curva B-Spline ou uma superfície. Uma forma pode ser um vértice, uma borda, um fio, um rosto, um sólido ou um composto de outras formas. As primitivas geométricas não são feitas para serem exibidas diretamente na cena 3D, mas sim para serem us...")
Other languages:

Descrição

OpenCASCADE Technology, OCC ou OCCT para abreviar, é uma coleção de bibliotecas C++ que juntas constituem um kernel profissional de projeto assistido por computador (CAD) para modelagem de objetos 2D e 3D, e construção de ferramentas especializadas para fabricação, simulação ou visualização. O OpenCASCADE é o coração das capacidades geométricas do FreeCAD.

As classes geométricas do OCCT são principalmente implementadas e disponibilizadas no FreeCAD através do modulo Part, do qual a maioria das outras bancadas de trabalho dependem. Ele também fornece funções internas para ler e gravar diferentes formatos de arquivo como STEP e IGES, e para executar projeções 2D, que podem ser usadas para criar desenhos técnicos em TechDraw.

OpenCASCADE fornece as classes geométricas básicas e funções de desenho para o móduloPart, que são então usados por todas as bancadas de trabalho no FreeCAD.

OpenCASCADE não deve ser confundido com OpenSCAD, que é um projeto de código aberto diferente para construir modelos 3D, e que é acessível através da bancada de trabalho OpenSCAD.

OpenCASCADE é software livre regido pelos termos da GNU Lesser General Public License (LGPL) versão 2.1 com uma exceção adicional.

Instalação

OpenCASCADE é um componente central do FreeCAD, então se você obter FreeCAD de um dos links na página Download, você terá ele instalado, e nenhuma instalação adicional é necessária.

No entanto, se você gostaria de desenvolver aplicativos que usam OCCT, ou gostaria de contribuir com código C++ para FreeCAD, então você precisa instalar os arquivos de desenvolvimento do OCCT. Nesse caso, o procedimento é explicado em Compilação para cada um dos principais sistemas, Linux, Windows e MacOS.

Edição comunitária

Uma "edição comunitária" do OpenCASCADE, abreviada OCE, foi lançada em 2011, com base nos fontes oficiais do OpenCASCADE (OCCT) da versão 6.5. Em teoria, a edição da comunidade OCE deve ser compatível com a versão principal OCCT na maioria dos aspectos, tendo algum código adicional contribuído pela comunidade.

No entanto, essa distribuição alternativa parou o desenvolvimento ativo por volta de 2017 e ficou atrás da versão principal em termos de recursos e correções de bugs. Por esta razão, desde o FreeCAD v0.17, o FreeCAD é compilado exclusivamente com OCCT, e o OCE não é testado.

Em algumas distribuições Linux mais antigas, o FreeCAD é compilado contra OCE 0.18, equivalente ao OCCT 6.9.x, causando vários problemas que já foram resolvidos nas principais versões do OCCT 7.x. Se esse for o caso, tente remover o OCE e instalar o OCCT. Se isso não for possível, use o AppImage para obter um FreeCAD moderno com uma versão OCCT atualizada.

História

O kernel geométrico Cas.CADE era originalmente de código fechado, mas tornou-se open source sob seu nome atual por volta do ano 2000. Pouco depois, o projeto FreeCAD foi iniciado, com os arquivos mais antigos sendo datados de janeiro de 2001. Leia mais em História.

OpenCASCADE versão 6.6 e anteriores foram governados por sua própria "licença pública OCCT", o que fez com que não fosse inteiramente "software livre". Isso foi resolvido com o lançamento do OCCT 6.7 (2013), quando adotou a licença LGPL2.

Conceitos geométricos da OCCT

Na terminologia OpenCascade, distinguimos entre primitivas geométricas e formas topológicas. Uma primitiva geométrica pode ser um ponto, uma linha, um círculo, um plano, etc. ou mesmo alguns tipos mais complexos, como uma curva B-Spline ou uma superfície. Uma forma pode ser um vértice, uma borda, um fio, um rosto, um sólido ou um composto de outras formas. As primitivas geométricas não são feitas para serem exibidas diretamente na cena 3D, mas sim para serem usadas como geometria de construção de formas. Por exemplo, uma aresta pode ser construída a partir de uma linha ou de uma parte de um círculo.

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.

Relacionado