Updated SLA profiles.

Fixed the update downloader to ignore downloaded preset index if it is
older than the currently active one.
This commit is contained in:
bubnikv 2018-12-20 17:44:24 +01:00
parent 54fae97032
commit 42fada4576
4 changed files with 179 additions and 33 deletions

View File

@ -1,6 +1,21 @@
min_slic3r_version = 1.42.0-alpha
0.4.0-alpha3 Update of SLA profiles
0.4.0-alpha2 First SLA profiles
min_slic3r_version = 1.41.1
0.3.3 Prusament PETG released
0.3.2 New MK2.5 and MK3 FW versions
0.3.1 New MK2.5 and MK3 FW versions
0.3.0 New MK2.5 and MK3 FW version
min_slic3r_version = 1.41.0-alpha
0.2.9 New MK2.5 and MK3 FW versions
0.2.8 New MK2.5 and MK3 FW version
min_slic3r_version = 1.41.1
0.2.7 New MK2.5 and MK3 FW version
0.2.6 Added MMU2 MK2.5 settings
min_slic3r_version = 1.41.0-alpha
0.2.5 Prusament is out - added prusament settings
0.2.4 Added soluble support profiles for MMU2
0.2.3 Added materials for MMU2 single mode, edited MK3 xy stealth feedrate limit
0.2.2 Edited MMU2 Single mode purge line
0.2.1 Added PET and BVOH settings for MMU2
0.2.0-beta5 Fixed MMU1 ramming parameters

View File

@ -5,7 +5,7 @@
name = Prusa Research
# Configuration version of this file. Config file will only be installed, if the config_version differs.
# This means, the server may force the Slic3r configuration to be downgraded.
config_version = 0.4.0-alpha2
config_version = 0.4.0-alpha3
# Where to get the updates from?
config_update_url = https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch/
@ -41,7 +41,7 @@ variants = 0.4
[printer_model:SL1]
name = Original Prusa SL1
variants = default; dummy
variants = default
# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.
@ -1137,19 +1137,132 @@ min_fan_speed = 100
start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode"
temperature = 220
[sla_material:*common*]
[sla_print:*common*]
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_SL1.*/
layer_height = 0.05
initial_layer_height = 0.3
output_filename_format = [input_filename_base].dwz
pad_edge_radius = 0.5
pad_enable = 1
pad_max_merge_distance = 50
pad_wall_height = 3
pad_wall_thickness = 1
support_base_diameter = 3
support_base_height = 0.5
support_critical_angle = 45
support_density_at_45 = 250
support_density_at_horizontal = 500
support_head_front_diameter = 0.4
support_head_penetration = 0.4
support_head_width = 3
support_max_bridge_length = 10
support_minimal_z = 0
support_object_elevation = 5
support_pillar_diameter = 1
support_pillar_widening_factor = 0
supports_enable = 1
[sla_print:0.025 UltraDetail]
inherits = *common*
layer_height = 0.025
support_head_width = 2
[sla_print:0.035 Detail]
inherits = *common*
layer_height = 0.035
[sla_print:0.05 Normal]
inherits = *common*
layer_height = 0.05
[sla_print:0.1 Fast]
inherits = *common*
layer_height = 0.1
########### Materials 0.025
[sla_material:*common 0.05*]
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_SL1.*/
compatible_prints_condition = layer_height == 0.05
exposure_time = 12
initial_exposure_time = 45
initial_layer_height = 0.5
material_correction_curing = 1,1,1
material_correction_printing = 1,1,1
material_notes =
[sla_material:*common 0.025*]
inherits = *common 0.05*
compatible_prints_condition = layer_height == 0.025
exposure_time = 10
initial_exposure_time = 15
material_correction_printing = 1, 1, 1
material_correction_curing = 1, 1, 1
initial_exposure_time = 35
[sla_material:Material 1]
inherits = *common*
[sla_material:*common 0.035*]
inherits = *common 0.05*
compatible_prints_condition = layer_height == 0.035
exposure_time = 13
initial_exposure_time = 40
[sla_material:Material 2]
inherits = *common*
[sla_material:*common 0.1*]
inherits = *common 0.05*
compatible_prints_condition = layer_height == 0.1
exposure_time = 20
initial_exposure_time = 90
########### Materials 0.025
[sla_material:Jamg He Transparent Clear 0.025]
inherits = *common 0.025*
[sla_material:Jamg He Transparent Green 0.025]
inherits = *common 0.025*
[sla_material:Jamg He Transparent Orange 0.025]
inherits = *common 0.025*
[sla_material:Jamg He Transparent Red 0.025]
inherits = *common 0.025*
########### Materials 0.05
[sla_material:Jamg He Transparent Clear 0.05]
inherits = *common 0.05*
[sla_material:Jamg He Transparent Green 0.05]
inherits = *common 0.05*
[sla_material:Jamg He Transparent Orange 0.05]
inherits = *common 0.05*
[sla_material:Jamg He Transparent Red 0.05]
inherits = *common 0.05*
########### Materials 0.035
[sla_material:Jamg He Transparent Clear 0.035]
inherits = *common 0.035*
[sla_material:Jamg He Transparent Green 0.035]
inherits = *common 0.035*
[sla_material:Jamg He Transparent Orange 0.035]
inherits = *common 0.035*
[sla_material:Jamg He Transparent Red 0.035]
inherits = *common 0.035*
########### Materials 0.1
[sla_material:Jamg He Transparent Clear 0.1]
inherits = *common 0.1*
[sla_material:Jamg He Transparent Green 0.1]
inherits = *common 0.1*
[sla_material:Jamg He Transparent Orange 0.1]
inherits = *common 0.1*
[sla_material:Jamg He Transparent Red 0.1]
inherits = *common 0.1*
[printer:*common*]
printer_technology = FFF
@ -1467,21 +1580,20 @@ end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG
printer_technology = SLA
printer_model = SL1
printer_variant = default
default_sla_material_profile = Material 1
bed_shape = 0x0,150x0,150x100,0x100
max_print_height = 100
display_width = 150
display_height = 100
display_pixels_x = 2000
display_pixels_y = 1000
default_sla_material_profile = Jamg He Transparent Green 0.05
default_sla_print_profile = 0.05 Normal
bed_shape = 0.98x1.02,119.98x1.02,119.98x68.02,0.98x68.02
display_height = 68.04
display_orientation = portrait
display_pixels_x = 2560
display_pixels_y = 1440
display_width = 120.96
max_print_height = 150
printer_correction = 1,1,1
[printer:Original Prusa SL1 dummy]
inherits = Original Prusa SL1
printer_variant = dummy
default_sla_material_profile = Material 2
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\n
# The obsolete presets will be removed when upgrading from the legacy configuration structure (up to Slic3r 1.39.2) to 1.40.0 and newer.
[obsolete_presets]
print="0.05mm DETAIL 0.25 nozzle";"0.05mm DETAIL MK3";"0.05mm DETAIL";"0.20mm NORMAL MK3";"0.35mm FAST MK3";"print:0.15mm OPTIMAL MK3 MMU2";"print:0.20mm FAST MK3 MMU2"
filament="ColorFabb Brass Bronze 1.75mm";"ColorFabb HT 1.75mm";"ColorFabb nGen 1.75mm";"ColorFabb Woodfil 1.75mm";"ColorFabb XT 1.75mm";"ColorFabb XT-CF20 1.75mm";"E3D PC-ABS 1.75mm";"Fillamentum ABS 1.75mm";"Fillamentum ASA 1.75mm";"Generic ABS 1.75mm";"Generic PET 1.75mm";"Generic PLA 1.75mm";"Prusa ABS 1.75mm";"Prusa HIPS 1.75mm";"Prusa PET 1.75mm";"Prusa PLA 1.75mm";"Taulman Bridge 1.75mm";"Taulman T-Glase 1.75mm"
printer="Original Prusa SL1 dummy"

View File

@ -235,7 +235,9 @@ void Http::priv::http_perform()
#if LIBCURL_VERSION_MAJOR >= 7 && LIBCURL_VERSION_MINOR >= 32
::curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, xfercb);
::curl_easy_setopt(curl, CURLOPT_XFERINFODATA, static_cast<void*>(this));
#ifndef _WIN32
(void)xfercb_legacy; // prevent unused function warning
#endif
#else
::curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, xfercb);
::curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, static_cast<void*>(this));

View File

@ -9,6 +9,7 @@
#include <boost/algorithm/string.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/log/trivial.hpp>
#include <wx/app.h>
@ -112,7 +113,7 @@ struct PresetUpdater::priv
bool get_file(const std::string &url, const fs::path &target_path) const;
void prune_tmps() const;
void sync_version() const;
void sync_config(const std::set<VendorProfile> vendors) const;
void sync_config(const std::set<VendorProfile> vendors);
void check_install_indices() const;
Updates get_config_updates() const;
@ -130,7 +131,7 @@ PresetUpdater::priv::priv() :
{
set_download_prefs(GUI::wxGetApp().app_config);
check_install_indices();
index_db = std::move(Index::load_db());
index_db = Index::load_db();
}
// Pull relevant preferences from AppConfig
@ -220,14 +221,14 @@ void PresetUpdater::priv::sync_version() const
// Download vendor indices. Also download new bundles if an index indicates there's a new one available.
// Both are saved in cache.
void PresetUpdater::priv::sync_config(const std::set<VendorProfile> vendors) const
void PresetUpdater::priv::sync_config(const std::set<VendorProfile> vendors)
{
BOOST_LOG_TRIVIAL(info) << "Syncing configuration cache";
if (!enabled_config_update) { return; }
// Donwload vendor preset bundles
for (const auto &index : index_db) {
for (auto &index : index_db) {
if (cancel) { return; }
const auto vendor_it = vendors.find(VendorProfile(index.vendor()));
@ -245,17 +246,33 @@ void PresetUpdater::priv::sync_config(const std::set<VendorProfile> vendors) con
// Download a fresh index
BOOST_LOG_TRIVIAL(info) << "Downloading index for vendor: " << vendor.name;
const auto idx_url = vendor.config_update_url + "/" + INDEX_FILENAME;
const auto idx_path = cache_path / (vendor.id + ".idx");
if (! get_file(idx_url, idx_path)) { continue; }
const std::string idx_path = (cache_path / (vendor.id + ".idx")).string();
const std::string idx_path_temp = idx_path + "-update";
if (!get_file(idx_url, idx_path_temp)) { continue; }
if (cancel) { return; }
// Load the fresh index up
Index new_index;
new_index.load(idx_path);
{
Index new_index;
try {
new_index.load(idx_path_temp);
} catch (const std::exception &err) {
BOOST_LOG_TRIVIAL(error) << boost::format("Failed loading a downloaded index %1% for vendor %2%: invalid index?") % idx_path_temp % vendor.name;
continue;
}
if (new_index.version() < index.version()) {
BOOST_LOG_TRIVIAL(error) << boost::format("The downloaded index %1% for vendor %2% is older than the active one. Ignoring the downloaded index.") % idx_path_temp % vendor.name;
continue;
}
Slic3r::rename_file(idx_path_temp, idx_path);
index = std::move(new_index);
if (cancel)
return;
}
// See if a there's a new version to download
const auto recommended_it = new_index.recommended();
if (recommended_it == new_index.end()) {
const auto recommended_it = index.recommended();
if (recommended_it == index.end()) {
BOOST_LOG_TRIVIAL(error) << boost::format("No recommended version for vendor: %1%, invalid index?") % vendor.name;
continue;
}