Pick updates from BS 1.9.3
sync bbl profiles FIX: [#4320] crash when edit project preset github: #4320 Change-Id: I81eb5f0d461565d63a32100a5bebb4569cfb0b1b ENH: add pctg type Jira: none Signed-off-by: qing.zhang <qing.zhang@bambulab.com> Change-Id: Ie01fcd4bef0d3ebec5bbd7185a87a1740068bdba (cherry picked from commit c6276932dd92bc4283600954415eedeac6d351ce) ENH: CLI: add logic to save metadata into 3mf from CLI JIRA: no jira Change-Id: I7f96c2ab9671ec1c0115e90f6d64230b8170eb38 (cherry picked from commit 3d2d6e23ba318a2b331a62e320f8ca199168f1f5)
This commit is contained in:
parent
6a28bae6fd
commit
b7a0b30578
16 changed files with 134 additions and 14 deletions
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "Bambulab",
|
||||
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
|
||||
"version": "01.09.00.12",
|
||||
"version": "01.09.00.14",
|
||||
"force_update": "0",
|
||||
"description": "the initial version of BBL configurations",
|
||||
"machine_model_list": [
|
||||
|
@ -625,6 +625,10 @@
|
|||
"name": "fdm_filament_pc",
|
||||
"sub_path": "filament/fdm_filament_pc.json"
|
||||
},
|
||||
{
|
||||
"name": "fdm_filament_pctg",
|
||||
"sub_path": "filament/fdm_filament_pctg.json"
|
||||
},
|
||||
{
|
||||
"name": "fdm_filament_asa",
|
||||
"sub_path": "filament/fdm_filament_asa.json"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "filament",
|
||||
"name": "Generic PCTG @base",
|
||||
"inherits": "fdm_filament_pet",
|
||||
"inherits": "fdm_filament_pctg",
|
||||
"from": "system",
|
||||
"filament_id": "GFG97",
|
||||
"instantiation": "false",
|
||||
|
|
64
resources/profiles/BBL/filament/fdm_filament_pctg.json
Normal file
64
resources/profiles/BBL/filament/fdm_filament_pctg.json
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"type": "filament",
|
||||
"name": "fdm_filament_pctg",
|
||||
"inherits": "fdm_filament_common",
|
||||
"from": "system",
|
||||
"instantiation": "false",
|
||||
"eng_plate_temp": [
|
||||
"0"
|
||||
],
|
||||
"eng_plate_temp_initial_layer": [
|
||||
"0"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"20"
|
||||
],
|
||||
"fan_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"filament_cost": [
|
||||
"30"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.27"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"25"
|
||||
],
|
||||
"filament_type": [
|
||||
"PCTG"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"80"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"80"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"255"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"255"
|
||||
],
|
||||
"nozzle_temperature_range_high": [
|
||||
"260"
|
||||
],
|
||||
"nozzle_temperature_range_low": [
|
||||
"220"
|
||||
],
|
||||
"reduce_fan_stop_start_freq": [
|
||||
"1"
|
||||
],
|
||||
"temperature_vitrification": [
|
||||
"70"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"80"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"80"
|
||||
],
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S180\n{elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S255\n{endif};Prevent PLA from jamming\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1203,6 +1203,15 @@ int CLI::run(int argc, char **argv)
|
|||
DynamicPrintConfig load_process_config, load_machine_config;
|
||||
bool new_process_config_is_system = true, new_printer_config_is_system = true;
|
||||
std::string pipe_name, makerlab_name, makerlab_version, different_process_setting;
|
||||
const std::vector<std::string> &metadata_name = m_config.option<ConfigOptionStrings>("metadata_name", true)->values;
|
||||
const std::vector<std::string> &metadata_value = m_config.option<ConfigOptionStrings>("metadata_value", true)->values;
|
||||
|
||||
if (metadata_name.size() != metadata_value.size())
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(error) << boost::format("metadata_name should be the same size with metadata_value");
|
||||
record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info);
|
||||
flush_and_exit(CLI_INVALID_PARAMS);
|
||||
}
|
||||
|
||||
// Read input file(s) if any.
|
||||
BOOST_LOG_TRIVIAL(info) << "Will start to read model file now, file count :" << m_input_files.size() << "\n";
|
||||
|
@ -5852,6 +5861,18 @@ int CLI::run(int argc, char **argv)
|
|||
model.mk_version = makerlab_version;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("mk_name %1%, mk_version %2%")%makerlab_name %makerlab_version;
|
||||
}
|
||||
|
||||
if (!metadata_name.empty()) {
|
||||
Model &model = m_models[0];
|
||||
|
||||
model.md_value = metadata_value;
|
||||
model.md_name = metadata_name;
|
||||
for (unsigned int i = 0; i < metadata_name.size(); i++)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("index %1% metadata_name %2%, metadata_value %3%")%i %metadata_name[i] %metadata_value[i];
|
||||
}
|
||||
}
|
||||
|
||||
if (!this->export_project(&m_models[0], export_3mf_file, plate_data_list, project_presets, thumbnails, no_light_thumbnails, top_thumbnails, pick_thumbnails,
|
||||
calibration_thumbnails, plate_bboxes, &m_print_config, minimum_save, plate_to_slice - 1))
|
||||
{
|
||||
|
|
|
@ -590,7 +590,8 @@ double getadhesionCoeff(const PrintObject* printObject)
|
|||
for (auto iter = extrudersFirstLayer.begin(); iter != extrudersFirstLayer.end(); iter++)
|
||||
if (modelVolume->extruder_id() == *iter) {
|
||||
if (Model::extruderParamsMap.find(modelVolume->extruder_id()) != Model::extruderParamsMap.end())
|
||||
if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG") {
|
||||
if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG" ||
|
||||
Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PCTG") {
|
||||
adhesionCoeff = 2;
|
||||
}
|
||||
else if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "TPU") {
|
||||
|
|
|
@ -6450,6 +6450,13 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||
metadata_item_map[BBL_MAKERLAB_VERSION_TAG] = xml_escape(model.mk_version);
|
||||
BOOST_LOG_TRIVIAL(info) << "saved mk_version " << model.mk_version;
|
||||
}
|
||||
if (!model.md_name.empty()) {
|
||||
for (unsigned int i = 0; i < model.md_name.size(); i++)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("saved metadata_name %1%, metadata_value %2%") %model.md_name[i] %model.md_value[i];
|
||||
metadata_item_map[model.md_name[i]] = xml_escape(model.md_value[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// store metadata info
|
||||
for (auto item : metadata_item_map) {
|
||||
|
|
|
@ -96,6 +96,8 @@ Model& Model::assign_copy(const Model &rhs)
|
|||
|
||||
this->mk_name = rhs.mk_name;
|
||||
this->mk_version = rhs.mk_version;
|
||||
this->md_name = rhs.md_name;
|
||||
this->md_value = rhs.md_value;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
@ -129,6 +131,8 @@ Model& Model::assign_copy(Model &&rhs)
|
|||
this->stl_design_country = rhs.stl_design_country;
|
||||
this->mk_name = rhs.mk_name;
|
||||
this->mk_version = rhs.mk_version;
|
||||
this->md_name = rhs.md_name;
|
||||
this->md_value = rhs.md_value;
|
||||
this->backup_path = std::move(rhs.backup_path);
|
||||
this->object_backup_id_map = std::move(rhs.object_backup_id_map);
|
||||
this->next_object_backup_id = rhs.next_object_backup_id;
|
||||
|
@ -983,6 +987,8 @@ void Model::load_from(Model& model)
|
|||
profile_info = model.profile_info;
|
||||
mk_name = model.mk_name;
|
||||
mk_version = model.mk_version;
|
||||
md_name = model.md_name;
|
||||
md_value = model.md_value;
|
||||
model.design_info.reset();
|
||||
model.model_info.reset();
|
||||
model.profile_info.reset();
|
||||
|
@ -2956,7 +2962,7 @@ bool Model::obj_import_vertex_color_deal(const std::vector<unsigned char> &verte
|
|||
case _3_SAME_COLOR: {
|
||||
std::string result;
|
||||
get_real_filament_id(filament_id0, result);
|
||||
volume->mmu_segmentation_facets.set_triangle_from_string(i, result);
|
||||
volume->mmu_segmentation_facets.set_triangle_from_string(i, result);
|
||||
break;
|
||||
}
|
||||
case _3_DIFF_COLOR: {
|
||||
|
@ -3161,7 +3167,8 @@ double getadhesionCoeff(const ModelVolumePtrs objectVolumes)
|
|||
double adhesionCoeff = 1;
|
||||
for (const ModelVolume* modelVolume : objectVolumes) {
|
||||
if (Model::extruderParamsMap.find(modelVolume->extruder_id()) != Model::extruderParamsMap.end())
|
||||
if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG") {
|
||||
if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PETG" ||
|
||||
Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "PCTG") {
|
||||
adhesionCoeff = 2;
|
||||
}
|
||||
else if (Model::extruderParamsMap.at(modelVolume->extruder_id()).materialName == "TPU") {
|
||||
|
|
|
@ -423,7 +423,7 @@ public:
|
|||
bool is_mm_painted() const;
|
||||
// This object may have a varying layer height by painting or by a table.
|
||||
// Even if true is returned, the layer height profile may be "flat" with no difference to default layering.
|
||||
bool has_custom_layering() const
|
||||
bool has_custom_layering() const
|
||||
{ return ! this->layer_config_ranges.empty() || ! this->layer_height_profile.empty(); }
|
||||
|
||||
ModelInstance* add_instance();
|
||||
|
@ -1508,6 +1508,8 @@ public:
|
|||
//makerlab information
|
||||
std::string mk_name;
|
||||
std::string mk_version;
|
||||
std::vector<std::string> md_name;
|
||||
std::vector<std::string> md_value;
|
||||
|
||||
void SetDesigner(std::string designer, std::string designer_user_id) {
|
||||
if (design_info == nullptr) {
|
||||
|
|
|
@ -2452,9 +2452,9 @@ FilamentTempType Print::get_filament_temp_type(const std::string& filament_type)
|
|||
catch (const json::parse_error& err){
|
||||
in.close();
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": parse " << file_path.string() << " got a nlohmann::detail::parse_error, reason = " << err.what();
|
||||
filament_temp_type_map[HighTempFilamentStr] = {"ABS","ASA","PC","PA","PA-CF","PA6-CF","PET-CF","PPS","PPS-CF","PPA-GF","PPA-CF"};
|
||||
filament_temp_type_map[LowTempFilamentStr] = {"PLA","TPU","PLA-CF","PLA-AERO","PVA"};
|
||||
filament_temp_type_map[HighLowCompatibleFilamentStr] = { "HIPS","PETG" };
|
||||
filament_temp_type_map[HighTempFilamentStr] = {"ABS","ASA","PC","PA","PA-CF","PA-GF","PA6-CF","PET-CF","PPS","PPS-CF","PPA-GF","PPA-CF","ABS-Aero","ABS-GF"};
|
||||
filament_temp_type_map[LowTempFilamentStr] = {"PLA","TPU","PLA-CF","PLA-AERO","PVA","BVOH"};
|
||||
filament_temp_type_map[HighLowCompatibleFilamentStr] = { "HIPS","PETG","PCTG","PE","PP","EVA","PE-CF","PP-CF","PP-GF","PHA"};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1944,6 +1944,7 @@ void PrintConfigDef::init_fff_params()
|
|||
def->enum_values.push_back("ASA");
|
||||
def->enum_values.push_back("ASA-Aero");
|
||||
def->enum_values.push_back("BVOH");
|
||||
def->enum_values.push_back("PCTG");
|
||||
def->enum_values.push_back("EVA");
|
||||
def->enum_values.push_back("HIPS");
|
||||
def->enum_values.push_back("PA");
|
||||
|
@ -7074,6 +7075,18 @@ CLIMiscConfigDef::CLIMiscConfigDef()
|
|||
def->cli_params = "version";
|
||||
def->set_default_value(new ConfigOptionString());
|
||||
|
||||
def = this->add("metadata_name", coStrings);
|
||||
def->label = "metadata name list";
|
||||
def->tooltip = "matadata name list added into 3mf";
|
||||
def->cli_params = "\"name1;name2;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
def = this->add("metadata_value", coStrings);
|
||||
def->label = "metadata value list";
|
||||
def->tooltip = "matadata value list added into 3mf";
|
||||
def->cli_params = "\"value1;value2;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
def = this->add("allow_newer_file", coBool);
|
||||
def->label = "Allow 3mf with newer version to be sliced";
|
||||
def->tooltip = "Allow 3mf with newer version to be sliced";
|
||||
|
|
|
@ -151,6 +151,7 @@ void ConfigManipulation::check_chamber_temperature(DynamicPrintConfig* config)
|
|||
{"PVA",45},
|
||||
{"TPU",50},
|
||||
{"PETG",55},
|
||||
{"PCTG",55},
|
||||
{"PETG-CF",55}
|
||||
};
|
||||
bool support_chamber_temp_control=GUI::wxGetApp().preset_bundle->printers.get_selected_preset().config.opt_bool("support_chamber_temp_control");
|
||||
|
|
|
@ -4732,7 +4732,7 @@ void CreatePresetForPrinterDialog::get_visible_printer_and_compatible_filament_p
|
|||
m_preset_bundle->update_compatible(PresetSelectCompatibleType::Always);
|
||||
const std::deque<Preset> &filament_presets = m_preset_bundle->filaments.get_presets();
|
||||
for (const Preset &filament_preset : filament_presets) {
|
||||
if (filament_preset.is_default || !filament_preset.is_compatible) continue;
|
||||
if (filament_preset.is_default || !filament_preset.is_compatible || filament_preset.is_project_embedded) continue;
|
||||
ConfigOptionStrings *filament_types;
|
||||
const Preset * filament_preset_base = m_preset_bundle->filaments.get_preset_base(filament_preset);
|
||||
if (filament_preset_base == &filament_preset) {
|
||||
|
|
|
@ -57,7 +57,7 @@ static wxString update_custom_filaments()
|
|||
bool not_need_show = false;
|
||||
std::string filament_name;
|
||||
for (const Preset *preset : filament_id_to_presets.second) {
|
||||
if (preset->is_system) {
|
||||
if (preset->is_system || preset->is_project_embedded) {
|
||||
not_need_show = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -240,7 +240,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat
|
|||
SetSizer(v_sizer);
|
||||
wxBoxSizer* choice_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
wxString m_rbFilamentTypeChoices[] = { _L("PLA"), _L("ABS/ASA"), _L("PETG"), _L("TPU"), _L("PA-CF"), _L("PET-CF"), _L("Custom") };
|
||||
wxString m_rbFilamentTypeChoices[] = { _L("PLA"), _L("ABS/ASA"), _L("PETG"), _L("PCTG"), _L("TPU"), _L("PA-CF"), _L("PET-CF"), _L("Custom") };
|
||||
int m_rbFilamentTypeNChoices = sizeof(m_rbFilamentTypeChoices) / sizeof(wxString);
|
||||
m_rbFilamentType = new wxRadioBox(this, wxID_ANY, _L("Filament type"), wxDefaultPosition, wxDefaultSize, m_rbFilamentTypeNChoices, m_rbFilamentTypeChoices, 2, wxRA_SPECIFY_COLS);
|
||||
m_rbFilamentType->SetSelection(0);
|
||||
|
|
|
@ -17,4 +17,4 @@ set(ORCA_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|||
set(ORCA_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||
set(ORCA_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||
|
||||
set(SLIC3R_VERSION "01.09.02.57")
|
||||
set(SLIC3R_VERSION "01.09.03.50")
|
||||
|
|
Loading…
Reference in a new issue