The FreeCAD source code/pt-br: Difference between revisions

From FreeCAD Documentation
(Created page with "* O FreeCAD é um ávido usuário de '''outras bibliotecas de código aberto'''. Além do Python e do Qt, usados pelo núcleo e por quase todos os módulos, as duas bibliotecas principais utilizadas em grande parte dos módulos são [https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCascade Technology] (OCCT) e [http://www.coin3d.org/ Coin3D]. O OpenCascade é utilizado para criar e gerenciar toda a geometria sólida do FreeCAD, enquanto o Coin3D é usado para ge...")
(Created page with "Os '''objetos de documento''' do FreeCAD, que são todos os objetos contidos em um documento do FreeCAD, são aqueles que aparecem na Visualização de Árvore na GUI e em FreeCAD.ActiveDocument.Objects() em Python. Eles podem ou não ter dados geométricos e podem ou não mostrar algo na visualização 3D. Eles estão sempre divididos em partes App e Gui. A parte Gui não é carregada durante a execução no modo console. Objetos geométricos padrão, como os encontrado...")
Line 18: Line 18:
* O FreeCAD é um ávido usuário de '''outras bibliotecas de código aberto'''. Além do Python e do Qt, usados pelo núcleo e por quase todos os módulos, as duas bibliotecas principais utilizadas em grande parte dos módulos são [https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCascade Technology] (OCCT) e [http://www.coin3d.org/ Coin3D]. O OpenCascade é utilizado para criar e gerenciar toda a geometria sólida do FreeCAD, enquanto o Coin3D é usado para gerenciar a visualização 3D. O OpenCascade é predominantemente utilizado no mundo do App, enquanto o Coin3D é exclusivamente usado no mundo do Gui. Uma compreensão básica do OpenCascade é fundamental para realizar qualquer trabalho relacionado à geometria com o FreeCAD. Módulos mais específicos fazem uso de bibliotecas mais específicas, e como geralmente não há restrições neste ponto além de garantir que estas bibliotecas estejam facilmente disponíveis em todas as plataformas, a lista de dependências de uma instalação completa do FreeCAD com todos os seus módulos pode ser bastante extensa.
* O FreeCAD é um ávido usuário de '''outras bibliotecas de código aberto'''. Além do Python e do Qt, usados pelo núcleo e por quase todos os módulos, as duas bibliotecas principais utilizadas em grande parte dos módulos são [https://en.wikipedia.org/wiki/Open_Cascade_Technology OpenCascade Technology] (OCCT) e [http://www.coin3d.org/ Coin3D]. O OpenCascade é utilizado para criar e gerenciar toda a geometria sólida do FreeCAD, enquanto o Coin3D é usado para gerenciar a visualização 3D. O OpenCascade é predominantemente utilizado no mundo do App, enquanto o Coin3D é exclusivamente usado no mundo do Gui. Uma compreensão básica do OpenCascade é fundamental para realizar qualquer trabalho relacionado à geometria com o FreeCAD. Módulos mais específicos fazem uso de bibliotecas mais específicas, e como geralmente não há restrições neste ponto além de garantir que estas bibliotecas estejam facilmente disponíveis em todas as plataformas, a lista de dependências de uma instalação completa do FreeCAD com todos os seus módulos pode ser bastante extensa.


* FreeCAD's '''document objects''', which are all the objects contained in a FreeCAD document, are what appear in the Tree View in the GUI and in FreeCAD.ActiveDocument.Objects() in Python. They may or may not have any geometrical data, and may or may not show anything in the 3D view. They are always separated in App and Gui parts. The Gui part is not loaded when running in console mode. Standard geometrical objects, such as those found in Part or PartDesign, have their OpenCascade-based geometry defined in their App counterpart, while the Gui counterpart (also usually called "View Provider") is responsible for creating a coin3D representation of that geometry, which will be inserted into the main coin3D scene graph of the 3D view.
Os '''objetos de documento''' do FreeCAD, que são todos os objetos contidos em um documento do FreeCAD, são aqueles que aparecem na Visualização de Árvore na GUI e em FreeCAD.ActiveDocument.Objects() em Python. Eles podem ou não ter dados geométricos e podem ou não mostrar algo na visualização 3D. Eles estão sempre divididos em partes App e Gui. A parte Gui não é carregada durante a execução no modo console. Objetos geométricos padrão, como os encontrados em Part ou PartDesign, têm sua geometria baseada no OpenCascade definida em sua contraparte App, enquanto a contraparte Gui (também geralmente chamada de "Provedor de Visualização") é responsável por criar uma representação em Coin3D dessa geometria, que será inserida no gráfico de cena principal em 3D da visualização.


* The basic directory structure of the source code is organized like this:
* The basic directory structure of the source code is organized like this:

Revision as of 16:02, 13 March 2024

O FreeCAD source code é gerenciado com git e é público, aberto e disponível sob a licença LGPL. Pode ser copiado, baixado, lido, analisado, redistribuído e modificado por qualquer pessoa. Se você planeja fazer modificações que deseja ver incluídas no próprio código oficial, lembre-se de que suas alterações precisarão ser aprovadas pelos desenvolvedores do FreeCAD, por isso é aconselhável discutir primeiro suas intenções em [http: // forum.freecadweb.org forum] para evitar o risco de ter suas alterações rejeitadas por algum motivo que você não previu.

Abaixo estão algumas dicas e informações úteis para colocar você nos trilhos, caso esteja interessado em explorar o código do FreeCAD.

  • O código do FreeCAD é principalmente programado em C++, mas depende significativamente do Python. Uma grande parte de sua funcionalidade é fornecida através de ligações Python associadas, e faz parte da filosofia central do desenvolvimento do FreeCAD sempre oferecer acesso via Python a qualquer novo recurso implementado em C++. Para alcançar isso, o CPython (as ferramentas de interface C fornecidas pelo próprio Python) e especialmente o PyCXX são amplamente utilizados em todo o FreeCAD. Além disso, muitos modelos e ferramentas personalizadas são fornecidos no próprio código do FreeCAD para facilitar a criação de ligações Python associadas. Algumas partes mais de alto nível do código do FreeCAD são totalmente codificadas em Python.
  • O código fonte do FreeCAD é completamente multiplataforma, e é dedicado um grande cuidado para garantir que a aplicação possa ser utilizada em tantas plataformas e configurações quanto possível, sem causar dificuldades aos usuários existentes. Portanto, sempre que possível, são evitadas novas versões de componentes necessários até que estejam amplamente disponíveis em todas as plataformas, e a compatibilidade com versões anteriores (a capacidade de abrir um arquivo criado com uma versão antiga do FreeCAD em uma versão mais recente) é uma prioridade importante.
  • Quase todas as funcionalidades do FreeCAD são divididas em duas partes distintas, denominadas App e Gui. Essa divisão é refletida em toda a estrutura de arquivos do código-fonte. O módulo App contém todas as funcionalidades que precisam ser executadas no modo de console puro (sem GUI). Como o FreeCAD pode ser compilado e executado sem sua Interface Gráfica do Usuário, o código no módulo App é independente de qualquer biblioteca relacionada à GUI. Já o módulo Gui contém todo o código necessário para ser executado no modo GUI e é construído em torno da funcionalidade do módulo App.
  • A maioria das funcionalidades do FreeCAD é implementada em Módulos. O FreeCAD sem seus módulos é apenas uma janela contêiner simples que pode abrir e salvar arquivos. Todas as ferramentas de geometria e bancadas de trabalho são implementadas nos Módulos. Esses módulos podem ser escritos em C++, em Python ou combinando o melhor dos dois mundos. Eles podem ser módulos híbridos C++/Python, nos quais a funcionalidade central sólida é programada em C++ e as ferramentas para o usuário final são escritas em Python, tornando-as mais fáceis de estender e adaptar pelos usuários do FreeCAD. Cada módulo geralmente define e cria uma Bancada de Trabalho na interface do FreeCAD, quando usado no modo GUI, geralmente com o mesmo nome, mas não é obrigatório que os módulos contenham uma bancada de trabalho.
  • Os módulos do FreeCAD frequentemente dependem de outros módulos. A maioria dos módulos que utilizam geometria sólida dependem do módulo Part, que é o mais fundamental do FreeCAD e implementa a maior parte da interface com o OpenCascade. Embora outros módulos possam usar diretamente a funcionalidade do OpenCascade, geralmente eles contam com funções de nível mais alto fornecidas pelo Part.
  • Os módulos são sempre inicializados a partir do Python. Mesmo que sejam escritos inteiramente em C++, eles sempre incluem uma estrutura mínima do Python/CPython.
  • O FreeCAD é um ávido usuário de outras bibliotecas de código aberto. Além do Python e do Qt, usados pelo núcleo e por quase todos os módulos, as duas bibliotecas principais utilizadas em grande parte dos módulos são OpenCascade Technology (OCCT) e Coin3D. O OpenCascade é utilizado para criar e gerenciar toda a geometria sólida do FreeCAD, enquanto o Coin3D é usado para gerenciar a visualização 3D. O OpenCascade é predominantemente utilizado no mundo do App, enquanto o Coin3D é exclusivamente usado no mundo do Gui. Uma compreensão básica do OpenCascade é fundamental para realizar qualquer trabalho relacionado à geometria com o FreeCAD. Módulos mais específicos fazem uso de bibliotecas mais específicas, e como geralmente não há restrições neste ponto além de garantir que estas bibliotecas estejam facilmente disponíveis em todas as plataformas, a lista de dependências de uma instalação completa do FreeCAD com todos os seus módulos pode ser bastante extensa.

Os objetos de documento do FreeCAD, que são todos os objetos contidos em um documento do FreeCAD, são aqueles que aparecem na Visualização de Árvore na GUI e em FreeCAD.ActiveDocument.Objects() em Python. Eles podem ou não ter dados geométricos e podem ou não mostrar algo na visualização 3D. Eles estão sempre divididos em partes App e Gui. A parte Gui não é carregada durante a execução no modo console. Objetos geométricos padrão, como os encontrados em Part ou PartDesign, têm sua geometria baseada no OpenCascade definida em sua contraparte App, enquanto a contraparte Gui (também geralmente chamada de "Provedor de Visualização") é responsável por criar uma representação em Coin3D dessa geometria, que será inserida no gráfico de cena principal em 3D da visualização.

  • The basic directory structure of the source code is organized like this:
    • App: contains the FreeCAD console-mode application, defines basic structures and base classes for document objects, that are used by modules to build their own.
    • Base: contains core functionality commonly used everywhere in FreeCAD: 3D vectors, units, matrices, placements, etc.
    • Gui: contains the FreeCAD GUI-mode application, defines the 3D view, contains many tools and functions to be used by workbenches to interact with the interface and with the 3D view, defines base classes for view providers.
    • Doc: contains mainly an all-in-one Qt help file generated from this wiki.
    • Mod: contains all the modules, themselves further separated into App and Gui (except for python modules, which don't always follow that rule so clearly).

Related

  • Source Code Management
  • The Power users hub contains a lot of documentation about modules, OpenCascade and Coin3D, mainly for the Python programmer. However, as the functionality is similar, these pages will be of interest to the C++ programmer as well.
  • FCStd - the FreeCAD file format