Difference between revisions of "CONTROLS/Macros"

From MatterControl Manual
Jump to: navigation, search
(Commands)
(new scripting commands)
Line 49: Line 49:
 
Click the '''Cancel''' button to discard changes.
 
Click the '''Cancel''' button to discard changes.
  
== Macro Scripting ==
+
== Macro Scripting (Starting in version 1.7) ==
  
 
Macro Scripting allows for the use of advanced functions in macros. These functions are called by using commands.
 
Macro Scripting allows for the use of advanced functions in macros. These functions are called by using commands.
Line 57: Line 57:
 
To use a macro scripting command, begin the line with the following function:
 
To use a macro scripting command, begin the line with the following function:
  
<code>; Command:</code>
+
<code>; host.:</code>
  
 
Then add a command and any applicable parameters.  
 
Then add a command and any applicable parameters.  
  
<code>; Command:[command] "[parameters]"</code>
+
<code>; command([parameters])"</code>
  
 
The result should look something like this:
 
The result should look something like this:
  
<code>; Command:Message "Waiting for extruder to heat to [temperature]."</code>
+
<code>; host.show_message(title:"Waiting for extruder to heat to [temperature].")</code>
  
 
=== Commands ===
 
=== Commands ===
  
<code>Message</code>
+
<code>ding()</code>
 +
 
 +
Play a bell sound.
 +
 
 +
<code>show_message()</code>
  
 
Shows the specified message.  
 
Shows the specified message.  
  
Optional parameter variables:
+
Optional parameter variables (content must be in quotes):
  
*ExpectedSeconds: [time]  
+
*title: [main text to show]
*ExpectedTemperature: [temp]
+
*image: [a url of the image you wish to show]
 +
*wait_ok: [script execution will wait for the user to click 'ok']
 +
*repeat_gcode: [gcode to repeat until expire time reached (separate lines with a |)]
 +
*expire: [the max amount of time to run repeate_gcode or show this message]
 +
*count_down: [show a timer counting down from this time]
  
<code>ChooseMaterial</code>
+
<code>choose_material</code>
  
 
Shows the choose material window.
 
Shows the choose material window.
  
<code>WaitOK</code>
+
Optional parameter variables (content must be in quotes):
  
Show the specified message and waits for user to click OK to continue sending code.
+
*title: [main text to show]
  
 
=== Example Script ===
 
=== Example Script ===
Line 90: Line 98:
 
The following box shows an example of a script used for loading filament:
 
The following box shows an example of a script used for loading filament:
  
<pre>; Command:ChooseMaterial "Choose the material that you are loading."
+
<pre>; host.choose_material(title:"Choose the material that you are loading.")
  
; Command:Message "Waiting for extruder to heat to [temperature]."
 
 
M104 S[temperature] ; start heating up the extruder
 
M104 S[temperature] ; start heating up the extruder
 +
 +
; host.show_message(title:"Trim the end of the filament to ensure a good load.", image:"https://cdn.instructables.com/FSW/FEGA/HN4ZL57T/FSWFEGAHN4ZL57T.MEDIUM.jpg", wait_ok:"true")
  
 
M302 S0  ; Allow extrusion at any temperature
 
M302 S0  ; Allow extrusion at any temperature
; Command:WaitOK "Put filament into extruder and click Continue."
+
G91                ; Relative positioning
; Command:Message "Loading filament..." ExpectedSeconds:28
+
; host.show_message(title:"Put filament into extruder and click Continue.", repeat_gcode:"G1 E.1 F150|G4 P10", expire:"90", image:"https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/5035400628/original/20150903_115628.jpg?1441307271")
 +
G90                ; Absolute positioning
 +
; host.show_message(title:"Loading filament...", count_down:"28")
 
G92 E0              ; reset the extruder position to 0
 
G92 E0              ; reset the extruder position to 0
 
G91                ; Relative positioning
 
G91                ; Relative positioning
Line 108: Line 119:
  
 
M302 S150  ; Set cold extrude temp back to reasonable
 
M302 S150  ; Set cold extrude temp back to reasonable
; Command:Message "Waiting for extruder to heat to [temperature]."
+
; host.show_message(title:"Waiting for extruder to heat to [temperature].")
 
M109 S[temperature] ; heat up the extruder
 
M109 S[temperature] ; heat up the extruder
  
; Command:Message "Extruding filament..." ExpectedSeconds:19
 
 
; extrude slowly so that we can prime the extruder
 
; extrude slowly so that we can prime the extruder
G1 E100 F300        ; extrude the filament slowly
+
; host.show_message(title:"Click 'Continue' when filament is running cleanly.", repeat_gcode:"G1 E1 F300|G4 P10", expire:"90")
  
 
G4 S1              ; wait for move to finish
 
G4 S1              ; wait for move to finish
Line 119: Line 129:
 
G92 E0              ; reset the extruder position to 0
 
G92 E0              ; reset the extruder position to 0
  
M104 S0            ; turn the extruder temperatuer off</pre>
+
M104 S0            ; turn the extruder temperature off
 +
</pre>
  
 
[[Category:Controls]]
 
[[Category:Controls]]
 
[[Category:Features]]
 
[[Category:Features]]

Revision as of 09:40, 14 March 2017

Macros are snippets of saved code which can be called with the click of a button instead of having to be typed repeatedly.

The Macros of the Controls pane section is where the user creates and stores these macros.

To learn more about G-Code and its utility in 3D printing, check out this resource: http://reprap.org/wiki/G-code

Macros Pane

Macros pane containing example macros for the Rostock MAX V2
Once macros have been created, they will appear under the Macros title.

The screenshot to the right shows an example of several macro buttons for the Rostock MAX V2.

Macro Editor

By default, the Macros section has no buttons.
To access the Macro Editor, click the pencil icon (Pencil-edit.png) next to the word Macros. This will open the Macro Presets window.


Macro Presets Window

Macros-Presets-blank-ss.png

Add

To add a new Macro, click the Add button. This will open the Edit Macro window.

Close

Click the Close button to close the window and return to the main screen.

Edit Macro Window

Macros-Editor-ss.png

Macro Name

Enter a unique name for the macro.

Macro Commands

Enter G-Code command(s) in this field.

Can be multiple lines long.

Save

Click the Save button to add the button to the Macros section.

Cancel

Click the Cancel button to discard changes.

Macro Scripting (Starting in version 1.7)

Macro Scripting allows for the use of advanced functions in macros. These functions are called by using commands.

Syntax

To use a macro scripting command, begin the line with the following function:

; host.:

Then add a command and any applicable parameters.

; command([parameters])"

The result should look something like this:

; host.show_message(title:"Waiting for extruder to heat to [temperature].")

Commands

ding()

Play a bell sound.

show_message()

Shows the specified message.

Optional parameter variables (content must be in quotes):

  • title: [main text to show]
  • image: [a url of the image you wish to show]
  • wait_ok: [script execution will wait for the user to click 'ok']
  • repeat_gcode: [gcode to repeat until expire time reached (separate lines with a |)]
  • expire: [the max amount of time to run repeate_gcode or show this message]
  • count_down: [show a timer counting down from this time]

choose_material

Shows the choose material window.

Optional parameter variables (content must be in quotes):

  • title: [main text to show]

Example Script

The following box shows an example of a script used for loading filament:

; host.choose_material(title:"Choose the material that you are loading.")

M104 S[temperature] ; start heating up the extruder

; host.show_message(title:"Trim the end of the filament to ensure a good load.", image:"https://cdn.instructables.com/FSW/FEGA/HN4ZL57T/FSWFEGAHN4ZL57T.MEDIUM.jpg", wait_ok:"true")

M302 S0  ; Allow extrusion at any temperature
G91                 ; Relative positioning
; host.show_message(title:"Put filament into extruder and click Continue.", repeat_gcode:"G1 E.1 F150|G4 P10", expire:"90", image:"https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/5035400628/original/20150903_115628.jpg?1441307271")
G90                 ; Absolute positioning
; host.show_message(title:"Loading filament...", count_down:"28")
G92 E0              ; reset the extruder position to 0
G91                 ; Relative positioning
G1 E100 F1200       ; extrude the filament 
G1 E100 F1200       ; extrude the filament 
G1 E100 F1200       ; extrude the filament 
G1 E100 F1200       ; extrude the filament 
G1 E100 F1200       ; extrude the filament 
G4 S1               ; wait for move to finish

M302 S150  ; Set cold extrude temp back to reasonable
; host.show_message(title:"Waiting for extruder to heat to [temperature].")
M109 S[temperature] ; heat up the extruder

; extrude slowly so that we can prime the extruder
; host.show_message(title:"Click 'Continue' when filament is running cleanly.", repeat_gcode:"G1 E1 F300|G4 P10", expire:"90")

G4 S1               ; wait for move to finish
G90                 ; Absolute positioning
G92 E0              ; reset the extruder position to 0

M104 S0             ; turn the extruder temperature off