Macros: Difference between revisions

From FreeCAD Documentation
(Add macro at startup link)
(Updated preferences location.)
 
(25 intermediate revisions by 9 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:19-->
<!--T:19-->
{{Docnav
{{docnav|Standard Menu|Introduction to Python}}
|[[Scripting_and_macros|Scripting and macros]]
|[[Scripts|Scripts]]
}}

</translate>
{{TOCright}}
<translate>


== Introduction == <!--T:16-->
== Introduction == <!--T:16-->


<!--T:1-->
<!--T:1-->
Macros are a convenient way to reproduce complex actions in FreeCAD. You simply record actions as you do them, then save those actions under a name, and replay them whenever you want. Since macros are in reality a list of [[Python]] commands, you can also edit them, and create very complex scripts.
[[Macros|Macros]] are a convenient way to reproduce complex actions in FreeCAD. You simply record actions as you do them, then save those actions under a name, and replay them whenever you want. Since macros are in reality a list of [[Python|Python]] commands, you can also edit them, and create very complex scripts.


<!--T:17-->
<!--T:17-->
While Python scripts normally have the {{incode|.py}} extension, FreeCAD macros should have the {{incode|.FCMacro}} extension. A collection of macros written by experienced users is found in the [[macros recipes]] page.
While Python scripts normally have the {{incode|.py}} extension, FreeCAD macros should have the {{incode|.FCMacro}} extension. A collection of macros written by experienced users is found in the [[Macros_recipes|macros recipes]] page.


<!--T:18-->
<!--T:18-->
See [[Introduction to Python]] to learn about the Python programming language, and then [[Python scripting tutorial]] and [[FreeCAD Scripting Basics]] to learn about writing macros.
See the [[Power_users_hub|Power users hub]] to learn more about the [[Python|Python]] programming language, and about writing macros. In particular, you should start with these pages:
* [[Introduction_to_Python|Introduction to Python]]
* [[Python_scripting_tutorial|Python scripting tutorial]]
* [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]


== How it works == <!--T:2-->
== How it works == <!--T:2-->

Enable the console output in the menu {{MenuCommand|Edit → Preferences → General → Macro → Show scripts commands in python console}}. You will see that in FreeCAD, every action you do, such as pressing a button, outputs a Python command. Those commands are what can be recorded in a macro. The main tool for making macros is the macros toolbar: [[Image:Macros_toolbar.jpg]]. On it you have 4 buttons: Record, stop recording, edit and play the current macro.
<!--T:23-->
Enable the console output in the menu {{MenuCommand|Edit → Preferences → Python → Macro → Show scripts commands in python console}}. You will see that in FreeCAD, every action you do, such as pressing a button, outputs a Python command. Those commands are what can be recorded in a macro. The main tool for making macros is the macros toolbar: [[Image:Macros_toolbar.jpg]]. On it you have 4 buttons: Record, stop recording, edit and play the current macro.


<!--T:3-->
<!--T:3-->
Line 26: Line 39:


<!--T:5-->
<!--T:5-->
There you can manage your macros, delete, edit, duplicate, install or create new ones from scratch. If you edit a macro, it will be opened in an editor window where you can make changes to its code. New macros can be installed using the {{button|Addons...}} button, which links to the [[AddonManager|Addon Manager]].
There you can manage your macros, delete, edit, duplicate, install or create new ones from scratch. If you edit a macro, it will be opened in an editor window where you can make changes to its code. New macros can be installed using the {{button|Addons...}} button, which links to the [[Std_AddonMgr|Addon Manager]].


== Example == <!--T:6-->
== Example == <!--T:6-->

Press the record button, give a name, let's say "cylinder 10x10", then, in the [[Part Workbench]], create a cylinder with radius = 10 and height = 10. Then, press the "stop recording" button. In the edit macros dialog, you can see the python code that has been recorded, and, if you want, make alterations to it. To execute your macro, simply press the execute button on the toolbar while your macro is in the editor. You macro is always saved to disk, so any change you make, or any new macro you create, will always be available next time you start FreeCAD.
<!--T:24-->
Press the record button, give a name, let's say "cylinder 10x10", then, in the [[Part_Workbench|Part Workbench]], create a cylinder with radius = 10 and height = 10. Then, press the "stop recording" button. In the edit macros dialog, you can see the python code that has been recorded, and, if you want, make alterations to it. To execute your macro, simply press the execute button on the toolbar while your macro is in the editor. You macro is always saved to disk, so any change you make, or any new macro you create, will always be available next time you start FreeCAD.


== Customizing == <!--T:7-->
== Customizing == <!--T:7-->

<!--T:25-->
Of course it is not practical to load a macro in the editor in order to use it. FreeCAD provides much better ways to use your macro, such as assigning a keyboard shortcut to it or putting an entry in the menu. Once your macro is created, all this can be done via the {{MenuCommand|Tools → Customize}} menu.
Of course it is not practical to load a macro in the editor in order to use it. FreeCAD provides much better ways to use your macro, such as assigning a keyboard shortcut to it or putting an entry in the menu. Once your macro is created, all this can be done via the {{MenuCommand|Tools → Customize}} menu.


Line 38: Line 55:


<!--T:9-->
<!--T:9-->
[[Customize Toolbars]] This way you can make your macro become a real tool, just like any standard FreeCAD tool. This, added to the power of python scripting within FreeCAD, makes it possible to easily add your own tools to the interface. Read on to the [[Scripting]] page if you want to know more about [[Python]] scripting.
This way you can make your macro become a real tool, just like any standard FreeCAD tool. This, added to the power of python scripting within FreeCAD, makes it possible to easily add your own tools to the interface.

<!--T:26-->
See [[Customize_Toolbars|Customize Toolbars]] for a more detailed description.


== Creating macros without recording == <!--T:10-->
== Creating macros without recording == <!--T:10-->
[[How to install macros]] You can also directly copy/paste python code into a macro, without recording GUI action. Simply create a new macro, edit it, and paste your code. You can then save your macro the same way as you save a FreeCAD document. Next time you start FreeCAD, the macro will appear under the "Installed Macros" item of the Macro menu.


== Macros repository == <!--T:11-->
<!--T:27-->
You can also directly copy/paste python code into a macro, without recording GUI action. Simply create a new macro, edit it, and paste your code. You can then save your macro the same way as you save a FreeCAD document. Next time you start FreeCAD, the macro will appear under the "Installed Macros" item of the Macro menu.
Visit the [[Macros recipes]] page to pick some useful macros to add to your FreeCAD installation.


== Links == <!--T:13-->
<!--T:28-->
See [[How_to_install_macros|How to install macros]] for a more detailed description.
[[Installing_more_workbenches|Installing more workbenches]].

[[Macro_at_Startup|Automatically run macro at startup]].
== Macro repositories == <!--T:11-->

<!--T:29-->
There are two main places for macros. The first one is the official peer-reviewed macro repository on [https://github.com/FreeCAD/FreeCAD-macros GitHub]. The second one is the [[Macros_recipes|Macros recipes]] page from which you can pick some useful macros to add to your FreeCAD installation. Macros from both repositories can be installed via the [[Std_AddonMgr|Addon Manager]] directly from FreeCAD.

== Additional information == <!--T:13-->

<!--T:30-->
* [[Macro_at_Startup|Automatically run macro at startup]]
* [[Installing_more_workbenches|Installing more workbenches]]


== Tutorials == <!--T:14-->
== Tutorials == <!--T:14-->
[[How_to_install_additional_workbenches|How to install additional workbenches]].


<!--T:12-->
<!--T:31-->
You can manually install extensions, however, it is much simpler to just use the [[Std_AddonMgr|Addon Manager]].
{{docnav|Standard Menu|Introduction to Python}}
* [[How_to_install_macros|How to install macros]]
* [[How_to_install_additional_workbenches|How to install additional workbenches]]


<!--T:20-->
{{Userdocnavi}}


<!--T:15-->
<!--T:12-->
{{Docnav
[[Category:Poweruser Documentation]]
|[[Scripting_and_macros|Scripting and macros]]
|[[Scripts|Scripts]]
}}


</translate>
</translate>
{{Powerdocnavi{{#translation:}}}}
{{clear}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Macros{{#translation:}}]]

Latest revision as of 10:54, 9 August 2023

Introduction

Macros are a convenient way to reproduce complex actions in FreeCAD. You simply record actions as you do them, then save those actions under a name, and replay them whenever you want. Since macros are in reality a list of Python commands, you can also edit them, and create very complex scripts.

While Python scripts normally have the .py extension, FreeCAD macros should have the .FCMacro extension. A collection of macros written by experienced users is found in the macros recipes page.

See the Power users hub to learn more about the Python programming language, and about writing macros. In particular, you should start with these pages:

How it works

Enable the console output in the menu Edit → Preferences → Python → Macro → Show scripts commands in python console. You will see that in FreeCAD, every action you do, such as pressing a button, outputs a Python command. Those commands are what can be recorded in a macro. The main tool for making macros is the macros toolbar: . On it you have 4 buttons: Record, stop recording, edit and play the current macro.

It is very simple to use: Press the record button, you will be asked to give a name to your macro, then perform some actions. When you are done, click the stop recording button, and your actions will be saved. You can now access the macro dialog with the edit button.

Macro dialog, listing the macros available in the system

There you can manage your macros, delete, edit, duplicate, install or create new ones from scratch. If you edit a macro, it will be opened in an editor window where you can make changes to its code. New macros can be installed using the Addons... button, which links to the Addon Manager.

Example

Press the record button, give a name, let's say "cylinder 10x10", then, in the Part Workbench, create a cylinder with radius = 10 and height = 10. Then, press the "stop recording" button. In the edit macros dialog, you can see the python code that has been recorded, and, if you want, make alterations to it. To execute your macro, simply press the execute button on the toolbar while your macro is in the editor. You macro is always saved to disk, so any change you make, or any new macro you create, will always be available next time you start FreeCAD.

Customizing

Of course it is not practical to load a macro in the editor in order to use it. FreeCAD provides much better ways to use your macro, such as assigning a keyboard shortcut to it or putting an entry in the menu. Once your macro is created, all this can be done via the Tools → Customize menu.

This way you can make your macro become a real tool, just like any standard FreeCAD tool. This, added to the power of python scripting within FreeCAD, makes it possible to easily add your own tools to the interface.

See Customize Toolbars for a more detailed description.

Creating macros without recording

You can also directly copy/paste python code into a macro, without recording GUI action. Simply create a new macro, edit it, and paste your code. You can then save your macro the same way as you save a FreeCAD document. Next time you start FreeCAD, the macro will appear under the "Installed Macros" item of the Macro menu.

See How to install macros for a more detailed description.

Macro repositories

There are two main places for macros. The first one is the official peer-reviewed macro repository on GitHub. The second one is the Macros recipes page from which you can pick some useful macros to add to your FreeCAD installation. Macros from both repositories can be installed via the Addon Manager directly from FreeCAD.

Additional information

Tutorials

You can manually install extensions, however, it is much simpler to just use the Addon Manager.