Merge pull request #934 from larsbrubaker/master

Moved default settings into Properties.json and removed default confi…
This commit is contained in:
johnlewin 2016-06-13 13:33:14 -07:00 committed by GitHub
commit c6e0cca395
7 changed files with 1394 additions and 448 deletions

View file

@ -201,52 +201,5 @@ namespace MatterHackers.MatterControl.DataStorage.ClassicDB
return dictionary;
}
private static void LoadDefaultConfigrationSettings(List<ClassicSettingsLayer> settings)
{
SliceSettingsCollection defaultCollection = new SliceSettingsCollection();
defaultCollection.Name = "__default__";
ClassicSettingsLayer defaultSettingsLayer = LoadConfigurationSettingsFromFile(Path.Combine("PrinterSettings", "config.ini"), defaultCollection);
settings.Add(defaultSettingsLayer);
}
private static ClassicSettingsLayer LoadConfigurationSettingsFromFile(string pathAndFileName, SliceSettingsCollection collection)
{
Dictionary<string, SliceSetting> settingsDictionary = new Dictionary<string, SliceSetting>();
ClassicSettingsLayer activeCollection;
try
{
if (StaticData.Instance.FileExists(pathAndFileName))
{
foreach (string line in StaticData.Instance.ReadAllLines(pathAndFileName))
{
//Ignore commented lines
if (!line.StartsWith("#"))
{
string[] settingLine = line.Split('=');
string keyName = settingLine[0].Trim();
string settingDefaultValue = settingLine[1].Trim();
SliceSetting sliceSetting = new SliceSetting();
sliceSetting.Name = keyName;
sliceSetting.Value = settingDefaultValue;
settingsDictionary.Add(keyName, sliceSetting);
}
}
activeCollection = new ClassicSettingsLayer(collection, settingsDictionary);
return activeCollection;
}
return null;
}
catch (Exception e)
{
Debug.Print(e.Message);
GuiWidget.BreakInDebugger();
Debug.WriteLine(string.Format("Error loading configuration: {0}", e));
return null;
}
}
}
}

View file

@ -384,15 +384,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
string baseConfigPath = Path.Combine(profilesPath, "config.json");
if(!File.Exists(baseConfigPath))
{
string configIniPath = Path.Combine("PrinterSettings", "config.ini");
SettingsLayer baseLayer;
using (var sourceStream = StaticData.Instance.OpenSteam(configIniPath))
using (var reader = new StreamReader(sourceStream))
{
baseLayer = SettingsLayer.LoadFromIni(reader);
}
SettingsLayer baseLayer = SliceSettingsOrganizer.Instance.GetDefaultSettings();
File.WriteAllText(baseConfigPath, JsonConvert.SerializeObject(baseLayer));
return baseLayer;

View file

@ -69,6 +69,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public bool ResetAtEndOfPrint { get; set; }
public string DefaultValue { get; set; }
static public OrganizerSettingsData NewOrganizerSettingData(string slicerConfigName, string presentationName, OrganizerSettingsData.DataEditTypes dataEditType, string extraSettings = "", string helpText = "")
{
return new OrganizerSettingsData(slicerConfigName, presentationName, dataEditType, extraSettings, helpText);
@ -114,13 +116,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
set { name = value; }
}
private List<OrganizerSettingsData> settingDataList = new List<OrganizerSettingsData>();
public List<OrganizerSettingsData> SettingDataList
{
get { return settingDataList; }
set { settingDataList = value; }
}
public List<OrganizerSettingsData> SettingDataList { get; private set; } = new List<OrganizerSettingsData>();
public OrganizerSubGroup(string groupName)
{
@ -218,13 +214,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
set { userLevels = value; }
}
private List<OrganizerSettingsData> settingsData = new List<OrganizerSettingsData>();
public List<OrganizerSettingsData> SettingsData
{
get { return settingsData; }
set { settingsData = value; }
}
public List<OrganizerSettingsData> SettingsData { get; private set; } = new List<OrganizerSettingsData>();
private static SliceSettingsOrganizer instance = null;
@ -292,10 +282,28 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
//throw new Exception("You must not have a layout for a setting that is not in the Properties.txt");
}
public void SavePropertiesJson()
{
SettingsLayer baseLayer = ActiveSliceSettings.Instance.BaseLayer;
foreach (KeyValuePair<string, string> keyValue in baseLayer)
{
foreach(OrganizerSettingsData setting in SettingsData)
{
if(setting.SlicerConfigName == keyValue.Key)
{
setting.DefaultValue = keyValue.Value;
}
}
}
string propertiesFileContents = JsonConvert.SerializeObject(SettingsData, Formatting.Indented);
File.WriteAllText("Properties.json", propertiesFileContents);
}
private void LoadAndParseSettingsFiles()
{
string propertiesFileContents = StaticData.Instance.ReadAllText(Path.Combine("SliceSettings", "Properties.json"));
settingsData = JsonConvert.DeserializeObject<List<OrganizerSettingsData>>(propertiesFileContents) as List<OrganizerSettingsData>;
SettingsData = JsonConvert.DeserializeObject<List<OrganizerSettingsData>>(propertiesFileContents) as List<OrganizerSettingsData>;
OrganizerUserLevel userLevelToAddTo = null;
OrganizerCategory categoryToAddTo = null;
@ -354,5 +362,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
return numSpaces;
}
public SettingsLayer GetDefaultSettings()
{
Dictionary<string, string> settingsDictionary = new Dictionary<string, string>();
foreach(OrganizerSettingsData settingsData in this.SettingsData)
{
settingsDictionary[settingsData.SlicerConfigName] = settingsData.DefaultValue;
}
return new SettingsLayer(settingsDictionary);
}
}
}

View file

@ -718,8 +718,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (!ActiveSliceSettings.Instance.KnownSettings.Contains(settingData.SlicerConfigName))
{
// the setting we think we are adding is not in the config.ini it may have been deprecated
TextWidget settingName = new TextWidget(String.Format("Setting '{0}' not found in config.ini", settingData.SlicerConfigName));
// the setting we think we are adding is not in the known settings it may have been deprecated
TextWidget settingName = new TextWidget(String.Format("Setting '{0}' not found in known settings", settingData.SlicerConfigName));
settingName.TextColor = ActiveTheme.Instance.PrimaryTextColor;
//settingName.MinimumSize = new Vector2(minSettingNameWidth, settingName.MinimumSize.y);
nameArea.AddChild(settingName);

View file

@ -1,180 +0,0 @@
avoid_crossing_perimeters = 1
bed_shape = rectangular
bed_size = 200,200
bed_temperature = 70
before_toolchange_gcode =
bottom_clip_amount = 0
bottom_solid_layers = 1mm
bridge_acceleration = 0
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 20
brim_width = 0
build_height = 0
cancel_gcode =
center_part_on_bed = 1
complete_objects = 0
connect_gcode =
cool_extruder_lift = 0
print_leveling_solution = 3 Point Plane
print_leveling_method = Manual
print_leveling_required_to_print = 0
manual_probe_paper_width = .1
cooling = 1
create_raft = 0
default_acceleration = 0
disable_fan_first_layers = 1
end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors
external_perimeter_speed = 70%
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extruder_count = 1
extruder_offset = 0x0,0x0,0x0,0x0
extruder_wipe_temperature = 0
extruders_share_temperature = 0
extrusion_axis = E
extrusion_multiplier = 1
extrusion_width = 0
fan_always_on = 0
fan_below_layer_time = 60
filament_diameter = 3
fill_angle = 45
fill_density = 0.4
fill_pattern = honeycomb
first_layer_acceleration = 0
first_layer_bed_temperature = 75
first_layer_extrusion_width = 100%
first_layer_height = 0.3
first_layer_speed = 30%
first_layer_temperature = 205
g0 = 0
gap_fill_speed = 20
gcode_arcs = 0
gcode_comments = 0
gcode_flavor = reprap
has_fan = 1
has_hardware_leveling = 0
has_heated_bed = 1
has_power_control=0
has_sd_card_reader = 0
show_reset_connection = 0
heat_extruder_before_homing = 0
include_firmware_updater = None
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_overlap_perimeter = .1
infill_speed = 60
infill_type = TRIANGLES
layer_gcode = ; LAYER:[layer_num]
layer_height = 0.4
layer_to_pause =
MatterControl.PrinterName =
MatterControl.BaudRate = 250000
MatterControl.DeletePrinter =
MatterControl.ComPort =
MatterControl.AutoConnect = true
max_fan_speed = 100
min_extrusion_before_retract = .1
min_fan_speed = 35
min_print_speed = 10
min_skirt_length = 0
notes =
nozzle_diameter = 0.5
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
output_only_first_layer = 0
overhangs = 1
pause_gcode =
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
external_perimeter_extrusion_width = 100%
perimeter_speed = 30
perimeters = 3
post_process =
print_center = 100,100
raft_air_gap = .2
raft_extruder = 0
raft_extra_distance_around_part = 5
raft_fan_speed_percent = 100
raft_layers = 0
raft_print_speed = 100%
bed_remove_part_temperature = 0
randomize_start = 0
repair_outlines_extensive_stitching = 0
repair_outlines_keep_open = 0
resolution = 0
resume_first_layer_speed = 10
resume_gcode =
resume_position_before_z_home = 0,0
retract_before_travel = 20
retract_layer_change = 1
retract_length = 1
retract_length_tool_change = 10
retract_lift = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_when_changing_islands = 1
retract_speed = 30
skirt_distance = 6
skirt_height = 1
skirts = 1
brims = 0
slowdown_below_layer_time = 30
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extrusion_width = 0
solid_infill_speed = 60
solid_shell = 0
spiral_vase = 0
standby_temperature_delta = -5
start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle
start_perimeters_at_concave_points = 0
start_perimeters_at_non_overhang = 0
support_air_gap = .3
support_material = 0
support_material_angle = 45
support_material_percent = 50
support_material_create_internal_support = 1
support_material_create_perimeter = 1
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_infill_angle = 45
support_material_interface_extruder = 1
support_material_interface_layers = .9mm
support_material_interface_spacing = 0
support_material_pattern = honeycomb
support_material_spacing = 2.5
support_material_speed = 60
support_material_threshold = 0
support_material_xy_distance = 0.7
support_material_z_distance = 0.15
support_material_z_gap_layers = .3mm
support_type = LINES
temperature = 200
thin_walls = 1
threads = 2
toolchange_gcode =
top_infill_extrusion_width = 0
top_solid_infill_speed = 50
top_solid_layers = 1mm
travel_speed = 130
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 0
wipe_shield_distance = 0
wipe_tower_size = 0
z_can_be_negative = 0
z_homes_to_max = 0
z_offset = 0

File diff suppressed because it is too large Load diff

View file

@ -4978,3 +4978,21 @@ Translated:Export Cura settings (*.ini)
English:Export Settings
Translated:Export Settings
English:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue?
Translated:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue?
English:Revert Settings
Translated:Revert Settings
English:Import as new printer profile
Translated:Import as new printer profile
English:Merge into current printer profile
Translated:Merge into current printer profile
English:Replace current printer profile
Translated:Replace current printer profile
English:Import Settings
Translated:Import Settings