Added solid_shell setting

Adde SetSettingsOnChange for setting that affect other setting.
Refactoring
This commit is contained in:
Lars Brubaker 2015-05-01 18:44:43 -07:00
parent 13b9c61ba3
commit 8b075926e9
8 changed files with 124 additions and 65 deletions

View file

@ -74,9 +74,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//filamentFlow
//layer0extrusionWidth
new ScaledSingleNumber("extrusionWidth", "nozzle_diameter", 1000),
new MapItem("insetCount", "perimeters"),
new AsLayerCountOrDistance("downSkinCount", "bottom_solid_layers"),
new AsLayerCountOrDistance("upSkinCount", "top_solid_layers"),
new AsCountOrDistance("insetCount", "perimeters", "nozzle_diameter"),
new AsCountOrDistance("downSkinCount", "bottom_solid_layers", "layer_height"),
new AsCountOrDistance("upSkinCount", "top_solid_layers", "layer_height"),
new ScaledSingleNumber("skirtDistance", "skirt_distance", 1000),
new MapItem("skirtLineCount", "skirts"),
new SkirtLengthMaping("skirtMinLength", "min_skirt_length"),
@ -89,16 +89,16 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MapItem("insetXSpeed", "perimeter_speed"),
new AsPercentOfReferenceOrDirect("inset0Speed", "external_perimeter_speed", "perimeter_speed"),
new VisibleButNotMappedToEngine("", "temperature"),
new VisibleButNotMappedToEngine("", "bed_temperature"),
new VisibleButNotMappedToEngine("", "bed_shape"),
new VisibleButNotMappedToEngine("temperature"),
new VisibleButNotMappedToEngine("bed_temperature"),
new VisibleButNotMappedToEngine("bed_shape"),
new VisibleButNotMappedToEngine("", "has_fan"),
new VisibleButNotMappedToEngine("", "has_power_control"),
new VisibleButNotMappedToEngine("", "has_heated_bed"),
new VisibleButNotMappedToEngine("", "has_hardware_leveling"),
new VisibleButNotMappedToEngine("", "has_sd_card_reader"),
new VisibleButNotMappedToEngine("", "z_can_be_negative"),
new VisibleButNotMappedToEngine("has_fan"),
new VisibleButNotMappedToEngine("has_power_control"),
new VisibleButNotMappedToEngine("has_heated_bed"),
new VisibleButNotMappedToEngine("has_hardware_leveling"),
new VisibleButNotMappedToEngine("has_sd_card_reader"),
new VisibleButNotMappedToEngine("z_can_be_negative"),
new ScaledSingleNumber("objectSink", "bottom_clip_amount", 1000),
@ -117,17 +117,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MapItem("spiralizeMode", "spiral_vase"),
new VisibleButNotMappedToEngine("", "bed_size"),
new VisibleButNotMappedToEngine("bed_size"),
new PrintCenterX("posx", "print_center"),
new PrintCenterY("posy", "print_center"),
new VisibleButNotMappedToEngine("", "build_height"),
new VisibleButNotMappedToEngine("build_height"),
// needs testing, not working
new ScaledSingleNumber("supportLineDistance", "support_material_spacing", 1000),
new SupportMatterial("supportAngle", "support_material"),
new VisibleButNotMappedToEngine("", "support_material_threshold"),
new VisibleButNotMappedToEngine("support_material_threshold"),
new MapItem("supportEverywhere", "support_material_create_internal_support"),
new ScaledSingleNumber("supportXYDistance", "support_material_xy_distance", 1000),
new ScaledSingleNumber("supportZDistance", "support_material_z_distance", 1000),
@ -141,9 +141,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MapStartGCode("startCode", "start_gcode", false),
new MapEndGCode("endCode", "end_gcode"),
new VisibleButNotMappedToEngine("", "pause_gcode"),
new VisibleButNotMappedToEngine("", "resume_gcode"),
new VisibleButNotMappedToEngine("", "cancel_gcode"),
new VisibleButNotMappedToEngine("pause_gcode"),
new VisibleButNotMappedToEngine("resume_gcode"),
new VisibleButNotMappedToEngine("cancel_gcode"),
#if false
SETTING(filamentFlow);

View file

@ -87,8 +87,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//doCoolHeadLift=False # Will cause the head to be raised in z until the min layer time is reached.
new MapItemToBool("doCoolHeadLift", "cool_extruder_lift"),
new VisibleButNotMappedToEngine("", "extruder_count"),
new VisibleButNotMappedToEngine("", "extruders_share_temperature"),
new VisibleButNotMappedToEngine("extruder_count"),
new VisibleButNotMappedToEngine("extruders_share_temperature"),
//endCode=M104 S0
new GCodeForSlicer("endCode", "end_gcode"),
@ -181,19 +181,21 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//multiVolumeOverlapPercent=0
//numberOfBottomLayers=6
new AsLayerCountOrDistance("numberOfBottomLayers", "bottom_solid_layers"),
new AsCountOrDistance("numberOfBottomLayers", "bottom_solid_layers", "layer_height"),
new VisibleButNotMappedToEngine("solid_shell"),
//numberOfSkirtLoops=1 # The number of loops to draw around objects. Can be used to help hold them down.
new MapItem("numberOfSkirtLoops", "skirts"),
//numberOfTopLayers=6
new AsLayerCountOrDistance("numberOfTopLayers", "top_solid_layers"),
new AsCountOrDistance("numberOfTopLayers", "top_solid_layers", "layer_height"),
//outsidePerimeterSpeed=50 # The speed of the first perimeter. mm/s.
new AsPercentOfReferenceOrDirect("outsidePerimeterSpeed", "external_perimeter_speed", "perimeter_speed"),
//numberOfPerimeters=2
new MapItem("numberOfPerimeters", "perimeters"),
new AsCountOrDistance("numberOfPerimeters", "perimeters", "nozzle_diameter"),
//positionToPlaceObjectCenter=[102.5,102.5]
new MapPositionToPlaceObjectCenter("positionToPlaceObjectCenter", "print_center"),
@ -205,17 +207,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//repairOutlines=NONE # Available Values: NONE, EXTENSIVE_STITCHING, KEEP_OPEN # You can or them together using '|'.
new MapRepairOutlines("repairOutlines", "repair_outlines_extensive_stitching"),
new VisibleButNotMappedToEngine("", "repair_outlines_keep_open"),
new VisibleButNotMappedToEngine("repair_outlines_keep_open"),
new VisibleButNotMappedToEngine("", "has_fan"),
new VisibleButNotMappedToEngine("", "has_hardware_leveling"),
new VisibleButNotMappedToEngine("", "has_power_control"),
new VisibleButNotMappedToEngine("", "has_heated_bed"),
new VisibleButNotMappedToEngine("", "has_sd_card_reader"),
new VisibleButNotMappedToEngine("", "z_can_be_negative"),
new VisibleButNotMappedToEngine("", "show_reset_connection"),
new VisibleButNotMappedToEngine("", "extruder_wipe_temperature"),
new VisibleButNotMappedToEngine("", "bed_remove_part_temperature"),
new VisibleButNotMappedToEngine("has_fan"),
new VisibleButNotMappedToEngine("has_hardware_leveling"),
new VisibleButNotMappedToEngine("has_power_control"),
new VisibleButNotMappedToEngine("has_heated_bed"),
new VisibleButNotMappedToEngine("has_sd_card_reader"),
new VisibleButNotMappedToEngine("z_can_be_negative"),
new VisibleButNotMappedToEngine("show_reset_connection"),
new VisibleButNotMappedToEngine("extruder_wipe_temperature"),
new VisibleButNotMappedToEngine("bed_remove_part_temperature"),
//retractionOnExtruderSwitch=14.5
new MapItem("retractionOnExtruderSwitch", "retract_length_tool_change"),
@ -241,7 +243,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new GCodeForSlicer("toolChangeCode", "toolchange_gcode"),
new VisibleButNotMappedToEngine("", "heat_extruder_before_homing"),
new VisibleButNotMappedToEngine("heat_extruder_before_homing"),
//supportExtruder=1
new ValuePlusConstant("supportExtruder", "support_material_extruder", -1),
@ -260,7 +262,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// get the check box on the screen
new SupportMatterial("supportEndAngle", "support_material"),
new VisibleButNotMappedToEngine("", "support_material_threshold"),
new VisibleButNotMappedToEngine("support_material_threshold"),
//supportType=NONE # Available Values: NONE, GRID, LINES
new MapItem("supportType", "support_type"),
@ -269,9 +271,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MapItem("supportXYDistanceFromObject", "support_material_xy_distance"),
//supportZDistanceFromObject=1 # The number of layers to skip in z. The gap between the support and the model.
new AsLayerCountOrDistance("supportNumberOfLayersToSkipInZ", "support_material_z_gap_layers"),
new AsCountOrDistance("supportNumberOfLayersToSkipInZ", "support_material_z_gap_layers", "layer_height"),
new AsLayerCountOrDistance("supportInterfaceLayers", "support_material_interface_layers"),
new AsCountOrDistance("supportInterfaceLayers", "support_material_interface_layers", "layer_height"),
//travelSpeed=200 # The speed to move when not extruding material. mm/s.
new MapItem("travelSpeed", "travel_speed"),
@ -283,16 +285,16 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//wipeTowerSize=0 # Unlike the wipe shield this is a square of size*size in the lower left corner for wiping during extruder changing.
new MapItem("wipeTowerSize", "wipe_tower_size"),
new VisibleButNotMappedToEngine("", "pause_gcode"),
new VisibleButNotMappedToEngine("", "resume_gcode"),
new VisibleButNotMappedToEngine("", "cancel_gcode"),
new VisibleButNotMappedToEngine("pause_gcode"),
new VisibleButNotMappedToEngine("resume_gcode"),
new VisibleButNotMappedToEngine("cancel_gcode"),
new VisibleButNotMappedToEngine("", "bed_size"),
new VisibleButNotMappedToEngine("", "build_height"),
new VisibleButNotMappedToEngine("bed_size"),
new VisibleButNotMappedToEngine("build_height"),
new VisibleButNotMappedToEngine("", "temperature"),
new VisibleButNotMappedToEngine("", "bed_temperature"),
new VisibleButNotMappedToEngine("", "bed_shape"),
new VisibleButNotMappedToEngine("temperature"),
new VisibleButNotMappedToEngine("bed_temperature"),
new VisibleButNotMappedToEngine("bed_shape"),
};
public static void WriteMatterSliceSettingsFile(string outputFilename)

View file

@ -85,8 +85,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
public VisibleButNotMappedToEngine(string mappedKey, string originalKey)
: base(mappedKey, originalKey)
public VisibleButNotMappedToEngine(string originalKey)
: base("", originalKey)
{
}
}
@ -339,11 +339,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
public class AsLayerCountOrDistance : MapItem
public class AsCountOrDistance : MapItem
{
public AsLayerCountOrDistance(string mappedKey, string originalKey)
string keyToUseAsDenominatorForCount;
public AsCountOrDistance(string mappedKey, string originalKey, string keyToUseAsDenominatorForCount)
: base(mappedKey, originalKey)
{
this.keyToUseAsDenominatorForCount = keyToUseAsDenominatorForCount;
}
public override string MappedValue
@ -353,7 +355,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (OriginalValue.Contains("mm"))
{
string withoutMm = OriginalValue.Replace("mm", "");
int layers = (int)(MapItem.ParseValueString(withoutMm) / ActiveSliceSettings.Instance.LayerHeight + .5);
string distanceString = ActiveSliceSettings.Instance.GetActiveValue(keyToUseAsDenominatorForCount);
double denominator = MapItem.ParseValueString(distanceString, 1);
int layers = (int)(MapItem.ParseValueString(withoutMm) / denominator + .5);
return layers.ToString();
}