mirror of
https://git.mirrors.martin98.com/https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-15 20:55:55 +08:00
Merge branch 'SoftFever:main' into main
This commit is contained in:
commit
5da73cab0f
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "FLSun",
|
||||
"version": "01.06.00.00",
|
||||
"version": "01.06.00.02",
|
||||
"force_update": "0",
|
||||
"description": "FLSun configurations",
|
||||
"machine_model_list": [
|
||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
BIN
resources/profiles/FLSun/V400_bed.stl
Normal file
BIN
resources/profiles/FLSun/V400_bed.stl
Normal file
Binary file not shown.
@ -5,7 +5,7 @@
|
||||
"nozzle_diameter": "0.4",
|
||||
"machine_tech": "FFF",
|
||||
"family": "FLSun",
|
||||
"bed_model": "",
|
||||
"bed_model": "V400_bed.stl",
|
||||
"bed_texture": "V400.svg",
|
||||
"hotend_model": "",
|
||||
"default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF"
|
||||
|
@ -17,56 +17,56 @@
|
||||
"5000"
|
||||
],
|
||||
"machine_max_acceleration_extruding": [
|
||||
"2000",
|
||||
"2000"
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_retracting": [
|
||||
"5000",
|
||||
"5000"
|
||||
],
|
||||
"machine_max_acceleration_travel": [
|
||||
"3000",
|
||||
"3000"
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_x": [
|
||||
"2000",
|
||||
"2000"
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_y": [
|
||||
"2000",
|
||||
"2000"
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_z": [
|
||||
"300",
|
||||
"200"
|
||||
"500",
|
||||
"500"
|
||||
],
|
||||
"machine_max_speed_e": [
|
||||
"25",
|
||||
"25"
|
||||
"30",
|
||||
"30"
|
||||
],
|
||||
"machine_max_speed_x": [
|
||||
"300",
|
||||
"200"
|
||||
"1000",
|
||||
"1000"
|
||||
],
|
||||
"machine_max_speed_y": [
|
||||
"300",
|
||||
"200"
|
||||
"1000",
|
||||
"1000"
|
||||
],
|
||||
"machine_max_speed_z": [
|
||||
"12",
|
||||
"12"
|
||||
"20",
|
||||
"20"
|
||||
],
|
||||
"machine_max_jerk_e": [
|
||||
"2.5",
|
||||
"2.5"
|
||||
],
|
||||
"machine_max_jerk_x": [
|
||||
"9",
|
||||
"9"
|
||||
"12",
|
||||
"12"
|
||||
],
|
||||
"machine_max_jerk_y": [
|
||||
"9",
|
||||
"9"
|
||||
"12",
|
||||
"12"
|
||||
],
|
||||
"machine_max_jerk_z": [
|
||||
"0.2",
|
||||
|
@ -5,15 +5,24 @@
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_process_common",
|
||||
"initial_layer_speed": "40",
|
||||
"initial_layer_infill_speed": "50",
|
||||
"outer_wall_speed": "35",
|
||||
"inner_wall_speed": "60",
|
||||
"sparse_infill_speed": "200",
|
||||
"outer_wall_speed": "120",
|
||||
"inner_wall_speed": "200",
|
||||
"sparse_infill_speed": "250",
|
||||
"internal_solid_infill_speed": "200",
|
||||
"top_surface_speed": "50",
|
||||
"gap_infill_speed": "40",
|
||||
"travel_speed": "180",
|
||||
"default_acceleration": "7000",
|
||||
"default_jerk": "9",
|
||||
"gap_infill_speed": "200",
|
||||
"initial_layer_acceleration": "1000",
|
||||
"initial_layer_infill_speed": "100",
|
||||
"initial_layer_speed": "50",
|
||||
"inner_wall_acceleration": "7000",
|
||||
"is_custom_defined": "0",
|
||||
"outer_wall_acceleration": "4000",
|
||||
"overhang_1_4_speed": "80",
|
||||
"top_surface_acceleration": "3000",
|
||||
"top_surface_speed": "200",
|
||||
"travel_acceleration": "7000",
|
||||
"travel_speed": "400",
|
||||
"compatible_printers": [
|
||||
"FLSun V400 0.4 nozzle"
|
||||
]
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Vzbot",
|
||||
"version": "01.00.00.00",
|
||||
"version": "01.06.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Vzbot configurations",
|
||||
"machine_model_list": [
|
||||
|
@ -6,7 +6,6 @@
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_process_Vzbot_common_0.5_nozzle",
|
||||
"layer_height": "0.24",
|
||||
"top_surface_line_width": "0.45",
|
||||
"bottom_shell_layers": "3",
|
||||
"top_shell_layers": "4"
|
||||
}
|
||||
|
@ -6,7 +6,6 @@
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_process_Vzbot_common_0.6_nozzle",
|
||||
"layer_height": "0.24",
|
||||
"top_surface_line_width": "0.45",
|
||||
"bottom_shell_layers": "3",
|
||||
"top_shell_layers": "4"
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_process_Vzbot_common",
|
||||
"layer_height": "0.28",
|
||||
"top_surface_line_width": "0.45",
|
||||
"top_surface_line_width": "0.52",
|
||||
"bottom_shell_layers": "3",
|
||||
"top_shell_layers": "4"
|
||||
}
|
||||
|
@ -6,7 +6,6 @@
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_process_Vzbot_common",
|
||||
"layer_height": "0.28",
|
||||
"top_surface_line_width": "0.45",
|
||||
"bottom_shell_layers": "3",
|
||||
"top_shell_layers": "4"
|
||||
}
|
||||
|
@ -85,7 +85,7 @@
|
||||
"tree_support_wall_count": "0",
|
||||
"detect_thin_wall": "0",
|
||||
"top_surface_pattern": "monotonic",
|
||||
"top_surface_line_width": "0.55",
|
||||
"top_surface_line_width": "0.52",
|
||||
"top_shell_layers": "3",
|
||||
"top_shell_thickness": "0.8",
|
||||
"initial_layer_speed": "120",
|
||||
|
@ -61,7 +61,7 @@
|
||||
"support_threshold_angle": "40",
|
||||
"support_object_xy_distance": "0.5",
|
||||
"detect_thin_wall": "0",
|
||||
"top_surface_line_width": "0.55",
|
||||
"top_surface_line_width": "0.52",
|
||||
"top_surface_speed": "30",
|
||||
"travel_speed": "400",
|
||||
"enable_prime_tower": "0",
|
||||
|
@ -2812,15 +2812,12 @@ GCode::LayerResult GCode::process_layer(
|
||||
|
||||
//BBS
|
||||
if (first_layer) {
|
||||
//BBS: set first layer global acceleration
|
||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||
double acceleration = m_config.initial_layer_acceleration.value;
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5));
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5));
|
||||
}
|
||||
|
||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||
double jerk = m_config.initial_layer_jerk.value;
|
||||
gcode += m_writer.set_jerk_xy(jerk);
|
||||
gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value);
|
||||
}
|
||||
|
||||
}
|
||||
@ -2841,16 +2838,14 @@ GCode::LayerResult GCode::process_layer(
|
||||
gcode += this->unretract();
|
||||
}
|
||||
}
|
||||
//BBS: reset acceleration at sencond layer
|
||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||
double acceleration = m_config.default_acceleration.value;
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5));
|
||||
}
|
||||
// BBS: reset acceleration at sencond layer
|
||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||
}
|
||||
|
||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||
double jerk = m_config.default_jerk.value;
|
||||
gcode += m_writer.set_jerk_xy(jerk);
|
||||
}
|
||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||
}
|
||||
|
||||
// Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent
|
||||
// nozzle_temperature_initial_layer vs. temperature settings.
|
||||
@ -3605,7 +3600,8 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string
|
||||
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
||||
if (!this->on_first_layer()) {
|
||||
// reset acceleration
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||
if (m_config.default_acceleration.value > 0)
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||
if(m_config.default_jerk.value > 0)
|
||||
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||
}
|
||||
@ -3636,7 +3632,8 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou
|
||||
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
||||
if (!this->on_first_layer()){
|
||||
// reset acceleration
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||
if (m_config.default_acceleration.value > 0)
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||
if(m_config.default_jerk.value > 0)
|
||||
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||
|
||||
@ -4205,28 +4202,19 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string
|
||||
|
||||
// SoftFever
|
||||
if (this->on_first_layer()) {
|
||||
if (m_config.default_acceleration.value > 0) {
|
||||
auto accel = (unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5);
|
||||
if (accel > 0)
|
||||
gcode += m_writer.set_acceleration(accel);
|
||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5));
|
||||
}
|
||||
if (m_config.default_jerk.value > 0) {
|
||||
auto jerk = m_config.initial_layer_jerk.value;
|
||||
if (jerk > 0)
|
||||
gcode += m_writer.set_jerk_xy(jerk);
|
||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||
gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_config.default_jerk.value > 0)
|
||||
{
|
||||
auto jerk = m_config.travel_jerk.value;
|
||||
auto accel = (unsigned int)floor(m_config.travel_acceleration.value + 0.5);
|
||||
if(jerk > 0)
|
||||
gcode += m_writer.set_jerk_xy(jerk);
|
||||
|
||||
if(accel > 0)
|
||||
gcode += m_writer.set_acceleration(accel);
|
||||
} else {
|
||||
if (m_config.default_acceleration.value > 0 && m_config.travel_acceleration.value > 0) {
|
||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.travel_acceleration.value + 0.5));
|
||||
}
|
||||
|
||||
if (m_config.default_jerk.value > 0 && m_config.travel_jerk.value > 0) {
|
||||
gcode += m_writer.set_jerk_xy(m_config.travel_jerk.value);
|
||||
}
|
||||
}
|
||||
// if a retraction would be needed, try to use reduce_crossing_wall to plan a
|
||||
|
@ -9,16 +9,30 @@ namespace Slic3r {
|
||||
|
||||
calib_pressure_advance::calib_pressure_advance(GCode* gcodegen) :mp_gcodegen(gcodegen), m_length_short(20.0), m_length_long(40.0), m_space_y(3.5), m_line_width(0.6), m_draw_numbers(true) {}
|
||||
|
||||
std::string calib_pressure_advance::generate_test(double start_pa/*= 0*/, double step_pa /*= 0.002*/, int count/*= 10*/) {
|
||||
auto bed_sizes = mp_gcodegen->config().printable_area.values;
|
||||
auto w = bed_sizes[2].x() - bed_sizes[0].x();
|
||||
auto h = bed_sizes[2].y() - bed_sizes[0].y();
|
||||
count = std::min(count, int((h - 10) / m_space_y));
|
||||
std::string calib_pressure_advance::generate_test(double start_pa /*= 0*/, double step_pa /*= 0.002*/,
|
||||
int count /*= 10*/) {
|
||||
BoundingBoxf bed_ext = get_extents(mp_gcodegen->config().printable_area.values);
|
||||
bool is_delta = false;
|
||||
if (mp_gcodegen->config().printable_area.values.size() > 4) {
|
||||
is_delta = true;
|
||||
bed_ext.scale(1.0f / 1.41421f);
|
||||
}
|
||||
|
||||
auto startx = (w - 100) / 2;
|
||||
auto starty = (h - count * m_space_y) / 2;
|
||||
m_length_long = 40 + std::min(w - 120.0, 30.0);
|
||||
return print_pa_lines(startx, starty, start_pa, step_pa, count);
|
||||
auto bed_sizes = mp_gcodegen->config().printable_area.values;
|
||||
const auto &w = bed_ext.size().x();
|
||||
const auto &h = bed_ext.size().y();
|
||||
count = std::min(count, int((h - 10) / m_space_y));
|
||||
|
||||
m_length_long = 40 + std::min(w - 120.0, 0.0);
|
||||
|
||||
auto startx = (w - m_length_short * 2 - m_length_long - 20) / 2;
|
||||
auto starty = (h - count * m_space_y) / 2;
|
||||
if (is_delta) {
|
||||
startx = -startx;
|
||||
starty = -(count * m_space_y) / 2;
|
||||
}
|
||||
|
||||
return print_pa_lines(startx, starty, start_pa, step_pa, count);
|
||||
}
|
||||
|
||||
std::string calib_pressure_advance::move_to(Vec2d pt) {
|
||||
@ -45,7 +59,7 @@ namespace Slic3r {
|
||||
double y_pos = start_y;
|
||||
|
||||
// prime line
|
||||
auto prime_x = std::max(start_x - 5, 0.5);
|
||||
auto prime_x = start_x - 2;
|
||||
gcode << move_to(Vec2d(prime_x, y_pos + (num - 4) * m_space_y));
|
||||
gcode << writer.set_speed(slow);
|
||||
gcode << writer.extrude_to_xy(Vec2d(prime_x, y_pos + 3 * m_space_y), e_calib * m_space_y * num * 1.1);
|
||||
|
@ -42,6 +42,7 @@ using boost::optional;
|
||||
namespace fs = boost::filesystem;
|
||||
|
||||
static const float GROUND_Z = -0.03f;
|
||||
static const float GROUND_Z_GRIDLINE = -0.26f;
|
||||
static const float GRABBER_X_FACTOR = 0.20f;
|
||||
static const float GRABBER_Y_FACTOR = 0.03f;
|
||||
static const float GRABBER_Z_VALUE = 0.5f;
|
||||
@ -376,10 +377,10 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox
|
||||
Lines contour_lines = to_lines(poly);
|
||||
std::copy(contour_lines.begin(), contour_lines.end(), std::back_inserter(gridlines));
|
||||
|
||||
if (!m_gridlines.set_from_lines(gridlines, GROUND_Z))
|
||||
if (!m_gridlines.set_from_lines(gridlines, GROUND_Z_GRIDLINE))
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to create bed grid lines\n";
|
||||
|
||||
if (!m_gridlines_bolder.set_from_lines(gridlines_bolder, GROUND_Z))
|
||||
if (!m_gridlines_bolder.set_from_lines(gridlines_bolder, GROUND_Z_GRIDLINE))
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to create bed grid lines\n";
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user