How to install macros: Difference between revisions

From FreeCAD Documentation
(Reworded the tutorial)
(A few edits)
Line 45: Line 45:


<!--T:13-->
<!--T:13-->
2. Set the appropriate "User macros location".
2. Set the appropriate {{incode|User macros location}}.
* Linux: usually {{incode|/home/your_user_name/.FreeCAD}}
* Linux: usually {{incode|/home/your_user_name/.FreeCAD}}
* Windows: usually {{incode|C:\Users\your_user_name\AppData\Roaming\FreeCAD\}}
* Windows: usually {{incode|C:\Users\your_user_name\AppData\Roaming\FreeCAD\}}
Line 54: Line 54:


<!--T:17-->
<!--T:17-->
3. Navigate to that directory in your computer:
3. Navigate to that directory in your computer.
* Linux: paste the address into your file manager, "Nautilus" or other. You may have to press {{KEY|Ctrl}}+{{KEY|H}} to make the hidden directory {{incode|.FreeCAD/}} visible.
* Linux: paste the address into your file manager, "Nautilus" or other. You may have to press {{KEY|Ctrl}}+{{KEY|H}} to make the hidden directory {{incode|.FreeCAD/}} visible.
* Windows: paste the address into your "File explorer" and confirm.
* Windows: paste the address into your "File explorer" and confirm.
Line 63: Line 63:


<!--T:19-->
<!--T:19-->
4. Access the files by:
4. Add macro files to this directory.
* Linux: leave the file manager open, and bookmark the location for faster access.
* Linux: leave the file manager open, and bookmark the location for faster access.
* Windows: leave open the file explorer.
* Windows: leave open the file explorer.

Revision as of 23:19, 4 December 2018

Tutorial
Topic
Programming
Level
Medium programmer
Time to complete
15 minutes
Authors
Mario52
FreeCAD version
All
Example files
None
See also
None

Description

This short tutorial will show you how to install and use FreeCAD macros.

Macros are sequences of commands or drawing actions which are used to perform a complex operation. Macros are Python scripts, which means they are text files that can be written and edited with a text editor.

While Python scripts normally have the .py extension, macros should have the .FCMacro extension.

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.

The Macro menu and toolbar

Toolbar

Menu

Besides the tools in the toolbar, the following functions are also available in the Macro menu.

Location and destination of macros

1. Open the menu Macro → Macros to open the Execute macro dialog.

2. Set the appropriate User macros location.

  • Linux: usually /home/your_user_name/.FreeCAD
  • Windows: usually C:\Users\your_user_name\AppData\Roaming\FreeCAD\
  • MacOS: usually /Users/your_user_name/Library/Preferences/FreeCAD

3. Navigate to that directory in your computer.

  • Linux: paste the address into your file manager, "Nautilus" or other. You may have to press Ctrl+H to make the hidden directory .FreeCAD/ visible.
  • Windows: paste the address into your "File explorer" and confirm.
  • MacOS: locate the folder in the "Finder" or paste the address into a "File explorer"; remember the file:/// prefix in the "File explorer" for a file on disk.

4. Add macro files to this directory.

  • Linux: leave the file manager open, and bookmark the location for faster access.
  • Windows: leave open the file explorer.
  • MacOS: either leave a "Finder" window open, or bookmark the location in your "File explorer", or set up an "Alias" to point to it, or drag the folder into the "SideBar" of the "Finder" so it is there to use from other programs such as text editors.


Section to read if you are not familiar with Python programming (common mistakes copy/paste).

The indentation errors examples wrong code

The indentation in the python programming is very important and integral part of the code, a space or an inappropriate shift causes an indentation error ex :

<unknown exception traceback><type 'exceptions.IndentationError'>: ('expected an indented block', ('C:/Users/d/AppData/Roaming/FreeCAD/Macro_Apothem_Based_Prism_GUI.FCMacro', 21, 3, 'def priSm(self):\n'))

gives the error returned 'expected an indented block' block indentation expected to line 21, 3, normal after a class p (): must be the next line an indentation at least one space.

1 : In this example, the code was stuck without any indentation and of course does not work! here definitely a programmer error when pasting the code on the page as it would have never known it to work.

the code was stuck without any indentation
the code was stuck without any indentation

2 : the code was correct indentations in the right place.

the code was correct indentations in the right place
the code was correct indentations in the right place

3 : we select the code, and we see that the selection is at the edge of the code, the macro must works so good

the macro must works so good
the macro must works so good

4 : Here additional space is selected (it can happen) then you need to copy the code into a word processor to remove one space all lines

remove one space all lines
remove one space all lines

5 : Here the code has been copied in a forum window with the Select all button apparently the selection is good

Here the code has been copied in a forum
Here the code has been copied in a forum

6 : But the selection pasted into the FreeCAD editor gives a surprise, an indent of four spaces has been added by the system ? the code is not good

But the selection pasted into the FreeCAD editor gives a surprise
But the selection pasted into the FreeCAD editor gives a surprise

7 : You must delete all the extra space that is four spaces on each line, for Windows word processing notepad-plus-plus enables vertical selection with a combination of buttons Alt + Mouse dragging or Menu> Edit> Indent> Decrease the indentation

You must delete all the extra space
You must delete all the extra space

8 : Here the selection also take the column numbers which will also give an error

Here the selection also take the column numbers
Here the selection also take the column numbers

9 : Perfect code.

Perfect code
Perfect code


Method 1:

Method copy the code in one window and paste in the FreeCAD editor

For example we will copy the macro Macro_Apothem_Based_Prism_GUI

If there are one or more icon (s) download also position your mouse over the icon, click the right mouse button and click "Save image as ..." the icon or icons are placed in the macro directory and one of these icons serve as a shortcut icon to place on the toolbar.

Download icon
Download icon

After copying your code we will paste the code in FreeCAD editor.

1 : Open FreeCAD and open the editor in FreeCAD

2 : The window macros file opens, click Create button

The window macros file opens
The window macros file opens

3 : A new window opens, enter the macro name (here "Macro_Apothem_Based_Prism_GUI")and click the create Ok button

enter the macro name
enter the macro name

4 : The editing window FreeCAD macros is now available and has the name of our future macro.

The editing window FreeCAD macros
The editing window FreeCAD macros

5 : Paste your code in the macro editor window and click the little cross to close the window.

close the window
close the window

6 : A warning window appears asking for confirmation of save code, click on Yes

PS: For the change silk consideration must save the macro and reopen it and just run it.

A warning window appears asking for confirmation of save code
A warning window appears asking for confirmation of save code

7 : Repeat the number 1 : , Click on your new macro and button Execute

Click on your new macro and button Execute
Click on your new macro and button Execute

8 : The macro runs, complete the fields with your values and click the OK button

The macro runs, complete the fields
The macro runs, complete the fields

9 : The macro returns an error ! we do not have to open document, open a document and repeat the operation 7 and 8. Some macros open a new document if it does not find one.

The macro returns an error!
The macro returns an error!

10 : Here is your prism

your prism
your prism

11 : You can also open your macro in the editor to run or modify, click the Edit button

You can also open your macro in the editor
You can also open your macro in the editor

12: The macro is now in the FreeCAD editor you can run through the menu "Macro Run Macro" or by clicking on the triangle File:Macro-execute.svg green in the macros toolsbar

The macro is now in the FreeCAD editor
The macro is now in the FreeCAD editor

Method 2:

Method macro in a compressed .ZIP file

Download the file compressed here (example) Macro_screw_maker 1.7. (the page Macro_screw_maker)

Free for Windows 7-zip ou L-Zarc ou quickzip

For Linux use this on the terminal

unzip your_file.zip -d your_directory

you must unzip the zip and copy the file (or all the files and folders) in your macro directory.

Process

1 : Download your file in your local folder here the folder Temp

Download your file in your local folder here the folder Temp
Download your file in your local folder here the folder Temp

2 : Unzip your file in the folder.

Unzip your file in the folder.
Unzip your file in the folder.

3 : The decompressor finished his work and created a new folder with the unpacked file

The decompressor finished his work and created a new folder with the unpacked file
The decompressor finished his work and created a new folder with the unpacked file

4 : Enter in the newly created directory, move about the file, click the right mouse button and click on Cut.

Enter in the newly created directory
Enter in the newly created directory

5 : Return to your File explorer remained open in the macro location (here C:\Users\your_user_name\AppData\Roaming\FreeCAD\) and close the File explorer.

Return to your File explorer remained open
Return to your File explorer remained open

6 : Open FreeCAD click Menu > Macro > Macros or the click the bottom "Open a dialog to let you execute a macro Recorded"

Open FreeCAD
Open FreeCAD

7 : The macros window open , select your macro and click the button Execute

The macros window open
The macros window open

8 : Your macro is executed enter the data and click the Create button

Your macro is executed
Your macro is executed

9 : Whaouu

Whaouu
Whaouu

Section if the text are not display:

For those who see no information is displayed.

Some macros display information on the screen in general they are displayed in the report view.

FreeCAD use two methods to display the information in the window view report.

1 : Commands

App = FreeCAD
App.Console.PrintMessage ("Hello World ! \n")
App.Console.PrintError ("Hello World ! \n")
App.Console.PrintWarning ("Hello World ! \n")

or

FreeCAD.Console.PrintMessage ("Hello World ! \n")
FreeCAD.Console.PrintError ("Hello World ! \n")
FreeCAD.Console.PrintWarning ("Hello World ! \n")

or

print "Hello World !"

To see the information displayed in the console you should:

1 : Open FreeCAD

Open FreeCAD
Open FreeCAD

2 : Click the View menu and Views

Click the View menu and Views
Click the View menu and Views

3 : Check Report View and Python Console

Check Report View and Python Console
Check Report View and Python Console

4 : the windows are enabled and available commands like "App.Console.PrintMessage" is configured to the "Report View"

Hello World!
Hello World!


2 : command "print" which is a Python command.

It is possible that this command does not display the expected string.

For information to be displayed in the window do this :

1 : Click the Edit menu and then Preferences

Edit menu
Edit menu

2 : In the new window, click General, and select the Output window tab

General
General

3 : check both boxes:

Redirect internal Python output to Report view

Redirect internal Python errors to Report view

and click the OK button

Redirect internal
Redirect internal

4 : the setup is complete you should see all.

the setup is complete
the setup is complete

End tutorial good job.

Links

Macro addons_installer.FCMacro for easy install the macro

Other easy macro installer freecad-pluginloader

The Macros recipes page