Skip to content
24 changes: 23 additions & 1 deletion wiki/Developer_hub.wikitext
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ This is the place to come if you want to contribute to the development of the Fr
<!--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.

== Getting Started == <!--T:NEW-->

* [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:32-->

<!--T:4-->
Expand Down Expand Up @@ -49,6 +56,14 @@ The developer documentation comprises the following sections:
* [[Windows_packaging|Windows packaging]]
* [[MacOS_packaging|MacOS packaging]]

== API Documentation == <!--T:NEW-->

* [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:34-->

<!--T:6-->
Expand Down Expand Up @@ -152,8 +167,15 @@ FreeCAD, though usable in certain areas, is at the beginning of a long way into
<!--T:11-->
[[Contributors|Contributors]]

== External Resources == <!--T:NEW-->

* [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:}}}}
[[Category:Hubs{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
72 changes: 72 additions & 0 deletions wiki/External_Add-ons.wikitext
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<languages/>
<translate>

<!--T:1-->
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].

</translate>
[[Image:Crystal_Clear_app_tutorials.png|64px]]
----
{{TOCright}}
<translate>

== Official Add-on Repository == <!--T:2-->

<!--T:3-->
The [https://github.com/FreeCAD/Addons FreeCAD Addons Repository] is the central index for all FreeCAD add-ons:

* [https://github.com/FreeCAD/Addons/tree/master/Mod Workbenches] — Full workbenches
* [https://github.com/FreeCAD/Addons/tree/master/Macro Macros] — Python scripts

<!--T:4-->
To install add-ons, use the [[Std_AddonMgr|Addon Manager]] at {{MenuCommand|Tools → Addon Manager}}.

== Popular Workbenches == <!--T:5-->

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

== Installing Add-ons == <!--T:6-->

=== Using the Addon Manager === <!--T:7-->

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

=== Manual Installation === <!--T:8-->

# 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 == <!--T:9-->

* [https://github.com/FreeCAD/Addon-Academy Addon Academy] — Tutorial repository
* [[Workbench_creation|Workbench Creation Guide]] — Official documentation
* [https://freecad.github.io/DevelopersHandbook/ Developers Handbook] — Developer guide

== Contributing Add-ons == <!--T:10-->

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

</translate>
105 changes: 103 additions & 2 deletions wiki/Macros_recipes.wikitext
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,78 @@ This page lists [[Macros|macros]] that can add functionality to a FreeCAD instal
<!--T:158-->
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.

== What are Macros? == <!--T:2-->

<!--T:3-->
Macros are Python scripts that extend FreeCAD's functionality. They can automate repetitive tasks, add new features, or create custom workflows. Macros are stored as {{FileName|.FCMacro}} or {{FileName|.py}} files.

== Installing Macros == <!--T:4-->

=== Via Addon Manager === <!--T:5-->

# Go to {{MenuCommand|Tools → Addon Manager}}
# Select the "Macros" tab
# Browse or search for the desired macro
# Click "Install" and restart FreeCAD

=== Manual Installation === <!--T:6-->

# Download the macro file ({{FileName|.FCMacro}} or {{FileName|.py}})
# Place it in your FreeCAD Macro directory:
** Linux: {{FileName|~/.local/share/FreeCAD/Macro/}}
** Windows: {{FileName|%APPDATA%\FreeCAD\Macro\}}
** Mac: {{FileName|~/Library/Application Support/FreeCAD/Macro/}}
# Run via {{MenuCommand|Macro → Macros...}}

== Popular Macros == <!--T:7-->

=== CAD/CAM Tools === <!--T:8-->

{| class="wikitable"
! Macro !! Description !! Author
|-
| SheetMetal Unfolder || Unfold sheet metal parts for manufacturing || Ulrich Brammer
|-
| Fasteners || Generate standard fasteners (screws, nuts, washers) || shaise
|-
| Curves Workbench || Advanced curve and surface manipulation || Chris_G
|}

=== Productivity === <!--T:9-->

{| class="wikitable"
! Macro !! Description !! Author
|-
| Draft Alignment || Align objects in Draft workbench || triplus
|-
| Sketcher Shortcuts || Keyboard shortcuts for Sketcher constraints || chennes
|-
| Bill of Materials || Generate BOM from 3D model || various
|}

== Creating Macros == <!--T:10-->

<!--T:11-->
To create your own macros:

# Open the Macro editor: {{MenuCommand|Macro → Macros... → Create}}
# Write your Python code
# Save with {{FileName|.FCMacro}} extension
# Test with {{MenuCommand|Macro → Execute Macro}}

<!--T:12-->
See the [https://freecad.github.io/DevelopersHandbook/ Developers Handbook] for Python scripting documentation.

== Submitting Macros == <!--T:13-->

<!--T:14-->
To add your macro to the official repository:

# Fork the [https://github.com/FreeCAD/Addons Addons Repository]
# Add your macro to the {{FileName|Macro/}} directory
# Include a README with description and usage
# Submit a Pull Request

== Categories == <!--T:96-->

</translate>
Expand Down Expand Up @@ -104,7 +176,7 @@ If you have written a macro and want to include it in one of the categories on t
<div class="mw-collapsible-content">
<translate>

Empty for now!
* {{MacroLink|Icon=Macro_Spring.png|Macro_Move_Assembly|Move Assembly}}: Move an Assembly using a simple control panel.

</translate>
</div>
Expand Down Expand Up @@ -1004,4 +1076,33 @@ If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed ma

</translate>
[[Category:Macros{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]

== Macro Recipes == <!--T:15-->

=== Basic Template === <!--T:16-->

<syntaxhighlight lang="python">
import FreeCAD
import FreeCADGui

doc = FreeCAD.ActiveDocument
if doc:
obj = doc.addObject("Part::Box", "MyBox")
obj.Length = 10
obj.Width = 10
obj.Height = 10
doc.recompute()
</syntaxhighlight>

=== Selection Handling === <!--T:17-->

<syntaxhighlight lang="python">
import FreeCADGui

selection = FreeCADGui.Selection.getSelection()
for obj in selection:
print(f"Selected: {obj.Name}")
</syntaxhighlight>

</translate>