Developer hub/pt: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 22: Line 22:
* [[Start up and Configuration]]
* [[Start up and Configuration]]
* [[Source documentation]]
* [[Source documentation]]

=== Packaging ===

* [[Debian_development|Debian development]]
* [[Debian_Unstable|Debian Unstable]]
* [[Gi_buildpackage|Git buildpackage]]


=== Build Support Tools ===
=== Build Support Tools ===
Line 37: Line 43:
* [[Branding]] or ''how to give FreeCAD a unique look''
* [[Branding]] or ''how to give FreeCAD a unique look''
* [[Artwork]] we made for FreeCAD, that you can freely reuse
* [[Artwork]] we made for FreeCAD, that you can freely reuse
* [[Artwork_Guidelines]] standards for icons
* [[Artwork_Guidelines|Artwork guidelines]] standards for icons
* [[Localisation|Translating FreeCAD]]
* [[Localisation|Translating FreeCAD]]
* [[Extra python modules]], or ''how to extend python functionality within FreeCAD''
* [[Extra python modules]], or ''how to extend python functionality within FreeCAD''
* [[Google Summer of Code]] get involved via Google's student support program
* [[Google Summer of Code]] get involved via Google's student support program
* [[Fine-tuning]] shows different options and parameter switches that can overcome problems
* [[Fine-tuning]] shows different options and parameter switches that can overcome problems

* [[Translating an external workbench]]


=== Module developer's guide ===
=== Module developer's guide ===
Line 60: Line 68:
Latest pdf preview can be downoaded from [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf pdf folder] of this git repo
Latest pdf preview can be downoaded from [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf pdf folder] of this git repo


=== Internals ===
* [[Translating an external workbench]]


=== OpenCascade Documentation ===
==== OpenCascade Documentation ====


OpenCascade is a software development platform for 3D surface and solid modeling, CAD data exchange, and visualization, mostly in the form of C++ libraries.
OpenCascade is a software development platform for 3D surface and solid modeling, CAD data exchange, and visualization, mostly in the form of C++ libraries.
Line 70: Line 78:
* [https://dev.opencascade.org/doc/refman/html/index.html Reference Manual]
* [https://dev.opencascade.org/doc/refman/html/index.html Reference Manual]
* [http://opencascade.wikidot.com The openCascade wiki] (currently containing ?? Chinese spam)
* [http://opencascade.wikidot.com The openCascade wiki] (currently containing ?? Chinese spam)

==== Sketcher solver ====

* [https://forum.freecadweb.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.freecadweb.org/viewtopic.php?f=9&t=29192 Recent Several Sketcher improvements].

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

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.freecadweb.org/viewtopic.php?f=20&t=40525 Reimplementing constraint solver].


== Roadmap ==
== Roadmap ==

Revision as of 09:33, 13 November 2019

150
150

This is the place to come if you want to contribute to the development of the FreeCAD software.

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 forum and someone will look into it (or, if you are feeling bold, why not edit this page directly!).


Developer Documentation

The developer documentation comprises the following sections:

Do it yourself: Compiling FreeCAD

Packaging

Build Support Tools

Modifying FreeCAD

Module developer's guide

FreeCAD Mod Dev Guide: This is an ebook under writing on github, please fork and send pull request to contribute.

Chapters:

  • Overview and Software Architecture
  • Source code structure
  • Base and App module
  • Gui module
  • Python wrapping
  • Modular design
  • Fem module source analysis (mixed C++ and Python)
  • Development of CFD Module (pure Python)
  • Module testing and debugging
  • Contribute code with git

Latest pdf preview can be downoaded from pdf folder of this git repo

Internals

OpenCascade Documentation

OpenCascade is a software development platform for 3D surface and solid modeling, CAD data exchange, and visualization, mostly in the form of C++ libraries.

Sketcher solver

The sketcher solver isn't perfect, as there are some issues with numerical precision when using large values, see Adventure of fixing sketcher solver for large sketches.

The development of a new solver architecture could improve the way the solver is used both in the Sketcher Workbench, and for assembly of 3D bodies. See Reimplementing constraint solver.

Roadmap

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.

Credits

Contributors