cache all markdown text and check if local

This commit is contained in:
LarsBrubaker 2020-06-03 12:37:16 -07:00
parent d8e582dfdd
commit 01309e9b0f
58 changed files with 2166 additions and 38 deletions

View file

@ -2745,6 +2745,7 @@ namespace MatterHackers.MatterControl
{
var httpClient = new HttpClient();
string json = await httpClient.GetStringAsync("https://matterhackers.github.io/MatterControl-Help/docs/product-tour.json");
// string json = await httpClient.GetStringAsync("https://matterhackers.github.io/MatterControl-Docs/Help/product-tour.json");
return JsonConvert.DeserializeObject<List<TourLocation>>(json);

View file

@ -74,8 +74,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
{
markdownWidget.Markdown = markDown;
});
},
true);
});
}
}
}

View file

@ -147,6 +147,7 @@ namespace Markdig.Agg
helpArticleHeader.EditClicked += (s, e) =>
{
ApplicationController.Instance.LaunchBrowser($"https://github.com/MatterHackers/MatterControl-Help/blob/master/input/{sourceArticle.Path}");
// ApplicationController.Instance.LaunchBrowser($"https://github.com/MatterHackers/MatterControl-Docs/tree/master/docs/Help/{sourceArticle.Path}");
};
contentPanel.AddChild(helpArticleHeader);
}

View file

@ -136,26 +136,40 @@ namespace MatterHackers.MatterControl
}
else if (File.Exists(gifFileName))
{
try
Task.Run(() =>
{
Task.Run(() =>
try
{
AggContext.StaticData.LoadImageSequenceData(new StreamReader(gifFileName).BaseStream, asyncImageSequence);
UiThread.RunOnIdle(() =>
if (asyncImageSequence.NumFrames > 0)
{
imageSequenceToLoadInto.Copy(asyncImageSequence);
imageSequenceToLoadInto.Invalidate();
doneLoading?.Invoke();
});
});
UiThread.RunOnIdle(() =>
{
imageSequenceToLoadInto.Copy(asyncImageSequence);
imageSequenceToLoadInto.Invalidate();
doneLoading?.Invoke();
});
}
else
{
DownloadImageAsync(imageSequenceToLoadInto, uriToLoad, doneLoading, asyncImageSequence, pngFileName, gifFileName);
}
}
catch
{
DownloadImageAsync(imageSequenceToLoadInto, uriToLoad, doneLoading, asyncImageSequence, pngFileName, gifFileName);
}
});
return;
}
catch
{
}
return;
}
DownloadImageAsync(imageSequenceToLoadInto, uriToLoad, doneLoading, asyncImageSequence, pngFileName, gifFileName);
}
private static void DownloadImageAsync(ImageSequence imageSequenceToLoadInto, string uriToLoad, Action doneLoading, ImageSequence asyncImageSequence, string pngFileName, string gifFileName)
{
WebClient client = new WebClient();
client.DownloadDataCompleted += (object sender, DownloadDataCompletedEventArgs e) =>
{
@ -205,19 +219,14 @@ namespace MatterHackers.MatterControl
}
}
public static void RetrieveText(string uriToLoad, Action<string> updateResult, bool checkStaticData = false)
public static void RetrieveText(string uriToLoad, Action<string> updateResult)
{
var longHash = uriToLoad.GetLongHashCode();
var textFileName = ApplicationController.CacheablePath("Text", longHash.ToString() + ".txt");
// change to a path that makes it easy to collect up all the text we want to ship with MC
if (checkStaticData)
{
textFileName = ApplicationController.CacheablePath("TextWebCache", longHash.ToString() + ".txt");
}
var textFileName = ApplicationController.CacheablePath("TextWebCache", longHash.ToString() + ".txt");
string fileText = null;
// first try the cache in the users applications folder
if (File.Exists(textFileName))
{
try
@ -229,7 +238,7 @@ namespace MatterHackers.MatterControl
{
}
}
else // We could not find it in the cache. Check if it is in static data.
else // We could not find it in the application cache. Check if it is in static data.
{
if (File.Exists(textFileName))
{
@ -245,6 +254,7 @@ namespace MatterHackers.MatterControl
}
}
// whether we find it or not check the web for the latest version
Task.Run(async () =>
{
var client = new HttpClient();

View file

@ -0,0 +1,5 @@
Click on any of the scale corner controls to scale your part on the bed.
# Scaling Objects in the 3D view
![](https://www.matterhackers.com/r/yNqiNT)

View file

@ -0,0 +1,4 @@
* [Skirt](skirt.md)
* [Raft](raft.md)
* [Brim](brim.md)

View file

@ -0,0 +1,45 @@
Welcome
=======
Welcome to the MatterControl help system. Below you can find quick links to get you started with everything you need to know to get you up and printing. You will learn to add existing parts, create new parts and, connect and control your 3D printer.
## Quick Links
* [Quick Start](quick-start.md)
* [Designing Parts](designing/index.md)
* [Printing Parts](printing/index.md)
* [What's New](whats-new.md)
## Designing
* [Creating New Objects](designing/creating-new-objects.md)
* [Adding Existing Objects](designing/add-existing-objects.md)
* [Editing a Objects](designing/editing-objects.md)
* [Design Apps](designing/design-apps/index.md)
* [Design Primitives](designing/design-primitives/index.md)
* [Text Tool](designing/design-primitives/text-tool.md)
* [Image Converter](designing/design-primitives/image-converter.md)
* [Braille Tool](designing/design-primitives/braille-tool.md)
## Printing
* [Adding a New Printer](printing/adding-new-printer.md)
* [Selecting a Printer](printing/selecting-a-printer.md)
* [Loading and Changing Filament](printing/loading-and-changing-filament.md)
* [Add Existing Objects](designing/add-existing-objects.md)
* [Starting a Print](printing/starting-a-print.md)
* [Exporting G-Code](printing/exporting-g-code.md)
* [Slice Settings](slice-settings/index.md)
* [Printing Multi-Extrusion Models](printing/multi-color-stls.md)
## Printer Controls
* [Controls Pane](printer-controls/index.md)
* [Hot End Controls](printer-controls/hotend-controls.md)
## Troubleshooting
* [Frequently Asked Questions](frequently-asked-questions.md)
* [Settings FAQ](slice-settings/settings-faq.md)
* [Geting More Help](get-support.md)

View file

@ -0,0 +1,7 @@
MatterControl makes it easy to change the filament on your printer
1. Select the extruder that you would like to change the filament for and then either 'Load' or 'Unload'.
![Load Filament](https://www.matterhackers.com/r/HhgLb8)
1. Follow along with the wizard to complete the loading or unloading of filament
![](https://www.matterhackers.com/r/vdCgyQ)

View file

@ -0,0 +1,4 @@
* [Speed](speed.md)
* [Speed (SLA Printers)](sla-speed.md)
* [Cooling](cooling.md)

View file

@ -0,0 +1,26 @@
Exporting a printer profile
===========================
Choose **Export** from the overflow menu (![](https://lh3.googleusercontent.com/B0iPKfPTIEs8X9qR5xZYj5aarp5PcLy3-cLjr3DYIRxZnyWLFe3-UMBYmfafoU8CjfD1dDUMmjMpcqZsJuAUsg8k-A)) in the upper right corner of the screen. Your complete printer profile will be saved as a `.printer` file. This includes all of the following information.
* Slice settings
* Printer settings
* Quality & Material presets
* Manual control settings
* G-Code Macros
* Calibration data
Importing a printer profile
===========================
Go to the **Start** tab and click on the import printer button next to the printer list. Choose a `.printer` file.
![](https://lh3.googleusercontent.com/AZ5azO_H54r-S7-oDtIEOawXP6xZcxS81g0-re5eeq88m2b-wy1G6bEZEywsGgzfm1CATwhXk3nYzNfaMayqLINPkg=s0)
Importing presets
=================
Presets are not saved on their own, but they can be imported from a printer profile. Choose **Import Presets** from the overflow menu (![](https://lh3.googleusercontent.com/B0iPKfPTIEs8X9qR5xZYj5aarp5PcLy3-cLjr3DYIRxZnyWLFe3-UMBYmfafoU8CjfD1dDUMmjMpcqZsJuAUsg8k-A)) in the upper right corner of the screen. Then choose a `.printer` file. You will be given the option to select one of the quality or material presets from that printer profile.
![](https://lh3.googleusercontent.com/qN1jKdlVZ1qgXnD2NyO_NQAl7LVBllryBwNMmm1wNogMWurLzv_c7SJiZqjBFejwsloODxObe7er0-W8rkvMgKlv=s0)

View file

@ -0,0 +1,78 @@
When you have a printer open you can find the 'Slice Settings' near the top far right of MatterControl.
Clicking this will open up the settings panel where you can edit all of the settings about your printer.
![](https://lh3.googleusercontent.com/4QYHXu6CNmSgJ9oOsegjn5igMyKgkxi3gtomSUDfRtqgG6WIHom34CQpmwr1pVuLZ-hqnnAf59nbkYoAUDPPrvvjZw=s0)
Quality and Material Presets
============================
MatterControl lets you choose from preset settings for print quality and material.
![](https://lh3.googleusercontent.com/QL7qE2bTBi6pXBqeLK1mQ5ZvmyetcrPg9vaUL-J3BdJRDI0A-7PfBsHxXfzhzHMziaf3KRx7VK0OM9huWloPmBX2qQU=s0)
The materials presets include a range of filaments which have been tested to work with your particular machine. Your printer profile comes with a few quality and material options to choose from, but you can also edit them and make your own. Click the pencil icon to change the particular settings affected by a preset.
When a preset is enabled, the affected settings are highlighted. Quality settings are highlighted in yellow and material settings are highlighted in orange. Learn more about [how the presets are used](#settings-layers) below.
Search
======
MatterControl includes a search feature so you can easily find the settings you are looking for.
![](https://lh3.googleusercontent.com/L4d841reikEdUG9lJlwuC69Wf4KVDdiGs117AXy0yMpjzbotwAC8ZWr56gjZmE8ojf8HOKpIRFTTZoufQxYGJU0N=s0)
Cloud Synchronization
=====================
If you have signed in to your MatterControl Cloud account, then your slice settings are automatically synchronized with the Cloud. If you change a slice setting in MatterControl, then that change will immediately be sent to any other computers you have running MatterControl, which are logged in to the same account.
History
=======
MatterControl saves backups of all of your slice settings on a regular basis, and uploads these backups to the MatterControl Cloud. This is useful if you are experimenting with slice settings and decide that things have gone wrong and you need to change them back to how they were before. The **Restore Settings** option in the overflow menu (![](https://lh3.googleusercontent.com/B0iPKfPTIEs8X9qR5xZYj5aarp5PcLy3-cLjr3DYIRxZnyWLFe3-UMBYmfafoU8CjfD1dDUMmjMpcqZsJuAUsg8k-A)) will allow you to choose settings from a previous date to restore to.
![](https://lh3.googleusercontent.com/lvKJ0Zs95KYiROFa2erpw4eVN55rf5yfuKizWRFcPBh-tkjStZx8tO7quFxe7SBRyARotGj0C40aUuZQUUSVU32T)
In addition, you can reset all settings to the factory defaults by choosing **Reset to Defaults**.
Settings Layers
===============
MatterControl's slice settings work on a system of layers. Each layer can override the settings in the layers below it. The settings view shows you which layer each setting is coming from based on the color it is highlighted.
At the bottom is the base layer. These are the default settings provided by your printer's manufacturer. All settings are included in the base layer. In the settings view, if a particular setting is not highlighted with any color (orange, yellow, blue, etc.) then that means the baseline setting is being used. The baseline settings are never changed, which means that you can always revert back to your manufacturer's defaults if something goes wrong.
Quality Presets
---------------
The next layer is the Quality layer. If a setting from this layer is being used, it is highlighted in yellow in the settings view.
![](https://lh3.googleusercontent.com/_tUvOzZPwKxfZSCXox3RVkkmSLX3vL3WWAXIun2EOPQFES9iKYdCS529__0yCyTaXWtTX5wEkmzXqxCB19Vg1IF9tQ=s0)
Your printer profile comes with a few Quality presets to choose from, but you can also edit them and make your own. This typically contains settings related to layer thickness and speed. However, you are free to use your discretion about what belongs here. Any setting can be added. For instance, if I wanted to make a quality setting for high strength prints, I could name it "Strong" and then add settings like the infill density and number of perimeters.
Material Presets
----------------
Next is the Material layer. These settings are highlighted orange.
![](https://lh3.googleusercontent.com/06EDlnXpQTegBTN270jbPaRUMl7vi0QJ2qcH-YlHxB0wvB4GpgwRLv6gYYxWgdpyHRRnjKarxfmm3Uw-M5fgxMYBYw=s0)
Typically the materials presets contain your temperature settings, however you are free to include any other setting in this layer as well. For instance, if I am printing a flexible material I might want to slow down the speed and disable retraction. These kinds of settings would not normally be included in a preset for PLA or ABS.
Other Changes
-------------
The last layer contains any other changes that you have made in the settings view. They override everything else. They are highlighted in blue.
![](https://lh3.googleusercontent.com/1B34J9zubBl7liHY-0Pz3MD1PaV7LghN-59x4JkQ47d6izSdFmnDqmrfBKHGzF3t4FNj5zaT8TM5JcpyUtQuCxf_=s0)
To clear a change and revert to the baseline setting, click the X to the right of that setting. This is where you should make changes that are not related to either quality or material. For instance, if you want to use hexagonal infill instead of triangles, that has nothing to do with wither the print quality or the material being used.
This system is very powerful, but it is up to you to use it in whatever way you see fit. The labels "Quality" and "Material" are really just guidelines. You can actually use them for whatever you like.

View file

@ -0,0 +1,29 @@
Cooling is very important for print quality. If a layer does not have enough time to cool and harden before the next one starts printing, then it will deform. In order to prevent this, MatterControl can slow down the printing speed of layers which would normally take very little time to print. This gives the layer more time to harden. It increases the time it takes to print small objects but it can also substantially improve print quality.
If you have inadequate cooling it will be most apparent on overhangs and sharp corners. Overhangs will tend to curl up and become very messy underneath. Sharp corners will become rounded and blunt.
These settings control when layers are slowed down and by how much. In addition to the cooling slowdown, you should also use a [layer cooling fan](../filament/fan) if your printer is equipped with one.
Note: The slicer will not change the speeds by more than 10% from one layer to another. This is to prevent a velocity painting effect. Abrupt changes in speed can make layers look different from each other. This is why you may notice it takes a couple of layers for the speed to ramp up or down.
Slow Down If Layer Print Time Is Below
======================================
The minimum amount of time a layer must take to print. If a layer takes less time than this, then all printing speeds will be slowed down until the layer takes at least this much time.
This setting is heavily material dependant. Some materials need lots of time to cool while others do not need any.
**Recommended Baseline for PLA:** 30 s
**Units:** seconds (s)
Minimum Print Speed
===================
The minimum speed that the printer can go when the layer is slowed down for cooling. The slicer will try to slow the printer so that each layer takes the minimum layer time (above), but it will not slow any print speeds lower than this speed.
This prevents the printer from going so slow that the plastic is not extruded consistently.
**Recommended Baseline:** 15 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `min_print_speed`

View file

@ -0,0 +1,56 @@
This guide will walk you through printing multi-color or multi-material models on dual extrusion printer.
Add the models
==============
Multi-color models are typically distributed as a set of separate STL files. Each STL represents the part of a model that is a certain color. Start by [adding each of the models to your scene](../designing/add-existing-objects.md). In this guide we will be using the dual extrusion version of [Phil A. Ment](https://www.matterhackers.com/store/l/matterhackers-mascot-phil-a-ment/sk/M6DV4FS2) as an example. You can download the files for him at MatterHackers.com. Phil's body will be one color, but his face, shoes, logo, etc. will be another color.
![](https://lh3.googleusercontent.com/GA8TPvMe4_l3KAkV-3pCLibjGFrW2q80HUHTb2uPq2zPgT8JzTfIJB5u9xrp-U-YcEkWVR8haU1f6zmrCsWAutaQuQ)
Choose Materials & Colors
=========================
Select one of the models and a pane will appear on the right side where you can choose the material and color.
The material selection lets you choose which extruder will be used for printing that model. The default is extruder 1.
![](https://lh3.googleusercontent.com/EsizqnatADRbwCmlzQmZUk7d3gb5N0X4QKWtEADqMjHwwloDz-Jaz_MThO4Zcw0PYSbGCeOdxl2_rYu2E_Y0ngGwqg)
The color selection is purely for aesthetics. It only changes how the model appears in MatterControl and has no bearing on how the model will be printed. Nevertheless, you can use it to get a better sense of what your final print will look like.
![](https://lh3.googleusercontent.com/onY2gZniO3I_My5oUt6YeEald9FMnadNWq9ydI4V2fys4ZOixSQ9-sVlj4hpSyGqMAqyk5Iv8YP5z3eVUvZ_wx0pqxU)
The View Style menu will let you switch between the materials view and the colors view.
![](https://lh3.googleusercontent.com/M_R60B62hNhiMJj5YbI283AK1VXvRw__0rAIqAdp2zbRjEpb1iPIxwJOSnbYzkhgG73eP6lUR_gcI14Tgy_3oMalRA)
Align the Models
================
Now you must merge the models together into one object. To do this, we will use the Align tool.
![](https://lh3.googleusercontent.com/8RWZjN0DctgyRzYiiiFiJKMnpxVVHU8OCwP3DMfQoGCSel-GrTbKzKpGLO8WXOBB8cHhSk4h9fWyGPUFmWmLnCIW_Q)
Select both models and then click Align button in the toolbar. Properly designed multi-extrusion models will share the same origin. In the tool panel, choose origin for all three axes.
![](https://lh3.googleusercontent.com/SNbayPrQBplRcy-hCGGSzLGyagxcwIPi2-QElxCIcmob90uAEuXwqyPrPSGKK0OMjbcszPwhOUZJoch1oP7LdFvV)
Tips & Tricks
=============
Print Area
----------
You may have noticed that when a multi-extrusion model is selected, part of the print bed becomes grayed out. This is because, on many printers, the full build area is not available for use by both extruders. When an object is selected, MatterControl shows you which extruders are needed to print that object and grays out the parts of the bed that are not reachable by all of them.
![](https://lh3.googleusercontent.com/38bI_iKQXaU7ZYwWVl0mzxV6p2lY8LMGwcS8WFjc9HpoUSgnnYJ_Mt5tO4NwxzEHDd6MArDJU-DvGk4m3RxR7ddwJhk)
Making Changes
--------------
After alignment, the models are combined. Changing the color or material will affect the object as a whole. However, it is still possible to make changes to the individual components if you wish.
To do this, click the arrow next to the newly created "Align" object in the design tree. This will show it's components (the original models). From here you can choose a model and give it a different color or material.
![](https://lh3.googleusercontent.com/ogbQNE5Cn6rt2ez16fa2MSHA2P9lt2UE0HcHXZv4kQrxuYaVOZ9Nx5ESUy5T2w3WXVdQpQkl5WkEsi_wgh8MCJqt)

View file

@ -0,0 +1,8 @@
MatterControl includes many tools to help you create parts, it also has intuitive controls build right into the 3D view to help you edit parts directly.
- Moveing Parts Around
- You can drag ports around with the mouse and move them up and down with the arrow at the top of a part
- Rotate Controls
![](https://www.matterhackers.com/r/1oH3i1)
- Scale Controls
![](https://www.matterhackers.com/r/yNqiNT)

View file

@ -0,0 +1,42 @@
![mc2](https://user-images.githubusercontent.com/1158332/42059960-0c8c84bc-7ada-11e8-8fb9-0b59daccf008.png)
MatterControl 2.0 is here-the premiere of the newest version of MatterHackers' free, open-source 3D printing software! This All-In-One design/slice/print program comes jam-packed with all-inclusive features that you can access through a new sleek, accessible interface. Makers asked for an enhanced 3D printing experience and the MatterControl Development Team delivered. MatterControl 2.0 provides design capabilities and print-protection features that allow quality 3D printing for both beginners and experienced users. Take ultimate control over how 3D prints turn out by having quick, easy access to a number of printer settings this software provides. Down below are just some of the many customizable features MatterControl 2.0 has to offer to help users achieve the 3D printing experience makers specifically need.
# Design Tools
MatterControl 2.0 empowers users with the ability to design and model anything that can be imagined, in a single program. Add and subtract basic objects together to create interesting and complex designs that can be printed right after modeling. Choose from a variety of primitives in the Design Tools to create fresh models right in the program or use them to add finishing touches to an existing model already made. The possibilities are endless for all skill levels! Want to learn more about the power makers have with MatterControl 2.0's Design Tools? Check out our article [here](https://www.matterhackers.com/articles/mattercontrol-design-tools)
![](https://lh3.googleusercontent.com/EY8bgVaHFG-2M1BVL3UrBeUTC2v22QopDzkuZ5oCakl_hPN3fBlcM_P37c4PiqkKzaEY8MqsVMGwdE83MUXToKMRL_g)
# Design Apps
MatterControl 2.0's Design Apps lets makers add quick, personal touches to pre-made models that can be easily used for practical application. Need a business card holder with a name on it? How about a name tag with a company logo on it? No problem! Our Design App has it all covered. This feature is perfect for both beginners who want to get their feet wet designing before jumping into modeling and also for seasoned modelers who need a quicker way to create multiple, uniquely personalized prints of the same model. Learn more about how Design Apps makes personalization quick, fun, and easy [here](https://www.matterhackers.com/articles/mattercontrol-design-apps)
![](https://lh3.googleusercontent.com/uabLxvtNyEQiDYUF4JhkTrLwm7O0FyFKJOixdMI_j7xH-jJSfhKD5sfYBeRPxbcOQaCjAGhBnfMuqbPPmN-BODM4)
# Customizable Supports
Makers can choose what kind of supports they want for their 3D prints. Whether auto-generated supports is the ideal go-to or specifically design supports for particular parts of the model is more desirable, MatterControl 2.0 offers both options for the maker. Use Design Tools to simply drag-and-drop in a primitive, mark it as support, and MatterControl will treat it as supports for that model. Support internal structures without having to support the entire model based on makers' personal customizations.
![](https://lh3.googleusercontent.com/HlY_cMAhq6JaEG8WPLotvhyaAZsi3o43LZd8-K5nVqmZGgG7mp_EqctlHgHDRCSVpJ6UTUBInonScD48o35u7poWPwg)
# Re-Slice
Actively edit and slice 3D models mid-print to avoid potential print fails using MatterControl 2.0's new Re-Slice feature. Save time, effort, and filament when adjusting models during a print job and seamlessly continue printing. Need to delete only one piece out of a batch that's currently printing without disrupting the printing session? Delete that piece, hit the “Re-Slice” button, and MatterControl will continue printing everything, minus that piece that was just deleted. This is one of many scenarios Re-Slice can resolve so makers don't have to start over and waste filament. Beginners who are still getting the hang of 3D printing and experts who like to experiment with their projects can easily take advantage of this new feature. Rest easy knowing Re-Slice is another arsenal MatterControl 2.0 has to offer from its armory of robust print-protection features.
![](https://lh3.googleusercontent.com/sB01PmozaIIYiWog9uijaOWaho5NkxvVkNz_tp4XvmOtRBls3hbEMcdSve_VzV0QJOvdGVg3na22toqBqZ2jGKk-)
![](https://lh3.googleusercontent.com/fR1JONB0L9pprTagfbvAZSqpSlwUsw6BJ0TpcSth8VlO2_HpeiTFQmCI724MW_HuFuSYBaX4akbXNVHphjzcNFoWcR8)
# Printer Slice Settings & Controls
Successful 3D printing is easier to achieve with MatterControl 2.0. Some makers like to let the software take control and other makers have a strong preference over their print settings. Regardless of preference, MatterControl is able to satisfy various levels of print control for beginners and veterans. MatterControl comes with pre-determined print settings for common filaments such as PLA and ABS so when makers open up this software, they can select which filament they're printing with, hit print, and get successful results. Need more control? Check out a whole bunch of new settings makers can tinker with under Slice Settings and Controls. From Speed and Support, right down to the type of infill, makers have complete control over which settings satisfy their print needs for successful 3D printing.
![](https://lh3.googleusercontent.com/SCOcKcuhQrpUYp2Dtw2w_9eSbY6Y8oLPOyXIt6YdCmsRtBwog3GwA05PDQgDWieOaWXiE81OtszGus5hC2hMlb8x)
# Made for Makers, By Makers
MatterControl is able to continuously be the best software it can be thanks to the combined efforts of the MatterControl Development Team and the software's active user base. We're able to provide the best desirable features for makers because the makers directly let us know what the want to see. Our latest development, MatterControl 2.0, is designed to make creating even easier with equipped features that makers actually need.
Curious about other features MatterControl 2.0 has to offer? Click [here](https://www.matterhackers.com/articles/mattercontrol-whats-new) to learn more!
![](https://lh3.googleusercontent.com/ZWNBHFsufxr5vgWEIpko2edlLVodqb_HnlyvBIiNOuDDUwVLXEoPJCdnaS-l4Z9-Zz5jUHB5CnFdstPQHoz35rTH)

View file

@ -0,0 +1,82 @@
MatterControl includes all the things you need to create your ideas - out of the box!
![2018-07-02 10_46_48-start](https://user-images.githubusercontent.com/1158332/42188916-c7102220-7e0a-11e8-8d7b-dc1921e304c6.png)
Whis these simple primitives and the included tools you can create anything you can imagine.
- Cube
![](https://lh3.googleusercontent.com/aGY-iwwo77dHM61NXPzSkB2IAF9mVyiRtwQqzJ7MB2kHKFbGh-O1mqxTYGr_PBub63jvVcZNFCT_FM7MKf4_RH8b07A)
- **Width:** Set the size in X
- **Dethp:** Set the size in Y
- **Height:** Set the size in Z
- Pyramid
![](https://lh3.googleusercontent.com/U3AI6kAX3FMp1MEVn1HTHXzrH1-mKGN6hxQx0p_WRP0ETbj2ckSffbsFX_C1H8jct5pw0P5TFPbYGPbF2hzh1ulv4Q)
- **Width:** Set the size in X
- **Dethp:** Set the size in Y
- **Height:** Set the size in Z
- Half Wedge
![](https://lh3.googleusercontent.com/r6-jVvMdeFiG3mH04WTBNRvY5ibWze0WejDxdla43PCkC1aj1NR6oQBrlncOWmOn-xlgZDzUkTgvSFfSpdEA9NST-w)
- **Width:** Set the size in X
- **Dethp:** Set the size in Y
- **Height:** Set the size in Z
- Text
![](https://lh3.googleusercontent.com/XLlyBUeloa3Q1FQF8-fCD0zx036yFCLsvyUKrE9zaV-p1k4Jt4m5QK3W59c8CnwPurZ_RW2xBazi9E3AmMmhkuL_OA)
- **Name:** Type whatever text you want to show
- **Point Size:** Set the size of the font. This is acurate when printed to the same size as a 2D printer.
- **Height:** Set the height you want to have the text reach up to
- **Font:** Select the font you would like to use
- Cylinder
![](https://lh3.googleusercontent.com/Gy_YL8RYVbXwPDHVgkixUC17HN8qOLLOdaVzsNfGD1uFCjlWFD8nWPB56GcCh_Wj7fXQBqCWtuxidMi26dDfxycWnvw)
- **Diameter:** Set the size accross the part
- **Height:** Set the size in Z
- **Sides:** Set the number of faces (or sides) around the part
- **Advanced:** Opens up advanced settings to control more features
- **Starting Angle:** The angle to start revolving the cylinder
- **Ending Angle:** The angle to end revolving the cylinder
- **Diameter Top:** The size of the top of the cylinder
- Cone
![](https://lh3.googleusercontent.com/4sI0U7pg8VQ8XF_3B1g45bMZVri-GfSDdLvra1T4a4nk2gxF1M9gia93YPCkCGEomnUk7OJ3dpZhLiKhfFaVdc46Kg)
- **Diameter:** Set the size accross the part
- **Height:** Set the size in Z
- **Sides:** Set the number of faces (or sides) around the part
- Half Cylinder
![](https://lh3.googleusercontent.com/fT-7yIMHHdCI0gsT8Lg-iKQZTkoqp83bGWn3r15AP54G3xmhMzjcY_PWbBooH9JGwS7Hl751Y-jAEhYPyY16CsCTPKo)
- **Diameter:** Set the size accross the part
- **Height:** Set the size in Z
- **Sides:** Set the number of faces (or sides) around the part
- Torus
![](https://lh3.googleusercontent.com/1DumDge1akFN1MtEkRodtAzEbvltv0LnJJyNGs3Dg7mXTlEMf4O8eUzzqjNICYUpPH5VbWoulzVy2QFlr1BjGEbwlS4)
- **Outer Diameter:** Set the size accross the part
- **Inner Diameter:** Set the size of the inside of the torus
- **Sides:** Set the number of faces (or sides) around the part
- **Advanced:** Opens up advanced settings to control more features
- **Starting Angle:** The angle to start revolving the cylinder
- **Ending Angle:** The angle to end revolving the cylinder
- **Ring Sides:** The number of sides going around the ring
- **Ring Phase Angle:** The angle to start the ring sides
- Ring
![](https://lh3.googleusercontent.com/1ASbrlGEXjbdfyQoZ-114b3C49vegubB2-Z21QC0k6Xqfd3kZAM1RuGxfRcdrIYOMICXMoob3WKsUOBeA0SLWxHS)
- **Outer Diameter:** Set the size accross the part
- **Inner Diameter:** Set the size of the inside of the torus
- **Height:** Set the size in Z
- **Sides:** Set the number of faces (or sides) around the part
- **Advanced:** Opens up advanced settings to control more features
- **Starting Angle:** The angle to start revolving the cylinder
- **Ending Angle:** The angle to end revolving the cylinder
- Sphere
![](https://lh3.googleusercontent.com/G5szbI2VfLCyrWTrFLKfcN1LkUbtiDvvNom0u5ZL_9OsNYqM_mxMzjofLBwlXVsK08r91kMyuxoTyc_4ox8UzDOJ8-8)
- **Diameter:** Set the size accross the part
- **Sides:** Set the number of faces (or sides) around the part
- **Advanced:** Opens up advanced settings to control more features
- **Starting Angle:** The angle to start revolving the cylinder
- **Ending Angle:** The angle to end revolving the cylinder
- **Latitude Sides:** The number of sides going top to bottom
- Half Sphere
![](https://lh3.googleusercontent.com/XIeylvk9sytZfAvOAZfbJaw0BjJocgcGF4ISZ8oo42zoDxbfe1m3jq-prZ7wFTxI-aZvfi3sQNPoP92bWvsbu7AW1eY)
- **Diameter:** Set the size accross the part
- **Longitude Sides:** Set the number of faces (or sides) around the part
- **Latitude Sides:** The number of sides going top to bottom
- [Image Converter](designing/design-primitives/image-converter.md)
![Image Converter](https://lh3.googleusercontent.com/85c3ecIUQklR2nRZtT_CM4VUUxeGErNTfPUOMxBMqjcb8pAplPBO0bIA8CAHtLymORPBo4QpvdDyW-9dMPmqVp1Abg)
- Image Converter can help you build complet extrusions from images
- You can also drag images directly to the bed and use the tools you find in the overflow menu to create all the fetures (and more) of Image Converter.

View file

@ -0,0 +1,18 @@
A brim is an expansion of the first layer of your print. It consists of a series of extra loops connected to the print around the first layer.
![](https://lh3.googleusercontent.com/n-3ocstUK4mHgVhtY74wrGomQUSTH4W9VdEMXZwjmG3yl_iAUaGATBbmfhgsxvPZHut_RRLs67JRi_94AzIp2uV4UjA=s0)
The purpose of a brim is to provide better bed adhesion by giving the print more area to stick to the bed. If a print has a very small contact area with the bed it can be dislodged during printing.
A brim can also help with large print which are prone to warping and peeling in the corners. The brim helps hold the corners down and prevents this from happening.
A brim must be sliced off after printing. This can be done easily with a hobby knife or a deburring tool.
Distance or Loops
=================
The number of brim loops to draw. Alternatively, you can also specify the thickness of the brim in millimeters. A larger brim will provide better bed adhesion.
**Recommended Baseline:** 8 mm
**Units:** count or millimeters (mm)

View file

@ -0,0 +1,66 @@
*This section is only available if your printer has a layer cooling fan*
Adequate cooling is very important for achieving high quality prints. A layer cooling fan is used to cool off the plastic as soon as it comes out of the nozzle. This ensures that it hardens quickly and holds it's shape. If a layer above is being printed while the layer below is still soft, it will deform. If you have inadequate cooling it will be most apparent on overhangs and sharp corners. Overhangs will tend to curl up and become very messy underneath. Sharp corners will become rounded and blunt.
Fan settings are heavily dependant on the material you are printing. Some materials, like PLA, respond very well to cooling. For PLA you will want the fan running basically all the time. However, other materials do not react well to cooling. For instance, with ABS it can cause the layers to split apart from each other (delamination). In this case you only want to use the fan when absolutely necessary.
MatterControl controls the speed of your layer cooling fan based on how long each layer will take to print. Layers with a small area will take less time to print. Thus, there will be less time for them to cool off and harden before the layer above is printed. So more fan power will be necessary. MatterControl's layer view will show you how long a particular layer takes to print, and the fan speed used for that layer.
This graph shows an example fan speed profile.
![](https://lh3.googleusercontent.com/0YsAZ2INXEKL5uR6Tto9_U0zsj8krLjvsn2npMAKcqRII0wg_6MsP6vZ_JEiwJMiuiGU1oXXvqvvlYOC__yunxYJ=s0)
Turn On If Below
================
This is the maximum layer time where the layer cooling fan will be activated. The fan will run at the [minimum speed](#minimum-speed) if a layer takes this long to print. In the example above this setting is 180 seconds.
**Recommended Baseline for PLA:** 180 s
**Units:** seconds (s)
Run Max If Below
================
This is the maximum layer time where the layer cooling fan will run at [maximum speed](#macimum-speed). If a layer takes longer than this to print, the fan will still run but it will be throttled down. In the example above this setting is 60 seconds.
**Recommended Baseline for PLA:** 60 s
**Units:** seconds (s)
Minimum Speed
=============
This is the lowest speed the fan will go when it is turned on. If not enough power is applied to the fan, it will not turn on at all. For this reason, most printers are not capable of running their fan at very low speeds. This should be set to the minimum speed that you know your fan will work at. If you are unsure, you may try experimenting with different fan speeds using the [manual controls](../../printer-controls#fan) to see how high you have to go before the fan starts spinning.
In the example above the minimum fan speed is 30%.
**Recommended Baseline:** 30%
**Units:** percent (%)
**G-Code Replacement Variable:** `min_fan_speed`
Maximum Speed
=============
This is the fastest speed the fan will go when it is turned on. This should be set to 100% unless you have an extremely powerful fan.
**Recommended Baseline**: 100%
**Units:** percent (%)
**G-Code Replacement Variable:** `max_fan_speed`
Bridging Fan Speed
==================
This is the fan speed that will be used during [bridging](speed#bridges). This overrides the other fan speed settings. In most cases you will want to use as much cooling as possible during bridging in order to make sure that the lines harden as soon as possible. This draws them tight (due to thermal contraction) and prevents them from drooping.
**Recommended Baseline:** 100%
**Units:** percent (%)
**G-Code Replacement Variable:** `bridge_fan_speed`
Disable Fan For The First
=========================
The number of layers at the start of the print where the fan will not be turned on. Generally, for materials that require layer cooling, its a good idea to disable for the first layer in order to ensure good bed adhesion.
**Recommended Baseline:** 1
**Units:** count

View file

@ -0,0 +1,41 @@
MatterControl is an all-in-one desktop 3D printing software application created by MatterHackers, Inc. You can use it to create, organize and manage 3D prints. MatterControl features an intuitive approach to everything you need to do to be successful with 3D printing
# Sign in
# Select or Create Your Printer
1. First you need to select or create your printer
![Select or Create](https://lh3.googleusercontent.com/lJtDqeg8jCpQi6FPATD1KgkcZ41BKkKu_IRGTPXHZvWsqYIOCOQ-cz3Hkd4dCwQgnzwq03y_JwkQHkmSewmppbOcGw)
1. If you have an existing printer your will find it in the list where 'Printers...' is shown
![](https://lh3.googleusercontent.com/TYWVZWUBExKkJ634Gc8G_FWr1FVKUDg81-M0nrgnq9HhcJNaDnKC5cKvZFqlU3P3Jc8BVlArLHfrdYffgt5koqV1)
1. You can now select an 'Empty Bed' to connect to your printer and start adding things to plate
![](https://lh3.googleusercontent.com/jJTx0uZ1a3q7BIvKQLpV2cy5fJuqetsqPKyD7K0UItqIjPRpmiSLF5YwLv2boadPhrApwiag3TUz3RU730iusQ1YUZc)
1. If you do not have an existing printer your can click the + to create a new one
![Create Printer](https://lh3.googleusercontent.com/DcR9UMCS4RogMXP4XQIitYOkddLmZIy9DJzVSFDrUuJvJuxXonTgoA2AzNlQYgr1BO3-q-gcE4F2Q_VzQMbSznsNJA)
# Connecting to a Printer
* Once you have selected your printer and opened it up to an empty bed, MatterControl will automatically help you connect and get your printer configured for your first print.
# Selecting an Object to Print
For your first print we will add Phil-A-Ment (the MatterHackers mascot) to the bed
1. You can find him in the library under Calibration Parts
![](https://lh3.googleusercontent.com/ezo7-PcZ0c-YIf6TJ8vIY81rzA2acEdu3AqcaXp_QcQugy15jylf0uawMLD-CI1kx04n0OoXnmgzGMf6_0lWTyFSh1I)
# Starting the Print
1. Now that you have a part on the Bed you can click 'Print'
![](https://lh3.googleusercontent.com/AeiAfIESQFalLMGEDdQuayP2X3nhC5naYFq-siwI2aJHnaFPqNfmjGPvkAltslrpjpGmcEB7AQs2q-_TN0iomkD9)
1. This will show the quick printing options, don't wory about these for now.
1. Click 'Start Print'
**You should now be up and printing**
# Getting Back to Help
* You can come back to the help at any time by clicking on the 'MatterControl' menu and selecting 'Help'.
![](https://lh3.googleusercontent.com/QrO213jp2jIfd4O3OrkWjIjkhMyCSMWjtQ-OXK6PWdSkxVy9f_NKbu8-BiyR-tryrXrztcL4yJ4MNSO2i7V7fhT43zI)

View file

@ -0,0 +1,46 @@
MatterControl allows you to create and design parts. It include everything you need to get your ideas into reality with a complete set of tools to help you realize your ideas.
## Primitives
![2018-07-02 10_46_48-start](https://user-images.githubusercontent.com/1158332/42188916-c7102220-7e0a-11e8-8d7b-dc1921e304c6.png)
## Operations Tool Bar
![2018-07-02 09_26_32-window](https://user-images.githubusercontent.com/1158332/42188880-a4ba13b6-7e0a-11e8-90a2-2cacf4bca484.png)
## Undo and Redo
![](https://www.matterhackers.com/r/Sp329R)
- Many of the operations in MatterControl become part of the undo history and clicking these buttons or typing 'Ctrl + Z' and 'Ctrl + Y' will undo and redo them
## Grouping and Upgrouping
![](https://www.matterhackers.com/r/8Fq5aa)
- Grouping: If you select multiple objects you can group the together. This will allow them to be move an opperated on as if they were a single object
- Ungrouping: Once objects have been grouped you can upgroup them at any time. This will also attempt to find multiple bodies in a single STL if they are present and separate them into multiple objects.
## Copying and Deleting
![](https://www.matterhackers.com/r/KjnVvj)
- These buttons can be used to may a copy of the selected object or delete it. You can also use the systems copy, cut, past features.
## Align
![](https://www.matterhackers.com/r/tIyb5N)
- This tool allows you to align multiple objects relative to eachother
## Lay Flat
![](https://www.matterhackers.com/r/a5kMJP)
- This tool allows you to quickely get a selection to be on the bed and as flat as possible. It attempts to make the lowest face of the selected part lay flat on the bed.
## Support Material
![](https://www.matterhackers.com/r/L7B71o)
- This turns whatever you have selected into support material. The slicing engine will be smart about finding and creating interface layers and not intersecting the parts that are touching the support.
![](https://www.matterhackers.com/r/sjMyWZ)
## Combine, Subtract, Intersect and Subtract & Replace
![](https://www.matterhackers.com/r/cljE29)
- These tools allow you to create complex objects by combining simple shapes into more sophisticated shapes.
## Arrays
![](https://www.matterhackers.com/r/NrrOSq)
- These tools allow you to make multiple copies of a part in an ordered and predictable way
## Transforms
![](https://www.matterhackers.com/r/J5sl3b)
- These tools make it easy to change your parts in interesting an useful ways

View file

@ -0,0 +1,116 @@
# MatterControl 2.20.4 (April, 4, 2020)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgNDitZ7GCgwLEgZVcGxvYWQYgIDQromy-AoM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgNDI4MDrCwwLEgZVcGxvYWQYgIDQzuy_-QsM)
## Changes
* Added Hollow Feature
![Hollow Menu](https://lh3.googleusercontent.com/JiCUdiJx0eboPJk2cQH3dMOvlrFsFcz7OK-v9nG3G8ztDDHovXw--xaDsN8-HbFhFfAz5jSFKHUNQwnee5WXRNApH2M=w120) ![Hollow Example](https://lh3.googleusercontent.com/-ImcYYK1I3P7tvxJXLRYDitBkc2xfXD0mElN3tiX8mZk1-Qe0Gxm5TtXXzC-Er756XajqOPpu7HFEuflNCnbZZqEzg=w220)
* Added Polygon Reduce
![Reduce Menu](https://lh3.googleusercontent.com/Pw2RYm45dFljKfmAq65378bpwULWxH857_Gz_SB95JLsmQYF3YmhOJ-XFEtWqWcFcK4weNLmz2hnVggk_85jWFDE=w120) ![Reduce Options](https://lh3.googleusercontent.com/h6opzhbdA352u9JFtIcqPnrnJC4JjcoVehdFstGZHe1gu7qiupQ8KAYrngTORjSyUerGlxhX48sGHLlwF2AoPjG0ifw=w220)
* Added Mesh Repair
![Repair Menu](https://lh3.googleusercontent.com/uQ8uaWvzremfTd7jkSu7OhKURHfvyEAFtbT1_KaTL1wgSrSUOjjQ0tm1a6uROpe6JZwC50HvdB4bJcGq8XqGAUMwmg=w120) ![Repair Options](https://lh3.googleusercontent.com/C-fT1jQ-z1oOU1uBzWNLCN2IsAGOGAmJdhmUKqQLhC3p9_WdeKFDNKSoTGb4U8RRDdYk2ZRbWJ2FbjfNKzo6ii6v=w220)
* Put in fully automatic support (legacy support) as an opption in additon to new manual support option
* Added Support for gsSlicer (Experimental new slicing engine)
* Fixed bugs
# MatterControl 2.19.10 (September, 27, 2019)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgJDX6u_ICAwLEgZVcGxvYWQYgIDQsJO5jggM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgJDnoZqsCwwLEgZVcGxvYWQYgIDQiLCwtAgM)
## Changes
* Dual Extrusion Improvements
* Made the default wipe tower round
* Made un-retract after tool change able to be negative
* Made custom wipe towers follow the geometry defined by the user
* Improved ungrouping of mesh (splitting into multiple meshes)
* Discard degenerate faces
* Discard microscopic discrete features
* Fixed Bugs
* Export STL when no printer has been created
* Export STL on Mac
* Arrange all when no printer has been created and the bed is empty
# MatterControl 2.19.7 (July, 15, 2019)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgJDb5NzbCAwLEgZVcGxvYWQYgICQp9-hnAgM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgJCbheGPCgwLEgZVcGxvYWQYgICQp7mfqgsM)
## Changes
* Added search bar for application
* ![Search](https://lh3.googleusercontent.com/pAN6dqaGJJZs0cVZZDtkY40IlLXeoHNFmoovzivkGdhzCwN65wuqQdYvguoVo7SewCNl33mbLMd__OVw6BJhhV1n)
* Improved design tool bar
* Added grouping to some items
* Added dual align button
* Added Arrange All button
* Nudge items on the bed with arrow keys
* Downloads folder is sorted by date
* Sped up dual extrusion calibration prints
# MatterControl 2.19.6 (June, 10, 2019)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgICj88eNCQwLEgZVcGxvYWQYgICQ6-PE6woM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgIDYrveUCgwLEgZVcGxvYWQYgICQq76l2AkM)
## Changes
* Printer setup dramatically improved with new unified experience
* Show outstanding tasks and progress
* Leveling visualization
* Dual extrusion improvements
* New Nozzle Calibration Wizard (for calibrating dual extrusion printers)
* Support for custom wipe tower shapes
* Improved support material detection
* UI improvements
* Faster updates in Cloud Library folders
* Restore UI on re-open
* Better Keyboard navigation support
* New error detection and warning system
* More hardware errors handled
* Design tools improvements and optimizations
* New Twist tools
* Improved Curve tool
* Improved Align
# MatterControl 2.19.2 (February, 6, 2019)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgICt8ISVCgwLEgZVcGxvYWQYgICA_ZPAggoM)
## Changes
* Fixed bugs with exporting G-Code
* Improved flatten
* Improved Undo support
* Improved design history
# MatterControl 2.19.1 (January, 2, 2019)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgIC17KWBCgwLEgZVcGxvYWQYgICAzeeZlQoM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgICY9dKCCgwLEgZVcGxvYWQYgICA2Oq1kAoM)
## Changes
* Versioning: Moving to a (version).(year).(month) version number. Easier to read and more informative.
* Multi-printer control
* A single instance of MatterControl can now run multiple printers simultaneously
* New State-of-the-art Subtract, Combine and Intersection (Window only)
* We now start up with a 'Feature Tour' to help new users find their way
# MatterControl 2.0.0 (November, 19, 2018)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgIC1rPiMCgwLEgZVcGxvYWQYgICAtezqjgoM)
[Mac Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY7AcMCxINUHVibGljUmVsZWFzZRiAgICY3u-ICgwLEgZVcGxvYWQYgICAmPmLnAoM)
## Changes
* Design Tools - The ability to 3D model with a complete set of modeling primitives
* Use a primitive to create your own customized supports
* Design Apps - Design Apps: sophisticated customizable designs
* 64-bit Processing
# MatterControl 1.7.5 (August, 14, 2017)
[Windows Download](https://mattercontrol.appspot.com/downloads/development/ag9zfm1hdHRlcmNvbnRyb2xyOwsSB1Byb2plY3QY6gcMCxINUHVibGljUmVsZWFzZRiAgICGgYiLCgwLEgZVcGxvYWQYgICAps6mhwoM)
If you are looking for the older interface to MatterControl, this is the last stable version without design tools.

View file

@ -0,0 +1,6 @@
MatterControl has the tools to enable designing and creating your own models and 3D prints. With an array of new tools called "Design Tools" you can now combine and subtract different parts together to create something brand new and your own. But if that still sounds a little too intimidating for you we have an answer for that too: Design Apps. Rather than having to create a 3D model entirely from scratch, instead you have several parameters you can change to make it fit exactly what you need.
![Design Apps](https://lh3.googleusercontent.com/dshWx4m208jj7S0ochB0HRORvZ7nVcmh_lfbEiePNTigELHHkdz7VHVm9twVsQvOZ8ub0P23o9RESY41zx4ABVfllA=s300)
## [Read More About Design Apps on MatterHackers.com](https://www.matterhackers.com/articles/mattercontrol-design-apps)

View file

@ -0,0 +1,39 @@
Support material is used to hold up parts of your print while it is being printed. The printer cannot print structures in midair, since the plastic will just fall down to the bed. So any parts of your print with nothing below will require support material to hold them up.
![](https://lh3.googleusercontent.com/wHd93HItCPyqb5fHGhOd4ic9wFXksziIvAMWhH-TIQmAayB_0Uu5fzFMZpMabCJPH81B0UE9YtJfYWmhzU_o_CpvTA=s0)
Support structures are designed to be removed once the print is completed.
Support is required on overhangs more than a certain angle and where [bridging](../speed/speed#bridging) is not possible.
Support structures can be generated automatically, or you can use the design tools to create support structures manually. This allows you to place the support only where you want it.
Support Everywhere
==================
When this option is off, support structures will only be created where the bottom of the support will be touching the bed. When this option is on, supports will be created everywhere, including places where the bottom of the support is on top of part of the print.
These pictures show Support Everywhere off and on.
![](https://lh3.googleusercontent.com/lsQezUyXcoKvXC9otva7en0n1m0RFYsjfbsX_ZvAycq8hRwwz9MnW_RMD3qQM_key3UD-92lCa9uwiuLByXcJk7sPw=w200) ![](https://lh3.googleusercontent.com/U81WpnoO4fFRM7bB3Fq9CxMSTFnQrtUAmmc8v3KkhUC7WNYDD61ljP5bQK5Y210BgaT8Hj8kQUllqvEStbWBmpAY=w200)
**Recommended Baseline:** Off
Support Percent
===============
This controls the amount of support material that will be generated. It is similar to the support angle setting in other slicers.
The support percent threshold controls how little overlap there can be between lines on one layer and the layer below. If there is not enough overlap, then support is created in that area.
![](https://lh3.googleusercontent.com/0oWaiPwhV4FB-QKEZ0G59UzUnw42C8sZHJXPhHpE8UiHO1RzBrBuH-Nw41KZYvUnv7ghz3uskMCqZ_26LbaPOhNw)
**0%** means that support will only be created in areas where the lines do not overlap the layer below. Note that even though the setting is 0, support will still be created.
**50%** means that support will be created in areas where the lines have 50% or less overlap with the layer below.
**100%** means that support will be created everywhere no matter how much overlap there is.
**Recommended Baseline:** 30%
**Units:** percent of extrusion width

View file

@ -0,0 +1,30 @@
*This section is only available if your printer has multiple extruders*
Wipe Shield Distance
====================
A wipe shield (or ooze shield) is a wall around your print. It protects the print from plastic leaking from the inactive nozzle while the other nozzle is printing. When the nozzle passes over the shield, any plastic drooling from it is wiped off.
![](https://lh3.googleusercontent.com/umKVkO1WJHPaxSYm3OVkIR-C5luUQuUYC_H2YCxiq-zFJ2HPjqUR7CAmwT62rLl1apXR4_izSykRaAy61e-QVJe5=s0)
A wipe shield is mainly necessary for printers with fixed dual extruders. If the printer has an independent extruder system then the wipe shield is not necessary.
This setting controls how far the wipe shield will be from the print. If set to `0`, the wipe shield will not be printed at all. The wipe shield will also not be printed if only one extruder is being used.
**Recommended Baseline:** 3 mm
**Units:** millimeters (mm)
Wipe Tower Distance
===================
A wipe tower (or prime tower) is a structure used to prime the nozzle after switching extruders.
![](https://lh3.googleusercontent.com/Ua0cCUc6ziOlt77t2_VNT00-eyWw_Ng8nzHFVl-iCjUhl1tBiL2lbsiBkYB2ddBQ78zDeBg8-c-LJrZu8miFZAMGvlA=s0)
When switching from one extruder to another, the nozzle will go over to the tower and fill it in. This ensures that the nozzle is fully primed and leaking plastic is cleaned off before it does the actual print.
This setting specifies how wide the tower will be. If set to `0`, the tower will not be printed at all. The tower will also not be printed if only one extruder is being used.
**Recommended Baseline:** 10 mm
**Units:** millimeters (mm)

View file

@ -0,0 +1,110 @@
Installation
============
MatterControl is available for Ubuntu/Debian or Arch based distros.
Ubuntu / Debian
---------------
MatterControl officially supports Ubuntu Linux and other Debian based distributions, such as Mint. The latest stable release is always available as a .deb package. It is available here or at [MatterControl.com](mattercontrol.com).
[Download MatterControl for Ubuntu](https://mattercontrol.appspot.com/downloads/mattercontrol-linux/release)
### Installing Mono
MatterControl requires the latest version of Mono in order to work. Although Mono is available in Ubuntu, the version provided is usually severely outdated. On Ubuntu 18.04, follow these steps to add the official Xamarin package repository and update to the latest version of Mono.
```
$ sudo apt install gnupg ca-certificates
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
$ sudo apt update
```
There are also instructions for other distributions on the [Mono website](https://www.mono-project.com/download/stable/).
### Serial Port Permissions
In order for MatterControl to access the serial ports, you will need to give your user the appropriate permissions. On Debian or Fedora based distros, add yourself to the `dialout` group.
```
$ gpasswd -a $USER dialout
```
You will then need to logout and log back in for the changes to take effect.
Arch
----
An unofficial package is [available in the AUR](https://aur.archlinux.org/packages/mattercontrol/). Install it manually or using your favorite AUR helper.
```
$ yay -S mattercontrol
```
### Serial Port Permissions
In order for MatterControl to access the serial ports, you will need to give your user the appropriate permissions. On Arch you must add yourself to the `uucp` and `lock` groups.
```
$ gpasswd -a $USER uucp
$ gpasswd -a $USER lock
```
You will then need to logout and log back in for the changes to take effect.
Raspberry Pi
============
Because MatterControl is written in C#, it can run on any processor architecture. The regular Linux version of MatterControl will run the Raspberry Pi. However, you must have the [experimental OpenGL drivers](https://www.raspberrypi.org/blog/another-new-raspbian-release/) installed and enabled. To do this, run `raspi-config` and go to Advanced Options > GL Driver.
If you have the Raspberry Pi touchscreen, remember that you can switch MatterControl into Touchscreen Mode through the application settings.
Assigning Serial Ports
======================
On Linux, serial port assignments can change whenever a printer is connected or disconnected. MatterControl cannot tell which printer is connected to which serial port. You can setup a udev rule to permanently assign a unique port to your printer.
Do `ls /dev/tty*` before and after connecting your printer to find out which port it is assigned to. Printers will show up as either `/dev/ttyACM#` or `/dev/ttyUSB#`.
Use `udevadm` to get the serial number (UUID) of the USB device. This is a unique 20 digit hexadecimal value.
```
$ udevadm info --attribute-walk -n /dev/ttyACM0 | grep "serial"
```
Some printers will not report a serial number. In this case, you will have to use other attributes to identify it such as the vendor ID (idVendor) and the product ID (idProduct).
Create a file `/etc/udev/rules.d/97-3dprinters.rules`. Here is an example with rules for two printers.
```
SUBSYSTEM=="tty", ATTRS{serial}=="6403237383335190E0F1", GROUP="uucp", MODE="0660", SYMLINK+="tty-taz"
SUBSYSTEM=="tty", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="076b", GROUP="uucp", MODE="0660", SYMLINK+="tty-pulse"
```
Fill in either the serial number or vender and product IDs based on the information you obtained earlier. Make sure `GROUP` is set to the same group ownership as the rest of your serial ports. This is usually `dialout` on Debian or `uucp` on Arch. You can check by doing `ls -l /dev/ttyACM*`. Lastly, give your printer a unique name for the `SYMLINK`. This name must start with `tty` or it will not show up in the list in MatterControl.
The next time you connect the printer, a symlink will automatically be created that points to the correct serial device. You can now configure the printer in MatterControl to use the symlinked port.
Known Issues
============
Upgrading from 1.7 to 2.x
-------------------------
There is a problem with 1.7 that will cause the automatic update to fail. It will download the update package, but it will have the wrong file extension. This prevents the package from opening and being installed correctly.
To get around this, download and install the MatterControl 2.X package manually.
Does not start on systems with low end GPUs
-------------------------------------------
MatterControl uses anti-aliasing features which may not be available on extremely low end GPUs (for instance, virtual machines or embedded systems). In these situations, MatterControl will not be able to start. To launch MatterControl you will need to disable anti-aliasing. Edit the file `/usr/lib/mattercontrol/appsettings.json` and change `FSAASamples` from `8` to `0`.
```
"FSAASamples": 0
```
Even on systems that support antialiasing, disabling it can greatly improve performance.

View file

@ -0,0 +1,40 @@
# What is the optimal layer height?
In reality, there is no “perfect” layer height. It all depends on what kind of print you are going for. If you want a print with a smooth finish and very fine details, you want a layer height of 0.1 - 0.2. If you want something a little rougher, perhaps a part in a bigger assembly, a layer height of .21 - 0.3 is more suited to your needs. You can of course have a larger layer height, but you cannot make a layer higher than the diameter of the nozzle.
# How much infill should I use?
The amount of infill in your part directly relates to how solid it is. Would you like a completely solid part? 100% infill is what you need. Something hollow? 0% infill will leave you with nothing but the outside layers. Usually to have a strong part, you only need about 35% infill. Most parts will be fully functional with about 15% percent infill. For really big parts, a smaller percentage is recommended, as increasing it unnecessarily can waste materials and increase print time.
# How do I stop the fan from coming on during printing?
Set both the Minimum Fan Speed and Maximum Fan Speed to 0.
# What does support material do?
When you check the Generate Support Material box, your print will contain support material. This is used to provide support in areas of a design that are otherwise suspended in the air, such as a bridge or a ledge. The properties will change depending on which slice engine you use.
# What is the the optimal temperature for printing?
That all depends on the type of filament you are using. The right temperature can also be affected by the filament dye, and manufacturer. Here is the recommended starting point for each filament:
- **PLA** 190-210°C
- **ABS** 220-240°C
- **PET** 240-250°C
- **NYLON** 240-250°C
- **LAYWOOD** 175-250°C
- **LAYBRICK** 165-210°C
- **SOFT PLA/BENDLAY/TPE** 220-235°C
- **GLOW IN THE DARK PLA** 185-205°C
- **PVA** 170-190°C
Using these guidelines, you can find a temperature that works for your particular filament. You can also use these to configure your temperature presets.
# What is the optimal temperature for the heated bed?
Again, this depends on the filament that youre using. Here are the recommended starting points.
- **PLA** 70-80°C
- **ABS/NYLON** 100-120°C
- **SOFT PLA/BENDLAY/TPE** 65-85°C
Using these guidelines, you can find a temperature that works for your particular filament. You can also use these to configure your temperature presets.

View file

@ -0,0 +1,8 @@
After [Selecting a Printer](selecting-a-printer.md) you can easily export G-Code to be printed from an SD card or saved for printing at a later time.
- Open the 'Bed' menu and select 'Export'
- Select 'Machine File (G-Code)' and click 'Export
![](https://www.matterhackers.com/r/ckrJa9)
- Save your G-Code to a known location (or directly to your SD card)
![](https://www.matterhackers.com/r/Eq87aq)
## Success!

View file

@ -0,0 +1,14 @@
Follow these steps to get your new printer up and running in no time.
1. Navigate to the 'Start' Page
![](https://lh3.googleusercontent.com/uXcO0mZ92L4D7sCpXbbWAc6OOTAVfjc-Rr7Y0Tz_DKVZlMKkEmIffBmbeiOVQqWERJyFCfRzjd6Jy_WGoW2RWHNa_Q)
1. Click the + button to select and add a new printer
![Select or Create](https://lh3.googleusercontent.com/lJtDqeg8jCpQi6FPATD1KgkcZ41BKkKu_IRGTPXHZvWsqYIOCOQ-cz3Hkd4dCwQgnzwq03y_JwkQHkmSewmppbOcGw)
1. Complete the printer selection wizard to add a new printer
![Create Printer](https://lh3.googleusercontent.com/DcR9UMCS4RogMXP4XQIitYOkddLmZIy9DJzVSFDrUuJvJuxXonTgoA2AzNlQYgr1BO3-q-gcE4F2Q_VzQMbSznsNJA)
1. Your new printer should now be selected in the printer selection area
![](https://lh3.googleusercontent.com/4v0RHJ4W8NbDza73WAIzZsR8422UPlL4kPrSTQtl1E9RpJJBAb0HuAlQ0eroey20xaeJsqfprv8Bt0_fJuF-ZAwu)
1. Click on 'Empty Bed' (or an existing bed if you have one) to open it up in the printer view
1. The connection wizard will open up and help you connect to your printer
![](https://lh3.googleusercontent.com/cEHA3TnizTX1gjTtIg-NsQyb_j2NmuUKpegc7J8rFDrMKykm7pWKM7LLzAqXkVkAEQsD9ZFXJpfDSHkhwT7ugklZBQ)
1. MatterControl will also run any setup wizards that are required for your specific printer

View file

@ -0,0 +1,17 @@
# Issue Reporting
If you find a bug or a problem with MatterControl, or you wish to make a suggestion to improve the product, please file an issue on our [GitHub](https://github.com/MatterHackers/MatterControl) page.
# Forum
Visit the [MatterHackers forum](https://www.matterhackers.com/community) for lots of great information about 3D printing and MatterControl:
# Articles
Browse through the MatterControl [Information Articles](https://www.matterhackers.com/topic/mattercontrol):
# Support
If you don't find what you need in the articles or forums, have look at our [support page]()
Thanks for your support.

View file

@ -0,0 +1,19 @@
Image Converter can help you easily build parts from images
### Add Image Converter
- Drag Image Converter from the side bar to the bed
- Change the image that it is using by clicking 'Change'
![Image Converter](https://www.matterhackers.com/r/zrXG9u)
### Change the height
- Once you have an image on the bed you can change its height
![Change Height](https://www.matterhackers.com/r/MOtISv)
### Search for new images
- Image converter can also help you search Google for images you might want to use (make sure you have permission for any image you use).
![Search Image](https://www.matterhackers.com/r/p3lA0F)
### Add a Base
- Once you have the image you want you can easily add a base to your creation.
![Add Base](https://www.matterhackers.com/r/LBiZnR)
### Images can also be used directly
- You can also directly drag images to the bed and use the tools you find in the right click menu to create all the features (and more) of Image Converter.
Explore and have fun, the only limits are your imagination

View file

@ -0,0 +1,35 @@
Infill is the area of a print inside the perimeters. The main infill settings are in the [General](general.md) section.
* [Fill Density](general#fill-density)
* [Infill Type](general#infill-type)
This section includes advanced infill settings.
Starting Angle
==============
The angle of the infill pattern relative to the X axis. This applies to sparse infill (the pattern on the inside of the print) and dense infill (used for the solid top/bottom layers). Every other solid layer will be offset by 90°. This angle is not used when bridging.
**Recommended Baseline:** 45°
**Units:** degrees CCW from the X axis (°)
Infill Overlap
==============
The amount the infill lines will push into the perimeter. Helps ensure that there are no gaps between the fill and the perimeters. Too much of an overlap can cause blobs or other artifacts on the surface of your print.
**Recommended Baseline:** 50%
**Units:** millimeters (mm) or percent of nozzle diameter (%)
Fill Thin Gaps
==============
When the space between perimeters is very small (less than one nozzle diameter wide), it is not possible to fill it with normal infill. The Fill Thin Gaps feature will attempt to fill these areas with an underextruded line.
These pictures show a thin rectangle printed with Fill Thin Gaps off and on.
![](https://lh3.googleusercontent.com/WDWwNQ2Alc4aAkDmO2m6KziFfX9Hw47rcSUKO_RMRdwWm0YtZXWqqn-hzrafoq0pzE9RLEpt7PNH8pOpueuYpuY3UA=w400)
![](https://lh3.googleusercontent.com/VBW3fJnwyfdhb7WXptamufdnHx90xxx4gS5v6JcoOctQUBEmEQEZ5Ibu0vZUHhbgfTTwjc5_bc1mlId-LRFsCJK1NQ=w400)
**Recommended Baseline:** On

View file

@ -0,0 +1,14 @@
Hot End Controls
================
From the hotend control, you can:
* Select Material
* Set Temperature
* Move Print Head
* Load and Unload Filament
Hotend and Extruder Controls
![Hotend Controls](https://lh3.googleusercontent.com/Xk53KLiAr-HkSx-CFPidXLhE5G09zrY1FSNXWAccFtCM4fb5gXK3pTKx_dFQ1jEB-XUx1Xt1F_t2_ykEsa4N35x4yw)

View file

@ -0,0 +1,10 @@
The Braille DesignApp allows for the generation of 3D-printable braille labels for the visually impaired. It is also an excellent way to explore how braille works. The Braille DesignApp supports Grade 1 and 2 English Braille.
You can find it in the DesignApps folder
![DesignApps](https://lh3.googleusercontent.com/vehxWvAGA601jOgoaITkKmzOxBvUALp9uScSe7wKOiY-UQns_gjR0gW7Rx-eaxeNw2z_jjgVSOVDLoB8ncV6D8Wjew)
The App allows you to make tiles or lines of Braille text.
![Braile Apps](https://lh3.googleusercontent.com/rKAnThI4JgSA05JQJAlyC-zepHO4eIEhwdR4Qurk8i8olRFbaugw9vfISGwk0fYAToXJ7GSLTvhyPWwwqomeCZFLDA)

View file

@ -0,0 +1,55 @@
Avoid Crossing Perimeters
=========================
Prevents the nozzle from crossing outside of the perimeters when it is traveling from one place to another. This can significantly improve the surface finish of your part by reducing stringing and other extrusion artifacts.
This shows a ring sliced with Avoid Crossing Perimeters off and on. The green lines are travel moves which would likely form strings in the final print.
![](https://lh3.googleusercontent.com/VTz46RplN90OCFVf1umAhsSE4aMaKxq4IRlcg0dvj3D9nVuUUaLslXINEaD7u_SMO8QC93kwBPjB6zm40hRi2pwkcw=w200) ![](https://lh3.googleusercontent.com/HtQiIndTEF1gBvHX0ooDVapGUP4GvOIm9pZDU0tbpZKVtCZ8gTuiCzcUSGCy6eGjPObA4OvozKV9t5eS_5g1jYUt=w200)
For especially complicated shapes it may be difficult for the slicer to find an efficient path. In those cases you might consider turning this option off.
**Recommended Baseline:** On
External Perimeters First
=========================
By default, the inner perimeters are printed first and the outermost perimeter loop is printed last. This ensures that the nozzle is fully primed when printing the outer loop, reducing surface artifacts.
This option will instead print the outer loop first, then the inner loops. In some cases this can improve dimensional accuracy, however it increases the risk of artifacts on the outer surface.
**Recommended Baseline:** Off
Start End Overlap
=================
This is the amount of overlap between the start and end of the perimeter loops. It is expressed as a percentage of the nozzle diameter. These pictures show 0%, 50%, and 100% overlap.
![](https://lh3.googleusercontent.com/SFn3xY3CKIH4fS0b7eJ6kIQ6QjLcKQAjmYzcbsO7omzmkcRynjLE-0gShWQOGgm-LTL6WVKUHHGhIG7RoUXTMhmbQQ=w180) ![](https://lh3.googleusercontent.com/I9-TE0IbDwTlUxeGr_9_0KIKj0N3bkd87CQnNdySa7FoBMXCfkwcd71ChOOaGLc3YE9kMwDmZ7z1HlFZEtWDbPU8Xg=w180) ![](https://lh3.googleusercontent.com/tcjZtf-aGiyKMB29gpHsaM3yYMD4ot_oBlGrB1jsoo1hjq4l8tFjcP1777b6cqt5HFeYpKCrzg2VK-Uv1sql0BNb8Q=w180)
You can tune this setting in order to minimize the visibility of the perimeter seam. No overlap means there will be a slight gap between the start and end of the loop. Too much overlap and there will be a small bump instead of a gap.
**Recommended Baseline:** 75%
**Units:** percent of nozzle diameter (%)
Merge Overlapping Lines
=======================
In very thin sections of a model it is possible for the perimeter loops to cross over each other. This results in a line of plastic being layed down twice in the same spot. The Merge Overlapping Lines feature detects when perimeter loops cross over each other, and replaces them with a single fatter line. These pictures show a thin section of a print with Merge Overlapping Lines turned off and turned on.
![](https://lh3.googleusercontent.com/HpvzkkRpdE11ZAne2xP9iJQrWsr99chgWzXH4p9dBlVhcHBSvxZH_oY57YvTIKXjeY7GmeDFmM-4pQgQc3d-PWDOtQ=s0) ![](https://lh3.googleusercontent.com/ghbigi4iA9nvTlFXfBjnZu9ZkYk1JYT0cow_BYzlHU0S0kH3o5kAuoV7kC4Q4_1YQm9kev-Emggv0rLN6Mciqo2F=s0)
In order to preserve the quality of the outer surface, Merge Overlapping Lines only applies to inner perimeter loops, not the outer loops.
Expand Thin Walls
=================
3D printers cannot print anything thinner than the nozzle diameter (0.4 mm on most printers). This means that some models with intricate details may not print correctly since they have features smaller than the nozzle. Expand Thin Walls identifies these parts of the model and expands them in order to make them printable.
This problem is often encountered when trying to print text. Here is how some text in a cursive font will print with Expand Thin Walls turned off and on.
![](https://lh3.googleusercontent.com/kqWPJb88yHyQ1Fk4ZQa3Z-6-Q5GqdxPrRm_y-c4Po6bZFQJ1Voq-oaJO-sqIZgg3B-6w-3W7lTz_0D-RsseUMsmjJsc=w200) ![](https://lh3.googleusercontent.com/bVOcsyyVyGwqncQWmw-CEtlHEFrXRgCVJWcWUdH2VO7HiMUMFK33iLigTtXXkq59njYFDFJ1CBg2s64VkbKzkqshfA=w200)
**Recommended Baseline:** On

View file

@ -0,0 +1,9 @@
From the print control, you can:
* Set Layer Height
* Set Fill Density
* Turn on and off Support
* Start Your Print
# Starting a Print
![](https://www.matterhackers.com/r/hzPnqV)

View file

@ -0,0 +1,115 @@
Retraction is a technique used to prevent plastic from leaking out of the nozzle when the printer is making a [travel move](../speed/speed#travel). By pulling the filament back slightly, the chamber pressure in the melt zone of the hot end is relieved. This prevents oozing and stringing, however it cannot eliminate it completely. See this article on [how to tune your retraction settings](https://www.matterhackers.com/articles/retraction-just-say-no-to-oozing).
Retractions are visible in the layer view. Red circles indicate a retraction and blue circles indicate an unretraction. The size of the circle is proportional to the length of the retraction.
![](https://lh3.googleusercontent.com/IyuZct3UGe2KMd7PmSorEFRzld7DffeV4SkrCWLd3gr-aMx2MkchH1GN98L-VC-cHoZnSqLVvngdFQzvCBbU6RqKMQ)
Retract Length
==============
The distance the filament will be pulled back. The ideal distance varies from one hot end to another. The longer the retraction, the more the oozing will be reduced, but only up to a point. Beyond that you will see diminishing returns and increased risk of jamming. This is because retracting too far will pull molten plastic into the cold zone, where it can solidify.
Generally, bowden extruder will need more retraction than direct feed extruders due to the backlash in the tube.
**Recommended Baseline:** 3 mm
**Units:** millimeters (mm)
**G-Code Replacement Variable:** `retract_length`
Extra Length On Restart
=======================
After the travel move, the filament will be unretracted (pushed back to the same place it was before). However, during the travel it is still likely that a small amount of plastic will have leaked from the nozzle. This means that the nozzle may not be fully primed when it starts extruding again. This can cause some gaps or unevenness in your print. The Extra Length On Restart option compensates for this by extruding a small amount of extra material in addition to the normal unretract, thus making up for whatever material may have leaked.
This setting will depend on the material you are printing, since some materials are runnier than others (less viscous) and will leak more.
**Recommended Baseline:**
**Units:** millimeters (mm)
Time For Extra Length
=====================
During a travel move, the plastic does not leak from the nozzle all at once. It happens over time. There will be more leakage during a long travel move than a short one. Therefor, more extra extrusion will need to be done after a long move in order to reprime the nozzle.
This setting allows you to control how much extra extrusion is done on restart based on how long the travel move took. This setting is the amount of time it take for the nozzle to fully drain. Any moves that take less than this time will get proportionally less Extra Length On Restart. If zero, the full length will always be used.
**Recommended Baseline:**
**Units:** seconds (s)
Speed
=====
The speed the extruder will move to retract the filament.
This should be the maximum speed your extruder is capable of. This should be fast so that the pressure is relieved as fast as possible and so that the nozzle does not linger in one spot too long while the retraction is happening. This can leave a blob.
However, going to fast will cause the motor to skip steps.
**Recommended Baseline:** 35 mm/s
**Units:** millimeters per seconds (mm/s)
**G-Code Replacement Variable:** `retract_speed`
Z Lift
======
This function lifts the nozzle during retraction, which ensures that the nozzle will not be dragged across the top of the print during travel moves.
Generally Z Lift should not be used, however sometimes it may be beneficial to set it to 1 or 2 layer thicknesses (0.2 - 0.4 mm). This reduces the likelihood of the nozzle colliding with any buildups of plastic while traveling, which can cause layer shifting. It will also stop the clunk-clunk-clunk noise as the nozzle crosses over the infill.
**Recommended Baseline:** 0 mm
**Units:** millimeters (mm)
Minimum Travel Requiring Retraction
===================================
This is one of several settings that control when retractions will be performed. This setting prevents retractions from being done on short travel moves. It sets the minimum travel distance where a retraction will definitely be performed. However, retractions may still be done for shorter travel moves depending on the conditions. [Retract When Changing Islands](#retract-when-changing-islands) takes precedence over this setting.
Generally you should have [Retract When Changing Islands](#retract-when-changing-islands) and [Avoid Crossing Perimeters](../general/layers-surface#avoid-crossing-perimeters) turned on. In this case, this setting will mainly only have an effect when moving from one part of the infill to the other. Stringing will not be visible, but retractions are still beneficial here since they will ensure that the nozzle is primed when it starts printing the next infill line.
This should normally be set to a large distance, since otherwise it may lead to too frequent retraction which can cause jamming.
**Recommended Baseline:** 20 mm
**Units:** millimeters (mm)
Retract When Changing Islands
=============================
Islands are two areas of a layer which are not connected. If this option is on, then a retraction will be performed when the nozzle is traveling from one island to another. This setting takes precedence over [Minimum Travel Requiring Retraction](#minimum-travel-requiring-retraction) but not [Minimum Extrusion Requiring Retraction](#minimum-extrusion-requiring-retraction).
Stringing primarily occurs when traveling between islands, so it is recommended to always have this option turned on.
This picture shows a layer with two islands. The red and blue circles indicate retraction and unretraction happening as the nozzle travels between them.
![](https://lh3.googleusercontent.com/E65EfrFDhhe71Tgb9jUNGiaZ--ywuCAiUgFxyEgjoeismEZvsU_JJcdQTmEZm1N1T6dTEwOdD7Sq1HbrVbL1PjEwh_A)
**Recommended Baseline:** On
Minimum Extrusion Requiring Retraction
======================================
This setting is used to control how frequently retractions are allowed to occur. Performing retractions too frequently can cause underextrusion (due to the nozzle not being fully primed) or jamming. This setting ensures that a certain amount of filament gets extruded before the next retraction is allowed to occur. This setting takes precedence over both [Minimum Travel Requiring Retraction](#minimum-travel-requiring-retraction) and [Retract When Changing Islands](#retract-when-changing-islands).
This setting should be set to the smallest length possible. If you have confidence in your hot end and extruder, then you can set it to 0. However if you notice your printer has trouble keeping when retractions happen frequently, then you should try increasing this setting in increments of 0.01 mm.
**Recommended Baseline:** 0.05 mm
**Units:** millimeters (mm)
Length on Tool Change
=====================
*This option is only available if your printer has multiple extruders*
This is the distance that the filament will be retracted when switching from one extruder to another. You may want this to be longer than your normal retraction distance so that the filament is completely removed from the melt zone.
**Recommended Baseline:** 6.0 mm
**Units:** millimeters (mm)
Extra Length After Tool Change
==============================
*This option is only available if your printer has multiple extruders*
Similar to [Extra Length on Restart](#extra-length-on-restart), this option allows you to extrude extra material after a tool change has occurred. This allows you to compensate for any leakage that may have occurred while the nozzle was inactive. It is recommended to use this option in combination with a [wipe tower or wipe shield](../general/extruder-change) to prevent it from depositing a blob on your print.
**Recommended Baseline:** 2.0 mm
**Units:** millimeters (mm)

View file

@ -0,0 +1,46 @@
Extruder Wipe Temperature
=========================
This setting is only for printers which have a nozzle wiping procedure that is done before printing. It is the temperature that the nozzle will be heated to before wiping. The wiping procedure must be scripted in the printer's [Start G-Code](../../printer-settings/gcode/gcode#start-gcode).
**Recommended Baseline:** 145 °C
**Units:** °C
**G-Code Replacement Variable:** `extruder_wipe_temperature`
Bed Remove Part Temperature
===========================
*This option is only available if your printer has a heated bed*
The temperature to which the bed will heat (or cool) in order to remove the print. This setting is only for printers which are set up to hold the bed at a certain temperature after a print. This must be scripted in the printer's [End G-Code](../../printer-settings/gcode/gcode#end-gcode).
**Recommended Baseline:** 50 °C
**Units:** °C
**G-Code Replacement Variable:** `bed_remove_part_temperature`
Extrusion Multiplier
====================
This setting can be used to purposely extruder more or less material than normal. If you find that your prints are overextruded or underextruded, you can use the extrusion multiplier to correct this. Beware that using this setting should only be considered a stopgap measure, not a final solution. Overextrusion and underextrusion is a sign that some other setting is wrong or there is some problem with the printer. Most likely you should try [calibrating your extruder](https://www.matterhackers.com/articles/how-to-calibrate-your-extruder).
The extrusion can also be adjusted on-the-fly using the tuning adjustments on the controls page. Beware that the tuning adjustment is a separate setting and will be compounded with this setting.
**Recommended Baseline:** 1.0
**Units:** decimal
First Layer
===========
Controls the width of the lines for the first layer of the print. Increasing this value will cause the lines to be wider and also spaced out farther, so there will be no overextrusion. Using this can help with bed adhesion, since fatter lines will have more surface area to stick to the bed.
**Recommended Baseline:** 100%
**Units:** millimeters (mm) or percent of nozzle diameter
Outside Perimeters
==================
Controls the line width of the outside perimeter loops. Can be useful to fine-adjust actual print size when objects print larger or smaller than specified in the digital model.
**Recommended Baseline:** 100%
**Units:** millimeters (mm) or percent of nozzle diameter

View file

@ -0,0 +1,103 @@
Create Perimeter
================
Generates a shell around the supports. This gives the support more structure and makes it stronger. Depending on your print, this can make the supports easier or harder to remove.
**Recommended Baseline:** On
Interface Layers
================
Interface layers go at the top of the supports. They are solid layers that provide a flat surface for the object to be printed on top of. Using interface layers will give you a smoother bottom surface on your print, but may make the supports more difficult to remove, especially in tight areas.
This setting controls how many interface layers are used (if any). You can specify it in a number of layers or as a thickness in millimeters.
If using interface layers, it is especially important to have a well tuned [air gap](#air-gap), otherwise you will not be able to remove the interface layers from your print.
If you have a multi extrusion printer, you can use the [support interface extruder](#support-interface-extruder) setting to choose which material the interface layers are printed with.
**Recommended Baseline:** 2
**Units:** count or millimeters (mm)
**See Also:** [Support Interface Extruder](support-interface-extruder)
X and Y Distance
================
The space between the side of the support structures and the side of the print. This should be large enough that the sides of the supports are not touching and bonding with the object. This ensures that only the top of the support structures are touching the print, ensuring that they are easy to remove.
**Recommended Baseline:** 2 mm
**Units:** millimeters (mm)
Air Gap
=======
The air gap is the space between the top of the support material and the bottom of the print. Air gap is the most critical support material setting, since it controls how well the support structures will stick to your print.
The larger the air gap, the easier it will be to remove the support material. However, it will also make the bottom surface of your print messier. A smaller air gap will give a smoother, higher quality bottom surface, but also make the support material harder to remove.
Choosing the right air gap requires a lot of experimentation, and it is heavily dependant on the material you are printing. Materials that typically haver stronger interlayer adhesion, like PLA, will require a larger air gap.
Unlike other slicers, which simply skip layers, MatterControl takes a unique approach to the air gap. For the first layer of the print above the support material, the nozzle is lifted by the air gap distance. Since the nozzle is higher than it normally would be for that layer, the plastic falls a short distance onto the support material below, and cools a little while it is falling. By adjusting the air gap, you can precisely control how much the plastic cools while it falls and thus how well it sticks to the support material below.
For subsequent layers, the nozzle drops back down to the height it would be at otherwise. The air gap only affects the part of the first layer that is directly above the support material. Other parts of the layer will be printed at the normal height.
This animation shows the air gap in action. Remember that even though the first layer of the print appears to be in the middle of a higher layer, in reality the plastic will just fall down onto the support below.
![](https://lh3.googleusercontent.com/Ray4qnvUbPSbeJBPTqENVsVT4ecJSUN4EaK42bzGSySa6N87Cpxf9rbcfOQdIrZTYS5A4surELn1lnMW6_tK6GBvSA)
If you are using dissolvable support material, then the air gap should be 0. This ensures that the supports will be bonded properly and you will get the smoothest surface finish after they are dissolved.
**Recommended Baseline for PLA:** 0.6 mm
**Recommended Baseline for ABS:** 0.4 mm
**Units:** millimeters (mm)
Support Type
============
The geometric pattern to use for the support structures. Lines is the most common pattern and makes the support easier to remove, however Grid provides more structure.
**Recommended Baseline:** Lines
**Options:**
* Lines
* Grid
Pattern Spacing
===============
The space between the lines of the support pattern. A smaller spacing will make the support pattern more dense. Generally you want this to be as large as possible so that it is easier to break apart the supports. Making the support structures less dense will also reduce the amount of material wasted and make the print take less time. However, it will also cause more sagging on the bottom of the print. This should be close to your printer's maximum [bridging](../speed/speed#bridges) distance.
**Recommended Baseline:** 8 mm
**Units:** millimeters (mm)
Infill Angle
============
The angle at which the support material lines will be drawn, relative to the X axis.
**Recommended Baseline:** 45°
**Units:** degrees CCW from the X axis (°)
Support Material Extruder
=========================
*This option is only available if your printer has multiple extruders*
Allows you to choose which material is used for printing the support structures. This allows you to use dissolvable support material in multi-extrusion printers.
Dissolvable support materials (like PVA and HIPS) are preferable because they are easier to remove and leave behind a completely smooth surface. They also allow you print more complex and intricate shapes, because the material can be dissolved out of areas that you would not be able to break it out of by hand.
Extruders are numbered starting with 1.
**Units:** extruder index
Support Interface Extruder
==========================
*This option is only available if your printer has multiple extruders*
Allows you to choose which material is used for printing the [interface layers](#interface-layers). This allows you to conserve dissolvable support material by using it only for the interface layers instead of for the entire support structure.
Extruders are numbered starting with 1.
**Units:** extruder index

View file

@ -0,0 +1,97 @@
Initial Layer Speed
===================
The speed at which the nozzle will move when printing the first layer. The first layer typically requires slower than normal print speeds for best bed adhesion. This affects the first layer of the print as well as the first layer of the raft, if there is one.
For SLA printers this speed can be applied to more than just the first layer. See [Initial Layers](sla-speed#initial-layers).
**Recommended Baseline:** 20 mm/s
**Units:** millimeters per second (mm/s) or percent of [infill speed](#infill-speed) (%)
**G-Code Replacement Variable:** `first_layer_speed`
Infill
======
The speed at which [infill](../general/infill.md) will print. Infill can be printed faster than any other part of the print. Most other speeds can be specified as a percentage of the infill speed. Generally when people refer to a print being done at a certain speed, they are referring to the infill speed.
**Recommended Baseline:** 60 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `infill_speed`
Top Solid Infill
================
This is the speed used for the infill on the last of the [top solid layers](../general/general#top-solid-layers). This can be done slower than the regular infill in order to improve the quality of the surface finish.
**Recommended Baseline:** 75%
**Units:** millimeters per second (mm/s) or percent of [infill speed](#infill-speed) (%)
Raft
====
The speed used for printing a [raft](../adhesion/raft.md), if you are using one. The first layer of the raft will still be printed at the [initial layer speed](#initial-layer-speed). This setting only applies to the other layers.
**Recommended Baseline:** 30 mm/s
**Units:** millimeters per second (mm/s) or percent of [infill speed](#infill-speed) (%)
Inside Perimeters
=================
The speed of the inner [perimeter loops](../general/general#perimeters), if you have more than one perimeter. These are not visible when the print is finished. They can generally be printed faster than the outer perimeter, but should probably be slightly slower than infill.
**Recommended Baseline:** 50 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `perimeter_speed`
Outside Perimeter
=================
Perhaps the most important speed setting. This is the speed for the outermost perimeter loop, which is what you see and feel when a print is complete. We recommend printing slow in order to ensure the best quality. It doesnt add much print time to print slow outside perimeters, but can significantly improve print quality and surface finish.
**Recommended Baseline:** 75%
**Units:** millimeters per second (mm/s) or percent of [inside perimeter speed](#inside-perimeters) (%)
**G-Code Replacement Variable:** `external_perimeter_speed`
Support Material
================
The speed at which [support material](../support/support.md) structures will print. You may wish to print this slower than the infill speed in order to ensure that the support structures are sturdy and do not break or fall over during printing.
**Recommended Baseline:** 40 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `support_material_speed`
Bridges
=======
Bridges are sections of a print which have nothing underneath them, but are supported on either side.
![](https://lh3.googleusercontent.com/adxGgEkZ1fLOS34hl6q7a6z9jDUrPpACuKKeT-iICsDXhR2fNRwQr4bTMf2dG9kVCyea9yKFigFT6mEIwz7syClSLQ)
These parts can be printed without the use of support material because the plastic can be drawn from one side to the other like a spider web. Longer bridges are obviously more difficult than shorter bridges, but it is not uncommon to bridge up to 50 mm with good results.
Bridging is tricky. In order for it to work the bridge needs to be printed at the right speed, and there must be adequate cooling. In addition, your material, temperature, nozzle diameter, and layer thickness all have an effect. Some materials print better with slow bridge speeds and some print better quickly.
**Recommended Baseline for PLA:** 25 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `bridge_speed`
**See Also:** [Bridging Fan Speed](../filament/fan#bridging-fan-speed), [Bridge Over Infill](#bridge-over-infill)
Travel
======
The speed the nozzle will go when moving from one part of the print to another, without extruding material. The travel speed is one of the most important settings for reducing stringing and oozing. This should be set as fast as your printer can go. 80 mm/s is safe for most printers, however many printers (such as deltas or others with bowden extruders) can go as high as 200 mm/s.
Since travel moves are the fastest moves the printer makes, they are the most likely to cause layer shifting. If you are experiencing layer shifting you may consider reducing the travel speed.
**Recommended Baseline:** 80 mm/s
**Units:** millimeters per second (mm/s)
**G-Code Replacement Variable:** `travel_speed`
Bridge Over Infill
==================
When this setting is on, [bridging speed](#bridges) and [fan](../filament/fan#bridging-fan-speed) settings will be used when printing the first solid top layer over infill. This setting will reduce the number of [top solid layers](../general/general#top-solid-layers) you need in order to have a smooth top surface with no gaps. This is especially true if you have a low [fill density](../general/general#fill-density), so there are large spaces in the infill pattern.
**Recommended Baseline:** On

View file

@ -0,0 +1,41 @@
*The following settings are only available if you are using a laser powered SLA (stereolithography) printer.*
With laser SLA printers, the printing speed and the laser power are both used to control how much light the resin is exposed to. Different types of resin require different amounts of light in order to cure.
Thinner layers can be printed faster, since they have less material to cure. Thicker layers must be printed slower.
MatterControl chooses the correct speed based on your layer height. The settings let you specify the speed that works best for your resin at two common layer heights (25 microns and 100 micros). If your layer height is different from these two, the speed is interpolated between them.
Speed at 0.025 Height
=====================
This is the speed the laser point will travel when the layer thickness is 0.025 mm (25 microns).
The actual speed will be calculated based on your layer thickness, by interpolating between this and the speed at 0.1 mm.
**Units:** mm/s
Speed at 0.1 Height
===================
This is the speed the laser point will travel when the layer thickness is 0.100 mm (100 microns).
The actual speed will be calculated based on your layer thickness, by interpolating between this and the speed at 0.025 mm.
**Units:** mm/s
Initial Layer Speed
===================
See [Initial Layer Speed](speed#initial-layer-speed).
Travel
======
See [Travel](speed#travel).
Initial Layers
==============
The number of layers at the beginning of the print which will be printed slower than the others.
**Units:** count or millimeters (mm)

View file

@ -0,0 +1,42 @@
A raft is a removable layer printed underneath your object.
![](https://lh3.googleusercontent.com/zFUGCRoafVe-xGgdjYVp06gb1Wjyh3zaNnb3QPYYTpCpDRqnui6HCgjZXIDLlxWdcQeWoiYZNsdLhTHsCTxwBN6g=s0)
A raft can serve two purposes.
1. It provides better bed adhesion for difficult materials. The raft uses very thick lines on the bottom, which allow help it stick to the bed. The object you are printing will stick to the raft well because they are made of the same material.
2. It can help if you are having difficulty with bed leveling. Because the first layer of the raft is much thicker than normal, it allows for more variation in the height of the bed.
In both of these cases the raft should be considered a last resort. Rafts take a long time to print, waste a lot of material, and result in a rougher finish on the bottom of your print. In addition, it is tricky to get the raft settings right so that it can be easily removed when the print is finished.
The best solution for bed adhesion is to [find a bed surface that works better](https://www.matterhackers.com/news/choosing-the-right-3d-print-bed-surface) with the material you are printing. For leveling problems, you should try using MatterControl's software print leveling first.
Expand Distance
===============
This is how far the raft will extend beyond the edge of your print. Making a larger raft will provide more adhesion and help prevent warping.
**Recommended Baseline:** 3 mm
**Units:** millimeters (mm)
Air Gap
=======
The distance between the top of the raft and the first layer of your print. The ideal raft provides good bed adhesion while printing and then easily peels off once finished. The Air Gap determines how easy it is to peel the raft off your part. Too much of a gap and your part may not stick well to the raft. Too little, and the raft will be very difficult to remove. Material, nozzle diameter, and layer height all affect the results. A good starting point is ½ your nozzle diameter. So, if you have a .4mm nozzle, start with a 0.2mm Air Gap. In general, materials with excellent interlayer adhesion like nylon and Ninjaflex require a larger air gap.
**Recommended Baseline:** 0.2 mm
**Units:** millimeters (mm)
**See Also:** [Support Air Gap](../support/advanced#air-gap)
Raft Extruder
=============
*This option is only available if your printer has multiple extruders*
The extruder to use for printing your raft. This allows you to choose which material your raft will be made of. Generally it is best to make the raft with dissolvable support material, if you have it. Extruders are numbered starting with `1`. If you set this option to `0` then it will automatically use your [support material extruder](../support/advanced#support-material-extruder).
**Recommended Baseline:** 0
**Units:** extruder index
**See Also:** [Support Material Extruder](../support/advanced#support-material-extruder)

View file

@ -0,0 +1,100 @@
Layer Thickness
===============
The height of each layer of the print, except the first. A smaller number will create more layers and more vertical accuracy but also a slower print.
The Layer Thickness is exactly that the height of each individual layer of plastic that will be printed. Most FFF style 3D printers offer layer heights between .1mm - .4mm. Dont know what height you should print at? This picture shows the difference between various layer heights.
![](https://lh3.googleusercontent.com/RM8-abWZ8pDZERBg9HpmvViw9Hjr6NqI8IWAQbmQ9RSk-W8juDSAuQrZsyPQYYiHAY-FZnBNskJCFK6vUh-0O5yN0Q=s0)
Its difficult to see layer lines at .1mm whereas the layer lines are plainly visible at .35mm. With these frogs, the .35mm frog took approximately 40 minutes to print. The .1mm frog took 3.5 hours. The first thing you need to decide is what surface quality do you want. If you want a high quality, smooth finish, you will need to print small layer heights. If surface finish isnt important and you want to print quickly, larger layer heights work great.
If youre unsure of what height to start with, .20mm offers a good combination of surface finish and print time for most prints.
Its important to note that low layer heights (< .15mm) require excellent bed leveling and machine calibration in order to successfully print.
**Recommended Baseline:** 0.2 mm
**Units:** millimeters (mm)
**Warning:** The layer thickness cannot exceed the diameter of your nozzle.
First Layer Thickness
=====================
The thickness of the first layer of the print. A first layer thicker than the default layer height can ensure good adhesion to the build plate, since it means more material will be extruded and more material provides more bed adhesion. A thicker first layer also allows for more variation in the height of the bed.
**Recommended Baseline:** 0.3 mm
**Units:** millimeters (mm) or percent of normal Layer Thickness (%)
Perimeters
==========
Perimeters are the loops that form the outer walls of your print. These are sometimes also referred to as shells. This cube has 3 perimeters.
![](https://lh3.googleusercontent.com/iHmXp0HTWA-DL_OryLlZ5LPpJpHsL9Sc4aKM2RJVeyG1oUoyj8khNoVhQsAXtV_dv1PLmzpgE2p48sYRTBIyHeFC=w250)
Perimeters bear most of the load that an object is under. Adding more perimeters will make a print stronger than increasing the fill density.
Perimeters are generally printed at a slower speed than infill. Often, most of your print time will be spent doing perimeters. You may consider using fewer perimeters to speed up the print.
This can be specified as count or as thickness in millimeters (mm). For instance, if you set the perimeters to 1.0 mm, then enough loops will be created to make the walls 1 mm thick.
**Recommended Baseline:** 3
**Units:** count or millimeters (mm)
Top Solid Layers
================
These are the layers that form a solid surface on the top of the print.
If you are using thinner layers then more top layers will be required to form a solid surface with no gaps. For this reason, we recommend specifying a thickness in millimeters (mm) instead of a number of layers.
**Recommended Baseline:** 0.8 mm
**Units:** count or millimeters (mm)
Bottom Solid Layers
===================
These are the layers that form a solid surface on the bottom of the print. Generally fewer bottom layers are required than top layers, since the bottom layers do not have to bridge over the infill.
**Recommended Baseline:** 0.6 mm
**Units:** count or millimeters (mm)
Fill Density
============
3D prints are hardly ever done completely solid. Instead, they are partially hollow with a pattern on the inside. This inside area is called the infill. You can choose the density of the infill pattern, from 0% (completely hollow) to 100% (completely solid).
![](https://lh3.googleusercontent.com/dsfLpykwPboH8yf9pWXPaaT0CuJ_JjaJCk6-9R9ZgXap1lVyBo8Ggsz1vDnv_LzHzZuT3e6MHbl6k1obToNOsJwe=s0)
![](https://lh3.googleusercontent.com/BZFi0mgNMHrjtYB4SmRUL3CcxCSgV10uX8Xb4s-Thsf9zZv1gkgRFujsfmRoqpmEoX1KRg66sm1WXHpVTGbmTlW3iw=s0)
More infill will make a print stronger, but it will also use more material and take longer to print. Generally it is advised to use as little infill as possible. Most parts will be fully functional with about 10 - 15% percent infill. For very large prints you should try to go even lower than that.
Usually to have a strong part, you only need about 35% infill. In general, there isnt much strength benefit beyond 50%.
If you wish to make your print completely solid, we do not advise going above 85 - 90% infill. Beyond this we have noticed a tendency for prints to be overfilled. A better method for making completely solid prints is to use a very large number of perimeter loops.
**Recommended Baseline:** 20%
**Units:** percentage (ex. 20%) or decimal (ex. 0.20)
Infill Type
===========
The geometric pattern used for the infill. Triangle infill uses the most efficient path, which makes it the fastest to print. It is also generally the strongest pattern. However some of the other patterns (like the hexagon) are more aesthetically pleasing. You might choose these if your infill will be visible, for instance if you are using a translucent filament. Lines or concentric infill are also better when using exceptionally high fill densities (> 50%).
This article has more information on [MatterControl's optimized hexagonal infill](https://www.matterhackers.com/news/mattercontrol-delivers-optimized-hexagon-infill).
**Recommended Baseline:** Triangles
**Options:**
* Grid
* Triangles
* Hexagon
* Lines
* Concentric

View file

@ -0,0 +1,5 @@
* [Filament](filament.md)
* [Fan](fan.md)
* [Advanced](advanced.md)
* [Retraction](retraction.md)

View file

@ -0,0 +1,10 @@
* [Creating New Objects](creating-new-objects.md)
* [Adding Existing Objects](add-existing-objects.md)
* [Editing a Objects](editing-objects.md)
* [Design Apps](design-apps/index.md)
* [Design Primitives](design-primitives/index.md)
* [Text Tool](design-primitives/text-tool.md)
* [Image Converter](design-primitives/image-converter.md)
* [Braille Tool](design-primitives/braille-tool.md)
## [Read More On MatterHackers.com](https://www.matterhackers.com/articles/mattercontrol-design-tools)

View file

@ -1,8 +0,0 @@
## This "Design App" is Locked
To Unlock upgrade to MatterControl Pro:
MatterControl Pro includes:
- Professional support provided by MatterHackers
- Unlimited storage of your designs in Cloud Library
- Expanding set of Pro Design Tools

View file

@ -0,0 +1,26 @@
# Is MatterControl compatible with my 3D printer?
- This mainly depends on the language your printer speaks. Currently, MatterControl supports two languages for communicating with the printer; G-Code and S3G/X3G. G-Code is the standard language used by RepRaps and most other printers. S3G is a condensed language used by Makerbot and Flashforge. Most consumer 3D printers speak G-Code.
- In addition, you will need appropriate slice settings for your printer. MatterControl has built in profiles for many printers. A link to the complete list can be found below. If your printer is not on the list, don't worry. You will just need to fill in the settings yourself. Obtain specifications from the manufacturer and input them into MatterControl under `Settings & Controls -> Settings -> Printer` as well as a few under `Settings & Controls -> Settings -> Filament`.
- Some newer G-Code printers are using intermediary boards to run web servers in order to control the prints. These printers, while they do speak G-Code, are not able to be controlled directly by MatterControl. G-Code generated in MatterControl can still be sent to the printer using its web-based interface.
- LINK: [Known compatible printers list.](http://www.mattercontrol.com/#jumpSupportedModels)
# Why are my objects the wrong scale?
- STL files do not store any information about what units their dimensions are in. MatterControl (and all other 3D printing software) expects the dimensions in STL files to be given in mm. Most CAD software, though, will export STL files with whatever units they were designed in (usually inches). Thus, when you bring your designs into MatterControl they will be the wrong scale.
- The best solutions is to figure out how to get your design software to export STL files in millimeters. In SolidWorks, for instance, the Save As dialog has an Options button, that allows you to set many parameters for exporting an STL.
- If you cannot get your design software to do this, though, you can still rescale the part once you have it in MatterControl. View the part in 3D View, then enter Edit mode and choose SCALE from the bar on the right. A drop down menu offers many common conversion factors, or, axis dimension specifications can be entered directly in the appropriate fields.
# How do I clear the application data?
- If you are having a problem with MatterControl that is not fixed by re-installing, you may need to delete some of the data that MatterControl saves on your computer. This data will persist, even if MatterControl is uninstalled so remove that folder if you want to completely reset MatterControl to a clean slate. You can also temporarily rename the SQLite database file (MatterControl.db) to see if your settings are the cause of a problem.
- Windows
- MatterControl keeps the user's library and settings in C:\Users\{user}\AppData\Local\MatterControl.
- Mac/Linux
- The user's data library and settings are in ~/.local/share/MatterControl. This is a hidden folder in your user's home folder.

View file

@ -0,0 +1,8 @@
* [Adding a New Printer](adding-new-printer.md)
* [Selecting a Printer](selecting-a-printer.md)
* [Loading and Changing Filament](loading-and-changing-filament.md)
* [Add Existing Objects](../designing/add-existing-objects.md)
* [Starting a Print](starting-a-print.md)
* [Slice Settings](../slice-settings/index.md)
* [Printing Multi-Extrusion Models](multi-color-stls.md)

View file

@ -1,7 +1,12 @@
# Upgrade to [MatterControl Pro](https://www.matterhackers.com/admin/product-preview/ag1zfm1oLXBscy1wcm9kchsLEg5Qcm9kdWN0TGlzdGluZxiAgIC_65WICww)
# [MatterControl Pro Edition](https://www.matterhackers.com/store/l/mattercontrol-pro-edition): First of its kind software that lets you design, organize, and manage your 3D prints.
MatterControl Pro includes:
- All the great features of MatterControl
- Professional support provided by MatterHackers
- Unlimited storage of your designs in Cloud Library
- Access to the expanding set of Pro features
![MatterControl Pro](https://lh3.googleusercontent.com/d4jHyk2aCJgtsT0H6i3uFba1nfIBtVYlVpwsRf8xfrI8hN661vU46HHPKCaI2QXDjtAD9ykH6smj1c4itc8PVw=w640)]
## Get MatterHackers Professional Support
- [MatterControl Pro Edition](https://www.matterhackers.com/store/l/mattercontrol-pro-edition) grants access to [MatterHackers](https://www.matterhackers.com) staff of experts, who are dedicated to helping you succeed from design to print.
## Join the MatterControl community
- Help support our mission to make 3D printing easier and more accessible. With your assistance MatterControl can reach ever greater heights, continually improving the capabilities of 3D printers and the tools of success.
## Create  with integrated tools and applications
- Perfect for professional makers interested in tools that optimize creativity and effectiveness. Gain access to Gear Creator, Mesh Repair, Mesh Hollowing, and more.

View file

@ -0,0 +1,32 @@
A skirt is a couple of loops drawn around the outside of the first layer of a print. They are sometimes also referred to as priming loops.
![](https://lh3.googleusercontent.com/GGH5d8Po_EtGHVhGLxrT2aaZWrm2ootlP28L99H1712gHVhWJmd5znjlBeyODiNZ6V00Rk6iyldNfujViwn_ThwrqLI=s0)
This is the very first thing that is printed. It is used to prime the nozzle and also allows you to check your leveling and nozzle height before the actual print begins. When the skirt is printing, it is a good time to adjust your nozzle height using [baybstepping](../../printer-controls#movement).
Distance or Loops
=================
The number of skirt loops to draw. Alternatively, you can also specify the thickness of the skirt in millimeters.
**Recommended Baseline:** 3
**Units:** count or millimeters (mm)
Distance From Object
====================
The gap between the skirt and the print.
**Recommended Baseline:** 3 mm
**Units:** millimeters (mm)
Minimum Extrusion Length
========================
The minimum length of filament to use to draw the skirt. Enough loops will be drawn to use this amount of filament. This takes precedence over the number of loops. This is the measurement of the filament going into the extruder, not the length of the loops being extruded. We recommend setting this to the length of your hot end's hot zone.
We recommend using a high minimum extrusion length and few loops. This ensures that you do not waste too much time printing skirt loops on large prints, but also get enough priming on small prints.
**Recommended Baseline:** 5 mm
**Units:** millimeters (mm)

View file

@ -0,0 +1,82 @@
Diameter
========
The diameter of the filament you are printing with. This is normally either 1.75 mm or 2.85 mm.
Even though the filament is made to be a certain diameter, in reality it can vary by ±0.1 mm. Any variation in the diameter of the filament will cause slight overextrusion or underextrusion. This can have a major impact on the dimensional accuracy of the objects you are printing. Because of this, we recommend actually measuring the filament you are using with a set of calipers.
The diameter of the filament can also vary along the length of a single spool, so it is best to measure the filament in several different spots and take an average.
**Recommended Baseline:** 1.75 mm or 2.85 mm
**Units:** millimeters (mm)
**G-Code Replacement Variable:** `filament_diameter`
Density
=======
The density of the material you are printing, in g/cm³. This setting has no effect on slicing. It is only used to estimate the mass and cost of the material used for a print. These estimates are shown in the layer view.
Densities for common materials are listed here. If you have a specialty material, you should be able to get the density from the manufacturer's technical specifications.
![](https://lh3.googleusercontent.com/TfSrsIuV876dy5AsgZNsGRzIodccewBY6pmvPh2JsKBKdUe1n5QNJBi-CpgcJDRAwsO1FAlfDouL1YFT21xcVbt7DQ=s0)
<!---
| Material | Density (g/cm³) |
| -------- | --------------- |
| PLA | 1.24 |
| PETG | 1.27 |
| ABS | 1.04 |
| Nylon | 1.14 |
| TPU | 1.20 |
| HIPS | 1.05 |
| PVA | 1.23 |
--->
**Units:** g/cm³
Cost
====
The cost of one kilogram of filament. This setting has no effect on slicing. It is used to estimate the cost of a print, which is shown in the layer view. If this value is set to 0, then the estimate will not be shown.
**Units:** $/kg
Extruder Temperature
====================
The temperature of the hot end. This setting can also be found in the extruder controls. If the hot end is on, changing this setting will have an immediate effect.
Each type of filament extrudes at a different temperature. See our [Filament Comparison Guide](https://www.matterhackers.com/3d-printer-filament-compare) for recommended settings for different materials. It is important to remember that these recommendations are just a starting point, and you may have to experiment to find the best temperature for your particular filament and printer. See this article on [adjusting your settings to get the best flow](https://www.matterhackers.com/news/how-to-get-the-best-3d-printed-parts-by-understanding-extrusion-settings).
Higher temperatures will improve interlayer adhesion, making the print stronger. The plastic will also be able to flow better, but this will also increase stringing and oozing. If the temperature is too high, then the materials will start to burn and may jam your hot end.
Lower temperatures will make the plastic more viscous, which can reduce or eliminate stringing and oozing. It can also improve detail slightly. However it will also make the material harder to extrude. Too low and the plastic will not extrude at all. Lower temperatures will also reduce how well the layers bond to each other, making the print weaker and also causing splitting between the layers.
There are a number of other factors which will affect the proper printing temperature as well.
Each type of printer is different, and may be slightly better or worse at transferring heat to the filament. Different types of printers may also read different temperatures in the same situation due to different placement of the sensor.
Even among the same types of material, different spools may require different temperatures because they are different colors or are made by different brands. We have noticed that the lighter colors (especially white) use the most pigment, and so may need to be printed slightly hotter than others.
You may also need to increase the temperature in high flow situations. For instance, printing exceptionally fast or using a very large nozzle.
*Multi Extrusion Printers:* The temperatures for each hot end can be set separately using the extruder controls.
**Units:** °C
**G-Code Replacement Variable:** `temperature`
Bed Temperature
===============
*This option is only available if your printer has a heated bed*
The temperature of the heated bed. This setting can also be found in the bed controls. If the bed is on, changing this setting will have an immediate effect.
Heating, along with a proper bed surface, is essential for ensuring that your prints stick to the bed. All plastic undergoes thermal contraction, to varying degrees. This causes prints to shrink, warp, and peel up off of the bed as they cool. In order to prevent this, most printers are equipped with a heated bed in order to keep the print warm until it is finished.
The ideal bed temperature is different for each type of filament. See our [Filament Comparison Guide](https://www.matterhackers.com/3d-printer-filament-compare) for recommended settings for different materials. It is important to remember that these recommendations are just a starting point, and you may have to experiment to find the best temperature for your particular filament and printer. Generally, the bed temperature should be close to the material's glass transition temperature.
If this setting is set to 0 then bed heating will not be used.
**Units:** °C
**G-Code Replacement Variable:** `bed_temperature`

View file

@ -0,0 +1,3 @@
* [Support](support.md)
* [Advanced](advanced.md)

View file

@ -0,0 +1,5 @@
![](https://lh3.googleusercontent.com/XLlyBUeloa3Q1FQF8-fCD0zx036yFCLsvyUKrE9zaV-p1k4Jt4m5QK3W59c8CnwPurZ_RW2xBazi9E3AmMmhkuL_OA)
- **Name:** Type whatever text you want to show
- **Point Size:** Set the size of the font. This is acurate when printed to the same size as a 2D printer.
- **Height:** Set the height you want to have the text reach up to
- **Font:** Select the font you would like to use

View file

@ -0,0 +1,37 @@
From Your Computer
==================
![](https://lh3.googleusercontent.com/32sfdux7Fo64mrzY9hHBcWLoc8SKwTKuof6tEntzDbhKG27Y5Ow3NPEuwYGUJ9GR64tVk6h7MRY5T_UUIbi4a1NEeA)
Click the Open button in the toolbar to add files from your computer. MatterControl accepts the following file formats.
* STL - The industry standard for 3D printing models.
* AMF - A successor to the STL format that supports colors and multi-material objects.
* OBJ - Wavefront 3D graphics format. MatterControl reads meshes but not textures or color data.
* MCX - MatterControl format.
* GCODE - Machine code files. These are not editable. Loading a G-Code file will take you directly to the Layer View.
Drag and Drop
-------------
You can drag and drop files directly from your desktop or file explorer into MatterControl.
![](https://lh3.googleusercontent.com/LkdsfkXvR_8jftgAZ2846W_WCuV9qt7C50slNRrB6y8-nE2I8ZqVCuI2ieThVqLyZTFWdnC7y_3p7Lqktmk_pWz5LQ)
From the Library
================
The Library Sidebar
-------------------
![](https://lh3.googleusercontent.com/crGYrE83PyWb-hntQ8d-RhEeoiN_S8OI7uUnCS1oOm-8eMT5ExkDRSYZCr3IiT7Bx42HzrmFcg4yHhrv_GgzmbyfRA)
Click the Add Content button in the toolbar to open the library browser. From here you can drag and drop any content from the library into your scene.
![](https://lh3.googleusercontent.com/926cpzNy9wQBIxRHCBUCaUJhIpWdHVp8FRXpr5sC07rIBiIOO_Ryh2PGX6_mW9Ooe4i8TBR5XlejcqL6B0cJupT4)
The Library Tab
---------------
In the Library tab, you can right click on any object and select Add to Bed. This will add the object the the bed of your most recently used printer.
![](https://lh3.googleusercontent.com/nv6037mkmlGpm9M_q5uyaTSnHtFOoXXDxm6niLI1fCXPr2EODWPcbAnP71xGr19npSz2RO1CeLZOvNrFtlUjMLJBpg)

View file

@ -0,0 +1,5 @@
* [General](general.md)
* [Layers / Surface](layers-surface.md)
* [Infill](infill.md)
* [Extruder Change](extruder-change.md)

View file

@ -0,0 +1,4 @@
Click on any of the rotate corner controls to rotate on the plane of that control. Moving the mouse over one of the arrow indicators locks the rotation to a 45&deg; angle.
- Rotating Objects in the 3D view
![Rotate Controls](https://www.matterhackers.com/r/1oH3i1)

View file

@ -0,0 +1,8 @@
If you have multiple printers that you are controlling with MatterControl it is very easy to switch between them.
1. Navigate to the 'Start' Page
![](https://lh3.googleusercontent.com/uXcO0mZ92L4D7sCpXbbWAc6OOTAVfjc-Rr7Y0Tz_DKVZlMKkEmIffBmbeiOVQqWERJyFCfRzjd6Jy_WGoW2RWHNa_Q)
1. From the 'Printers...' list select the printer you want to use
![](https://lh3.googleusercontent.com/sGZSGPh_kEoED-_RC09Q_hwu6qWxz01KkKm1XIvwB8tEQU0XGKy24xtTDYGY0UZqHYA3Fs3VVrZBbPnq6nLzooDY-Q)
1. You can now select an 'Empty Bed' (or an existing plate) to connect to your printer and start adding things to plate
![](https://lh3.googleusercontent.com/jJTx0uZ1a3q7BIvKQLpV2cy5fJuqetsqPKyD7K0UItqIjPRpmiSLF5YwLv2boadPhrApwiag3TUz3RU730iusQ1YUZc)

View file

@ -0,0 +1,139 @@
MatterControl has a rich set of controls that you can use to manually control your printer's function and make adjustments during printing
You can find the manual controls on the far right after selecting and opening a printer.
![](https://www.matterhackers.com/r/vXKvzY)
Movement
========
The Movement section of the Controls pane allows the user to manually move the printer nozzle(s), and extrude and retract filament when no print is active. This section also serves as fine movement adjustment during an active print.
![](https://lh3.googleusercontent.com/2Yx1l2KUr7bzGr2FSES6be652ei6bVWOIx6dhjt7LC6Ia_PIB0fcv2Vltd0yFyR-EOWqQmzDrKoTUfioDHa2S3_qFQ=s0)
The homing controls allow you to home one or all axes (move it to the starting position). The **Release** button disables power to the motors, allowing you to move the printer by hand. You can select how far you want the printer to move. The printers current coordinates are shown on the bottom. You can adjust the speeds that the printer will move at by clicking the pencil icon ![Pencil-edit.png](http://wiki.mattercontrol.com/images/b/b0/Pencil-edit.png
"Pencil-edit.png").
Live Adjustment While Printing
------------------------------
While your printing is running you can use the Z+ and Z- buttons to adjust the height of the nozzle. This allows you to tune the height for a good first layer without having to restart the print. The current Z Offset is shown at the top of the Movement section. This is remembered for future prints. After printing, you can clear the Z offset by clicking the X.
![](https://lh3.googleusercontent.com/dpAFnIaaEEF3s9WHq_c94opjlwHfuQh3bPt9rWy6_V3nzhWctcDLXzDovMz4uK67EQcEm1qCW3Rmn1ygy-leX8Q1ng=w512)
Keyboard Controls
-----------------
Clicking the keyboard icon ![Keyboard\_icon.png](http://wiki.mattercontrol.com/images/d/d7/Keyboard_icon.png
"Keyboard_icon.png") allows you to move the printer with your keyboard.
![](https://lh3.googleusercontent.com/reuHxkm3XOjiX5aO0Yr0GeZqh_ZuCbv37420r7boQ_ADRl-mxcJcl0lTBzWFJa2_17sxamPu8JTtnlYC_b64oyK-Yw=s0)
<!---
| Function | Key |
| -------- | --------- |
| Home All | Home |
| Home X | X |
| Home Y | Y |
| Home Z | Z |
| X+ | ← |
| X- | → |
| Y+ | ↑ |
| Y- | ↓ |
| Z+ | Page Up |
| Z- | Page Down |
| E+ | E |
| E- | R |
--->
Calibration
===========
The calibration section of the controls allows you to manage MatterControl's software print leveling feature. Software print leveling is only available on printers which do not use their own form of automatic print leveling.
![](https://lh3.googleusercontent.com/NApNV_GfomZEwBKAP9ltyD5cejLwktWy8-fklAErv8iytHe1HYUKbvMbBCtbhfIVP-7eyH2Olgc4KnanZY-sipzS=s0)
Click the pencil icon ![Pencil-edit.png](http://wiki.mattercontrol.com/images/b/b0/Pencil-edit.png
"Pencil-edit.png") to view or edit the print leveling data.
Bed Leveling
------------
Click the gear icon to open the Print Leveling Wizard. It will guide you through taking measurements of the height of the bed at various points.
Use the toggle switch to enable or disable software print leveling. Some printers are not capable of manual leveling. In this case, software print leveling cannot be disabled.
Calibrate Probe Offset
----------------------
Click the gear icon to measure the offset between your printer's probe and the nozzle. This feature is not available if your printer does not have a leveling probe.
[Macros](macros.md)
===================
Macros are snippets of saved G-Code which can be called with the click of a button instead of having to be typed repeatedly.
![](https://lh3.googleusercontent.com/0t9m7MoB4MJ8ezB5jWAmJ1cn6nHSs1egRjLKX3LZY3GKxLXFQOIErVv_LQ2PZEFnBneWG-ktf4-JJpJ1snTTSvmrCdc=s0)
See the article on [Macros](macros.md) for more information.
Fan
===
The fan control lets you turn the printer's layer cooling fan on and off, and also set the speed.
![](https://lh3.googleusercontent.com/J_vCFI0KdgZtBfcu84pG5XggUrs4zBS4-Etd8Z3aGRJsarC8Zg8mtyFXsPguoINUd6rXKKyQFxZ6GfkpkmeVBRxaVFs=s0)
You can adjust the fan speed during printing, however your adjustment will only last until the next fan speed change encountered in the G-Code.
If your printer does not have a layer cooling fan then this control is not shown.
Power Control
=============
If the printer's controller board supports it then this section allows for direct control of the printer's PSU.
![](https://lh3.googleusercontent.com/6ZfR-AEd1xkBi140AgAuPdBE6V_ceH_fcXTt3D9gKiB4jKhEF7dLWIm6iGnE2gGLaqgCAXUqeOnzxc03BiO4KjOL=s0)
Tuning Adjustment
=================
Allows for on-the-fly adjustment of speed and extrusion during a print.
![](https://lh3.googleusercontent.com/JeJSmRR2bVuTg7AQGpeBUjWFielnyhuC4R9MwxGIkwg-ZuaM-FM2jGgVsMyxTwPYi-s_Ys-u4PqXOwPankLv8um-EA=s0)
These settings are reset to 1.0 whenever MatterControl is restarted.
Speed Multiplier
----------------
The speed multiplier can be used to speed up or slow down a print. The speed multiplier applies to all types of moves. The lowest possible setting is 0.25 and the highest possible is 3.0.
Extrusion Multiplier
--------------------
During an active print, the extrusion multiplier modifies the extrusion flow rate, allowing you to increase or decrease the amount of plastic layed down.
This variable is different from that of the Extrusion Multiplier slice setting and will work in conjunction with it. For example, if the slicer setting is set at 1.06 and then the slider in Controls is used during the print and set to 1.08, the total result will be a multiplier of 1.1448 (1.06 * 1.08).
Firmware Updates
================
If your printer has an Arduino Mega 2560 based microcontroller, you can use the firmware updater to upload new firmware to it.
![](https://lh3.googleusercontent.com/3C166BaJZFQUNHtfeMaQprsOCN7RGvSs4xacVWpz-N8E0JnA26kBEc--egSQf1OOYudlYcGAKLrg3-BxTKUyQXEAPw=s0)
If your printer is officially supported by MatterHackers (for instance the Pulse), the firmware updater will automatically check your firmware version and alert you if an update is available. Click the **Update** button to do an automatic update.
You can also update the firmware on other printers but you will need to acquire a firmware image from the printer's manufacturer. The firmware image must be a compiled `.hex` file. Click the **Change** button to select a firmware image file.
The firmware updater will automatically make a backup of your printer's old firmware before uploading the new firmware. If the new firmware has problems, you can click the **Revert** button to flash the backed up firmware.
The firmware updater does *not* require MatterControl to successfully connect to your printer in order to function. This allows you to upload new firmware to a printer which currently has corrupted firmware or no firmware at all.

View file

@ -0,0 +1,133 @@
Macros are snippets of saved G-Code which can be called with the click of a button instead of having to be typed repeatedly.
The Macros section of the [Controls pane](index.md) 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-example.png](https://lh3.googleusercontent.com/0t9m7MoB4MJ8ezB5jWAmJ1cn6nHSs1egRjLKX3LZY3GKxLXFQOIErVv_LQ2PZEFnBneWG-ktf4-JJpJ1snTTSvmrCdc=s0)
Macro Editor
============
To access the Macro Editor, click the pencil icon
(![Pencil-edit.png](http://wiki.mattercontrol.com/images/b/b0/Pencil-edit.png "Pencil-edit.png")) next to the word **Macros**. This will open the Macro Presets window.
Macros Manager
--------------
![](https://lh3.googleusercontent.com/uC22aF0BB3YZRiDdAcA_iXwkbUToMd75PUvf8GHrylzaSSdtJMwZncCRFP6WkdHWdhPa-feWopKxc-OA41az_TYOSQ=s0)
Macro Editor
------------
![](https://lh3.googleusercontent.com/rvcDIcSdFx1hDaZ4IWc1KrtcZ1GVQHIqXuiDHTwZTtkR6nPELlDfo8YxLNUCNCyBSSqNn0W2xX7jdOKI6WtjPRVQ=s0)
### Macro Name
Enter a unique name for the macro. This will be the label on the button shown in the Controls pane.
### Macro Commands
Enter [G-Code](http://reprap.org/wiki/G-code) command(s) in this field. The G-Code commands will be sent to the printer. In addition to standard G-Code, macros support these other features
* You can add comments to the code using a semicolon `;`. Comments will not be sent to the printer.
* You can use brackets `[]` to insert G-Code replacement variables.
* You can use `; host.` commands to script events in MatterControl. This is described below.
Macro Scripting
===============
In addition to the G-Code commands sent to the printer, macros allow you to script events on the host side, within MatterControl itself. This allows you to display messages or ask for input from the user. These functions are called by using commands within the G-Code comments.
Syntax
------
To use a macro scripting command, begin the line with the following statement:
`; host.`
Then add a command and any applicable parameters.
`command(parameter:"value")"`
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. This command takes the following parameters.
![](https://lh3.googleusercontent.com/_Cx5A5XszvfufveoCGc5WTrEoRYCQ7oGpFjORNN8Wgosj3jqfgT9vIfC-0GMvRFrygSJ5HcC5jHRaA_SYE4rnyce=s0)
<!---
| Parameter | Description | Example |
| --------- | ----------- | ------- |
| title | Main text to show | `title:"Trim Filament"` |
| markdown | The contents of the message in Markdown formatted text. May contain images from the internet. Use <br> for line breaks | <code>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."</code> |
| wait_ok | Script execution will wait for the user to click 'Continue' | `wait_ok:"true"` |
| repeat_gcode | G-Code to repeat until expire time reached. Lines can be separated with a `\|`. | `repeat_gcode:"G1 E.1 F150\|G4 P10"` |
| expire | The max amount of time to run repeat_gcode or show this message (seconds) | `expire:"300"` |
| count_down | Show a timer counting down from this time | `count_down:"28"` |
--->
### choose_material()
Shows the choose material window. This command takes the following parameters.
![](https://lh3.googleusercontent.com/G5W_Z3vUUURJLOhuva45olYK-om7aLpHUJWy84xzitHaev9aYmSgGZjFr56yenqwgGhcoodG_nTTiBXY088JI2b7B50=s0)
<!---
| Parameter | Description | Example |
| --------- | ----------------- | ----------------------- |
| title | Main text to show | `title:"Trim Filament"` |
--->
Example Script
--------------
The following is 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
```