New support material pattern: pillars!

This commit is contained in:
Alessandro Ranellucci 2014-01-05 16:51:16 +01:00
parent 499b34dea1
commit 3e93a14912
3 changed files with 122 additions and 7 deletions

View file

@ -14,6 +14,10 @@ enum InfillPattern {
ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral,
};
enum SupportMaterialPattern {
smpRectilinear, smpRectilinearGrid, smpHoneycomb, smpPillars,
};
template<> inline t_config_enum_values ConfigOptionEnum<GCodeFlavor>::get_enum_values() {
t_config_enum_values keys_map;
keys_map["reprap"] = gcfRepRap;
@ -37,6 +41,15 @@ template<> inline t_config_enum_values ConfigOptionEnum<InfillPattern>::get_enum
return keys_map;
}
template<> inline t_config_enum_values ConfigOptionEnum<SupportMaterialPattern>::get_enum_values() {
t_config_enum_values keys_map;
keys_map["rectilinear"] = smpRectilinear;
keys_map["rectilinear-grid"] = smpRectilinearGrid;
keys_map["honeycomb"] = smpHoneycomb;
keys_map["pillars"] = smpPillars;
return keys_map;
}
class PrintConfigDef
{
public:
@ -758,12 +771,15 @@ class PrintConfigDef
Options["support_material_pattern"].tooltip = "Pattern used to generate support material.";
Options["support_material_pattern"].cli = "support-material-pattern=s";
Options["support_material_pattern"].scope = "object";
Options["support_material_pattern"].enum_keys_map = ConfigOptionEnum<SupportMaterialPattern>::get_enum_values();
Options["support_material_pattern"].enum_values.push_back("rectilinear");
Options["support_material_pattern"].enum_values.push_back("rectilinear-grid");
Options["support_material_pattern"].enum_values.push_back("honeycomb");
Options["support_material_pattern"].enum_values.push_back("pillars");
Options["support_material_pattern"].enum_labels.push_back("rectilinear");
Options["support_material_pattern"].enum_labels.push_back("rectilinear grid");
Options["support_material_pattern"].enum_labels.push_back("honeycomb");
Options["support_material_pattern"].enum_labels.push_back("pillars");
Options["support_material_spacing"].type = coFloat;
Options["support_material_spacing"].label = "Pattern spacing";
@ -894,7 +910,7 @@ class PrintObjectConfig : public virtual StaticConfig
ConfigOptionInt support_material_interface_extruder;
ConfigOptionInt support_material_interface_layers;
ConfigOptionFloat support_material_interface_spacing;
ConfigOptionEnum<InfillPattern> support_material_pattern;
ConfigOptionEnum<SupportMaterialPattern> support_material_pattern;
ConfigOptionFloat support_material_spacing;
ConfigOptionFloat support_material_speed;
ConfigOptionInt support_material_threshold;
@ -918,7 +934,7 @@ class PrintObjectConfig : public virtual StaticConfig
this->support_material_interface_extruder.value = 1;
this->support_material_interface_layers.value = 3;
this->support_material_interface_spacing.value = 0;
this->support_material_pattern.value = ipHoneycomb;
this->support_material_pattern.value = smpHoneycomb;
this->support_material_spacing.value = 2.5;
this->support_material_speed.value = 60;
this->support_material_threshold.value = 0;