Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 34 additions & 37 deletions wiki/Developer_hub.wikitext
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<languages/>
<translate>

<!--T:41-->
{{VeryImportantMessage|The information on this page may be obsolete, see the [https://freecad.github.io/DevelopersHandbook/ Developers Handbook] for up-to-date information.}}

</translate>
Expand All @@ -10,20 +9,23 @@
{{TOCright}}
<translate>

<!--T:2-->
This is the place to come if you want to contribute to the development of the FreeCAD software. Many of the following pages might be outdated. Check the official FreeCAD Developers Handbook for more up to date information: https://freecad.github.io/DevelopersHandbook/

<!--T:3-->
These pages are in the early stage of development. If you can't find the information you are looking for, or have found useful information somewhere we have not linked to, then please leave a comment on the [https://forum.freecad.org/index.php?sid=5f84150e79db8842e277b042077097ff forum] and someone will look into it.

== Developer Documentation == <!--T:32-->
== Getting Started ==

* [https://freecad.github.io/DevelopersHandbook/ Developers Handbook] — The official, continuously updated developer guide
* [https://github.com/FreeCAD/FreeCAD GitHub Repository] — Main FreeCAD source code
* [[Source_code_management|Source Code Management]] — Git workflow for FreeCAD contributors
* [https://github.com/FreeCAD/Addon-Academy Addon Academy] — Learn to create FreeCAD addons and workbenches

== Developer Documentation ==

<!--T:4-->
The developer documentation comprises the following sections:

=== Compiling FreeCAD === <!--T:33-->
=== Compiling FreeCAD ===

<!--T:5-->
* [https://github.com/FreeCAD/FreeCAD GitHub repo]: If you are new to git, read [[Source_code_management|Source code management]]
* [[Compile_on_Windows|Compiling on Windows]]
* [[Compile_on_Linux|Compiling on Linux]]
Expand All @@ -36,32 +38,36 @@ The developer documentation comprises the following sections:
* [[Start_up_and_Configuration|Source documentation]]
* Use [[https://github.com/FreeCAD/FreeCAD/issues|GitHub]] when you have a problem or think you may have found a bug

=== Packaging === <!--T:19-->
=== Packaging ===

<!--T:26-->
[[Packaging|Packaging]] consists in taking the compiled binaries and Python source files of FreeCAD, and distributing them for use in a particular system.

<!--T:20-->
* [[Linux_packaging|Linux packaging]]
** [[Debian_development|Debian development]]
** [[Debian_Unstable|Debian Unstable]]
** [[Git_buildpackage|Git buildpackage]]
* [[Windows_packaging|Windows packaging]]
* [[MacOS_packaging|MacOS packaging]]

=== Build Support Tools === <!--T:34-->
== API Documentation ==

* [https://freecad.github.io/lens-docs/ Lens Docs] — Interactive API documentation browser
* [https://freecad.github.io/SourceDoc/ SourceDoc] — Auto-generated C++ and Python API reference
* [[Base_API|Base API]] — Core FreeCAD base classes
* [[Console_API|Console API]] — Console and logging utilities
* [[Draft_API|Draft API]] — Draft module API reference

=== Build Support Tools ===

<!--T:6-->
* The [[FreeCAD_Build_Tool|FreeCAD Build Tool]]
** [[Workbench_creation|Adding an application module]] to FreeCAD
* [[Debugging|Debugging]] FreeCAD
* [[Testing|Testing]] FreeCAD
* [[Compiling_(Speeding_up)|Compiling (Speeding up)]] FreeCAD
* [[Continuous_Integration|Continuous Integration]]

=== Modifying FreeCAD === <!--T:35-->
=== Modifying FreeCAD ===

<!--T:7-->
* Understanding [[The_FreeCAD_source_code|The FreeCAD source code]]
* [[Tracker#Submitting_patches|Submitting patches]]
* Add [[Gui_Command|Features]] or a [[Workbench_creation|Workbench]] to FreeCAD
Expand All @@ -75,15 +81,12 @@ The developer documentation comprises the following sections:
* [[Wrapping_a_Cplusplus_class_in_Python|Wrapping a C++ class in Python]] shows how to create the Python wrapper for a C++ class.
* [[NewFeatureCheckList_C++|Checklist for adding a Feature to a C++ workbench]] provides an aid for contributors.

<!--T:16-->
* [[Translating_an_external_workbench|Translating an external workbench]]

=== Module developer's guide === <!--T:36-->
=== Module developer's guide ===

<!--T:13-->
[https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide]: This is an ebook under writing on GitHub, please fork and send pull request to contribute.

<!--T:14-->
Chapters:
* Overview and Software Architecture
* Source code structure
Expand All @@ -96,62 +99,56 @@ Chapters:
* Module testing and debugging
* Contribute code with git

<!--T:15-->
Latest PDF preview can be downloaded from [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf PDFfolder] of this GitHub repository.

=== Internals === <!--T:21-->
=== Internals ===

==== OpenCascade Documentation ==== <!--T:8-->
==== OpenCascade Documentation ====

<!--T:17-->
OpenCascade is a software development platform for 3D surface and solid modeling, CAD data exchange, and visualization, mostly in the form of C++ libraries.

<!--T:18-->
* [http://opencascade.wikidot.com/romansarticles Roman Lygin's tutorials]
* [https://dev.opencascade.org/cdoc/overview/html/index.html Full Online Documentation]
* [https://dev.opencascade.org/doc/refman/html/index.html Reference Manual]
* [http://opencascade.wikidot.com The openCascade wiki] (currently containing ?? Chinese spam)

==== File format ==== <!--T:27-->
==== File format ====

<!--T:28-->
[[File_Format_FCStd|File Format FCStd]]. The files created with FreeCAD are {{incode|.zip}} files that include the [https://en.wikipedia.org/wiki/Boundary_representation BREP] geometry, as well as XML data that describes the document.

==== Sketcher solver ==== <!--T:22-->
==== Sketcher solver ====

<!--T:23-->
* [https://forum.freecad.org/viewtopic.php?f=10&t=36355 Sketcher Solver Architecture Booklet] (forum thread), [https://github.com/abdullahtahiriyo/FreeCADBooks/tree/master/FreeCAD_Solver_Architecture source] in GitHub.
* [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/ PlaneGCS solver] in the FreeCAD source code; important files are [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/GCS.cpp GCS.cpp] and [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/SubSystem.cpp SubSystem.cpp].
* [https://forum.freecad.org/viewtopic.php?f=9&t=29192 Recent Several Sketcher improvements].

<!--T:24-->
The Sketcher solver isn't perfect, as there are some issues with numerical precision when using large values, see [https://forum.freecad.org/viewtopic.php?f=10&t=40502 Adventure of fixing sketcher solver for large sketches].

<!--T:25-->
The development of a new solver architecture could improve the way the solver is used both in the [[Sketcher_Workbench|Sketcher Workbench]], and for assembly of 3D bodies. See [https://forum.freecad.org/viewtopic.php?f=20&t=40525 Reimplementing constraint solver].

== Roadmap == <!--T:37-->
== Roadmap ==

<!--T:9-->
FreeCAD, though usable in certain areas, is at the beginning of a long way into the CAD mainstream. There is still a lot to do to reach a state where we can compete with commercial software.

<!--T:39-->
[[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 Development Cycle]]

== Community == <!--T:30-->
== Community ==

<!--T:31-->
* [ircs://irc.libera.chat:6697/freecad IRC channel] ,synchronized with [https://gitter.im/FreeCAD/FreeCAD gitter channel]
* [https://forum.freecad.org/viewforum.php?f=6 Development forum]

<!--T:10-->
* [[Development_roadmap|Development roadmap]]

== Credits == <!--T:40-->
== Credits ==

<!--T:11-->
[[Contributors|Contributors]]

== External Resources ==

* [https://github.com/FreeCAD/Addon-Academy Addon Academy] — Tutorial repository for creating addons
* [https://github.com/FreeCAD/SourceDoc SourceDoc] — C++/Python API documentation generator
* [https://github.com/FreeCAD/lens-docs Lens Docs] — API documentation browser
* [https://github.com/FreeCAD FreeCAD GitHub Organization] — All FreeCAD repositories

</translate>
{{Userdocnavi{{#translation:}}}}
Expand Down
65 changes: 65 additions & 0 deletions wiki/External_Add-ons.wikitext
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@

This page provides an overview of external add-ons (workbenches and macros) available for FreeCAD. For the complete and always up-to-date list, visit the [https://github.com/FreeCAD/Addons Addons Repository].

[[Image:Crystal_Clear_app_tutorials.png|64px]]
----
{{TOCright}}
== Official Add-on Repository ==

The [https://github.com/FreeCAD/Addons FreeCAD Addons Repository] is the central index for all FreeCAD add-ons. It contains:

* [https://github.com/FreeCAD/Addons/tree/master/Mod Workbenches] — Full workbenches that extend FreeCAD's functionality
* [https://github.com/FreeCAD/Addons/tree/master/Macro Macros] — Python scripts that automate tasks

To install add-ons, use the [[Std_AddonMgr|Addon Manager]] located at {{MenuCommand|Tools → Addon Manager}}.

== Popular Workbenches ==

{| class="wikitable"
! Workbench !! Description !! Repository
|-
| SheetMetal || Sheet metal design tools || [https://github.com/shaise/FreeCAD_SheetMetal GitHub]
|-
| A2plus || Assembly workbench for multi-body designs || [https://github.com/kbwbe/A2plus GitHub]
|-
| Fasteners || Standard fastener library || [https://github.com/shaise/FreeCAD_FastenersWB GitHub]
|-
| Curves || NURBS curve and surface tools || [https://github.com/tomate44/CurvesWB GitHub]
|-
| Assembly3 || Assembly solver with constraints || [https://github.com/realthunder/FreeCAD_assembly3 GitHub]
|}

== Installing Add-ons ==

=== Using the Addon Manager ===

# Go to {{MenuCommand|Tools → Addon Manager}}
# Browse or search for the desired add-on
# Click "Install" and restart FreeCAD

=== Manual Installation ===

# Download the add-on repository
# Place it in your FreeCAD Mod directory:
** Linux: {{FileName|~/.local/share/FreeCAD/Mod/}}
** Windows: {{FileName|%APPDATA%\FreeCAD\Mod\}}
** Mac: {{FileName|~/Library/Application Support/FreeCAD/Mod/}}
# Restart FreeCAD

== Creating Add-ons ==

To learn how to create your own FreeCAD add-ons:

* [https://github.com/FreeCAD/Addon-Academy Addon Academy] — Step-by-step tutorial repository
* [[Workbench_creation|Workbench Creation Guide]] — Official wiki documentation
* [https://freecad.github.io/DevelopersHandbook/ Developers Handbook] — Comprehensive developer guide

== Contributing Add-ons ==

To submit your add-on to the official repository:

# Fork the [https://github.com/FreeCAD/Addons Addons Repository]
# Add your add-on metadata to the appropriate directory
# Submit a Pull Request
# See [https://github.com/FreeCAD/Addons/blob/master/CONTRIBUTING.md CONTRIBUTING.md] for details

Loading