mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-07-30 14:12:02 +08:00
Added test case to cover https://github.com/slic3r/Slic3r/issues/4497
This commit is contained in:
parent
adc126067d
commit
d514d7adb6
@ -213,6 +213,7 @@ set(SLIC3R_TEST_SOURCES
|
||||
${TESTDIR}/libslic3r/test_skirt_brim.cpp
|
||||
${TESTDIR}/libslic3r/test_test_data.cpp
|
||||
${TESTDIR}/libslic3r/test_geometry.cpp
|
||||
${TESTDIR}/libslic3r/test_gcodewriter.cpp
|
||||
)
|
||||
|
||||
add_executable(slic3r slic3r.cpp)
|
||||
|
38
src/test/inputs/test_gcodewriter/config_lift_unlift.ini
Normal file
38
src/test/inputs/test_gcodewriter/config_lift_unlift.ini
Normal file
@ -0,0 +1,38 @@
|
||||
# generated by Slic3r 1.3.1-dev on 2018-07-27 01:40:55
|
||||
before_layer_gcode =
|
||||
between_objects_gcode =
|
||||
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
|
||||
end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n
|
||||
extrusion_axis = E
|
||||
extrusion_multiplier = 1
|
||||
filament_cost = 0
|
||||
filament_density = 0
|
||||
filament_diameter = 3
|
||||
filament_max_volumetric_speed = 0
|
||||
filament_notes = ""
|
||||
gcode_comments = 0
|
||||
gcode_flavor = reprap
|
||||
label_printed_objects = 0
|
||||
layer_gcode =
|
||||
max_print_speed = 80
|
||||
max_volumetric_speed = 0
|
||||
notes =
|
||||
pressure_advance = 0
|
||||
printer_notes =
|
||||
retract_length = 2
|
||||
retract_length_toolchange = 10
|
||||
retract_lift = 1.5
|
||||
retract_lift_above = 0
|
||||
retract_lift_below = 0
|
||||
retract_restart_extra = 0
|
||||
retract_restart_extra_toolchange = 0
|
||||
retract_speed = 40
|
||||
start_filament_gcode = "; Filament gcode\n"
|
||||
start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n
|
||||
toolchange_gcode =
|
||||
travel_speed = 130
|
||||
use_firmware_retraction = 0
|
||||
use_relative_e_distances = 0
|
||||
use_set_and_wait_bed = 0
|
||||
use_set_and_wait_extruder = 0
|
||||
use_volumetric_e = 0
|
37
src/test/libslic3r/test_gcodewriter.cpp
Normal file
37
src/test/libslic3r/test_gcodewriter.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
#include <catch.hpp>
|
||||
#include <memory>
|
||||
|
||||
#include "GCodeWriter.hpp"
|
||||
#include "test_options.hpp"
|
||||
|
||||
using namespace Slic3r;
|
||||
using namespace std::literals::string_literals;
|
||||
|
||||
SCENARIO("lift() is not ignored after unlift() at large values of Z", "[!mayfail]") {
|
||||
GIVEN("A config from a file and a single extruder.")
|
||||
auto writer {std::make_unique(GCodeWriter())}; // ensure cleanup later
|
||||
auto& config {writer->config};
|
||||
config.set_defaults();
|
||||
config.load(std::string(testfile_dir) + "test_gcodewriter/config_lift_unlift.ini"s);
|
||||
|
||||
std::vector<unsigned int> extruder_ids {0};
|
||||
writer->set_extruders(extruder_ids);
|
||||
writer->set_extruder(0);
|
||||
|
||||
double trouble_Z = 9007199254740992;
|
||||
WHEN("Z is set to 9007199254740992") {
|
||||
writer->travel_to_z(trouble_Z);
|
||||
AND_WHEN("GcodeWriter::Lift() is called") {
|
||||
REQUIRE(writer->lift().size() > 0);
|
||||
AND_WHEN("Z is moved post-lift to the same delta as the config Z lift") {
|
||||
writer->travel_to_z(trouble_z + config.retract_lift);
|
||||
AND_WHEN("GCodeWriter::Lift() is called after GCodeWriter::Unlift()") {
|
||||
REQUIRE(writer->unlift().size() > 0);
|
||||
THEN("GCodeWriter::Lift() emits gcode.") {
|
||||
REQUIRE(writer->lift().size() > 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user