mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-16 21:42:43 +00:00
The shared estimate reserved every tower with one volume-per-purge rule and the stability floor. Both planners do more: WipeTower (Type1) wipes each filament's own prime volume in whole lines, one block per adhesiveness category sized by its worst layer, rams the leaving filament at every nozzle change, and squares a rib tower from the planned depth; WipeTower2 (Type2) spaces its lines by wipe_tower_extra_spacing, not the Type1-only infill gap, and its extra flow cancels out of the depth. Both extend the ribs rather than the body below the stability minimum, size every layer including a thinner first one, and lay the brim in whole loops, WipeTower reporting half a spacing of line width on top. All of that now lives in estimate_wipe_tower_footprint, fed the planner (resolve_wipe_tower_type mirrors Print::wipe_tower_type and the CLI's Bambu Lab detection) and the filament ids rather than a count. Print passes its own tool set; the PartPlate adapter derives the plate's ids from the passed config and treats an explicit count as a floor, so the CLI's count-only callers size per filament too. The placement clamp also reserves a Type2 cone's base bulge, which the body box does not cover. The planner-mirroring helpers sit beside the planners in WipeTower and WipeTower2 so the two stay in sync; the libslic3r cases pin them to footprints measured from generated G-code.
63 lines
1.8 KiB
CMake
63 lines
1.8 KiB
CMake
get_filename_component(_TEST_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
|
|
|
|
add_executable(${_TEST_NAME}_tests
|
|
${_TEST_NAME}_tests.cpp
|
|
test_3mf.cpp
|
|
test_aabbindirect.cpp
|
|
test_appconfig.cpp
|
|
test_arachne_walls.cpp
|
|
test_arrange.cpp
|
|
test_bambu_networking.cpp
|
|
test_buildvolume.cpp
|
|
test_calib.cpp
|
|
test_clipper_offset.cpp
|
|
test_clipper_utils.cpp
|
|
test_config.cpp
|
|
test_config_variant_expansion.cpp
|
|
test_toolordering_nozzle_group.cpp
|
|
test_preset_bundle_loading.cpp
|
|
test_preset_setting_id.cpp
|
|
test_preset_diff.cpp
|
|
test_vendor_cache.cpp
|
|
test_elephant_foot_compensation.cpp
|
|
test_fill_corner_smoothing.cpp
|
|
test_filament_mixer.cpp
|
|
test_fill_plane_path.cpp
|
|
test_geometry.cpp
|
|
test_multimaterial_segmentation.cpp
|
|
test_placeholder_parser.cpp
|
|
test_polygon.cpp
|
|
test_mutable_polygon.cpp
|
|
test_mutable_priority_queue.cpp
|
|
test_minimum_spanning_tree.cpp
|
|
test_nozzle_volume_type.cpp
|
|
test_step.cpp
|
|
test_stl.cpp
|
|
test_triangle_selector.cpp
|
|
test_meshboolean.cpp
|
|
test_marchingsquares.cpp
|
|
test_model.cpp
|
|
test_utils.cpp
|
|
test_timeutils.cpp
|
|
test_voronoi.cpp
|
|
test_wipe_tower_estimate.cpp
|
|
test_wipe_tower.cpp
|
|
test_optimizers.cpp
|
|
test_ordering_strategies.cpp
|
|
# test_png_io.cpp
|
|
test_indexed_triangle_set.cpp
|
|
../libnest2d/printer_parts.cpp
|
|
)
|
|
|
|
if (TARGET OpenVDB::openvdb)
|
|
target_sources(${_TEST_NAME}_tests PRIVATE test_hollowing.cpp)
|
|
endif()
|
|
|
|
target_link_libraries(${_TEST_NAME}_tests test_common libslic3r Catch2::Catch2WithMain)
|
|
target_include_directories(${_TEST_NAME}_tests PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|
set_property(TARGET ${_TEST_NAME}_tests PROPERTY FOLDER "tests")
|
|
|
|
orcaslicer_copy_test_dlls()
|
|
|
|
orcaslicer_discover_tests(${_TEST_NAME}_tests)
|