mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 22:31:02 +00:00
Belt: do not refuse a brim because the prime tower setting is on
enable_prime_tower stays on for any multi-filament project, but a belt printer never prints the classic tower and the belt purge prism is an ordinary object that never takes a brim, so every brim on a multi-filament belt print was refused for nothing. Raised in Hanif Koh's review of #14394.
This commit is contained in:
@@ -1420,11 +1420,10 @@ StringObjectException Print::validate(std::vector<StringObjectException> *warnin
|
||||
return { L("Draft shield is not compatible with belt printer mode.") };
|
||||
|
||||
// Belt brim spans many layers and owns the layers below the object, which
|
||||
// neither the prime tower nor spiral vase can share.
|
||||
// spiral vase cannot share. The prime tower setting is no obstacle: belt
|
||||
// printers never print the classic tower, and the belt purge prism is an
|
||||
// ordinary object that never takes a brim.
|
||||
if (this->has_belt_brim()) {
|
||||
if (m_config.enable_prime_tower.value)
|
||||
return { L("Brim is not compatible with the prime tower on a belt printer. "
|
||||
"Disable one of them.") };
|
||||
if (m_config.spiral_mode.value)
|
||||
return { L("Brim is not compatible with spiral vase mode on a belt printer. "
|
||||
"Disable one of them.") };
|
||||
|
||||
@@ -919,12 +919,15 @@ TEST_CASE("Belt inner-only leading brim does not reject the prime tower or spira
|
||||
CHECK_FALSE(print.objects().front()->has_belt_brim());
|
||||
CHECK(print.validate().string.empty());
|
||||
}
|
||||
SECTION("a real inner brim still rejects the prime tower") {
|
||||
// enable_prime_tower stays on for any multi-filament project, but a belt printer never
|
||||
// prints the classic tower, so the setting alone must not cost the print its brim.
|
||||
SECTION("a real inner brim is accepted with the prime tower setting on") {
|
||||
Print print;
|
||||
Model model;
|
||||
init_inner_leading_with_prime_tower(print, model, 4);
|
||||
CHECK(print.objects().front()->has_belt_brim());
|
||||
CHECK_FALSE(print.validate().string.empty());
|
||||
CHECK(print.validate().string.empty());
|
||||
CHECK_FALSE(gcode(print).empty());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user