Changes

CONTROLS/Macros

1,402 bytes added, 18:55, 4 September 2018
no edit summary
{{Migrated|printer-controls/macros}}
__NOTOC__{{DISPLAYTITLE:Macros}}Macros are snippets of saved code which can be called with the click of a button instead of having to be typed repeatedly.
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.
To use a macro scripting command, begin the line with the following function:
<code>; Commandhost.:</code>
Then add a command and any applicable parameters.
<code>; Command:[command] "([parameters])"</code>
The result should look something like this:
<code>; Commandhost.show_message(title:Message "Waiting for extruder to heat to [temperature].")</code>
=== Commands ===
<code>Messageding()</code>
Shows the given message (look at example)Play a bell sound. Optionall parameters; ExpectedSeconds:[time] ExpectedTemperature:[temp]
<code>ChooseMaterialshow_message()</code>
Shows the choose material windowspecified message.
Optional parameter variables (content must be in quotes):{| class="wikitable"|-! Parameter || Description || Example|-| title || Main text to show || <codepre>WaitOKtitle:"Trim Filament"</codepre>|-| markdown || The contents of the message in Markdown formatted text. May contain images from the internet. Use <br> for line breaks || <pre>markdown:"Trim the end of the filament to ensure a good load.<br>![](https://www.matterhackers.com/r/c3zLyf)<br>Make sure you trim it at a slight angle."</pre>|-| wait_ok || Script execution will wait for the user to click 'Continue' || <pre>wait_ok:"true"</pre>|-| repeat_gcode || G-Code to repeat until expire time reached. Lines can be separated with a <nowiki>|</nowiki>. || <pre>repeat_gcode:"G1 E.1 F150|G4 P10"</pre>|-| expire || The max amount of time to run repeate_gcode or show this message (seconds) || <pre>expire:"300"</pre>|-| count_down || Show a timer counting down from this time || <pre>count_down:"28"</pre>|}
Show <code>choose_material</code> Shows the message choose material window. Optional parameter variables (look at examplecontent must be in quotes) and wait for user : *title: [main text to click ok to continue sending code.show]
=== Example Script ===
The following box shows is an example of a script used for loading filament:
<pre>; Commandhost.choose_material(title:ChooseMaterial "Choose the material that you are loading.")
; Command:Message "Waiting for extruder to heat to [temperature]."
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 ; CommandRelative positioning; host.show_message(title:WaitOK "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 ; CommandAbsolute positioning; host.show_message(title:Message "Loading filament..." ExpectedSeconds, count_down:"28")
G92 E0 ; reset the extruder position to 0
G91 ; Relative positioning
M302 S150 ; Set cold extrude temp back to reasonable
; Commandhost.show_message(title:Message "Waiting for extruder to heat to [temperature].")
M109 S[temperature] ; heat up the extruder
; Command:Message "Extruding filament..." ExpectedSeconds:19
; extrude slowly so that we can prime the extruder
G1 E100 F300 ; extrude the host.show_message(title:"Click 'Continue' when filament slowlyis running cleanly.", repeat_gcode:"G1 E1 F300|G4 P10", expire:"90")
G4 S1 ; wait for move to finish
G92 E0 ; reset the extruder position to 0
M104 S0 ; turn the extruder temperatuer temperature off</pre>
[[Category:Controls]]
[[Category:Features]]