-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Bug fix: avoid crossing perimeters #10185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This, this is one i have to test, annoying issues with crossing walls and ABS on RC model airplane wheel mounts |
This is really nice! Does it also avoid crossing support perimeters? Currently enabling z-hop is the only way to avoid hitting supports during travel in certain situations (e.g. #2976) |
I don't think so, i do not modify the logic, just avoid perimeters of the part. |
It would be a good idea to reduce the travel speed to a minimum if this crossing happened. This is also true for moving over the infill. I noticed that high speed can knock the model off the bed with a large kinetic impact on the curved-up edge, if there is one. At low speed, the hotend will simply melt its path through. |
17cc8af
to
050bcef
Compare
Could you provide some test projects? Thanks |
I'm at the office right now and don't have access to my PC, but you can download the example from (bambulab/BambuStudio#6597). @ianalexis can you upload an example project? |
avoid crossing test.zip |
I think the place that caused this issue is this line: OrcaSlicer/src/libslic3r/GCode.cpp Line 6081 in 7f27c9b
BBS has this removed in bambulab/BambuStudio@e9b7006 Update: seems this alone doesn't solve the issue. |
The problem occurs right after retraction, when it performs the travel move. Should we try with retraction disabled? |
with 2 perimeters works almost perfect |
So there are actually 2 problems that led to this issue:
I even reproduced the issue on latest beta BBS (2.2.0.60 when writing this) with their multiple attempts to try to solve this issue:
|
You're right, this option doesn't matter. |
Just to clearify, my post above is not the whole picture. There might still be other cases that could cause the path planner to stop working unexpectedly. |
The problem with the i3 geometry is key. |
Yeah because |
One (partial) solution is to skip this block when OrcaSlicer/src/libslic3r/GCode.cpp Lines 4382 to 4390 in c8a2771
and combined with the removal of this line OrcaSlicer/src/libslic3r/GCode.cpp Line 6081 in 7f27c9b
Though for caese that have non-empty timelapse gcode (even just comments) will still trigger this bug. |
Yeah I think that might be a different problem. I'll take a look soon. |
I believe this issue is actually caused by #2659 The reason being, in that PR, in order to avoid leaving scars on the outer perimeter when travalling along it, the new code will shrink the obj contour for some amount, so the path will be planned more inside the object. However since we do that, when the wall is thiner than the shrink offset, our travel will be detected as outside of the object, and do not need to avoid the perimeter: Here is the original perimeter (green) and the travel path (blue): Here is the perimeter after the shrink and the travel path: As you could see, now the travel path is completely outside the object, hens no need to detour. And since this change was cherrypicked from PrusaSlicer, the same issue occurs in PS as well. |
I can't compile right now, but I'll run tests when the binaries are available. |
66537b3
to
39f97b1
Compare
4fb37b8
to
11b43a7
Compare
avoid crossing perimeters Timelapse issue Update GCode.cpp Update GCode.cpp Update GCode.cpp Update GCode.cpp
11b43a7
to
661114e
Compare
This is a compromise within avoid crossing walls not perfect, but it allows wall avoidance as long as no time-lapse G-code is inserted. |
Update GCode.cpp
d7dfb64
to
3ee7146
Compare
Update GCode.cpp
4893daa
to
2b75371
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks
* Add new machines * profils fixes * Update VS30ULTRA (0.4 nozzle).json * accelerations removing * Fixes * Acceleration fixes * Update .gitignore * EXO/SH profils updates * Update .gitignore * Updates VOLUMIC profils * VOLUMIC profils updates * VOLUMIC profils update (v0.36) * Delete Desactive.json * Create desactive.json * Add ironing fan speed control (SoftFever#9944) * Internal bridge fan speed should be applied only if overhang bridge fan control is enabled * Reduce duplicate code * Add ironing fan speed control * Add fuzzy skin painting (SoftFever#9979) * SPE-2486: Refactor function apply_mm_segmentation() to prepare support for fuzzy skin painting. (cherry picked from commit 2c06c81) * SPE-2585: Fix empty layers when multi-material painting and modifiers are used. (cherry picked from commit 4b3da02ec26d43bfad91897cb34779fb21419e3e) * Update project structure to match Prusa * SPE-2486: Add a new gizmo for fuzzy skin painting. (cherry picked from commit 886faac) * Fix render * Remove duplicated painting gizmo `render_triangles` code * SPE-2486: Extend multi-material segmentation to allow segmentation of any painted faces. (cherry picked from commit 519f5ee) --------- Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com> * SPE-2486: Implement segmentation of layers based on fuzzy skin painting. (cherry picked from commit 800b742) * SPE-2486: Separate fuzzy skin implementation into the separate file. (cherry picked from commit efd95c1) * Move more fuzzy code to separate file * Don't hide fuzzy skin option, so it can be applied to paint on fuzzy * Fix build * Add option group for fuzzy skin * Update icon color * Fix reset painting * Update UI style * Store fuzzy painting in bbs_3mf * Add missing fuzzy paint code * SPE-2486: Limit the depth of the painted fuzzy skin regions to make regions cover just external perimeters. This reduces the possibility of artifacts that could happen during regions merging. (cherry picked from commit fa2663f) * Update icons --------- Co-authored-by: yw4z <ywsyildiz@gmail.com> * Make the region compatible check a separate function * Only warn about multi-material if it's truly multi-perimeters * Improve gizmo UI & tooltips --------- Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com> Co-authored-by: yw4z <ywsyildiz@gmail.com> * Update 3mf key for fuzzy skin painting to match BBS (SoftFever#10169) * Update OrcaSlicer_pl.po (SoftFever#10186) * New Fill & Patterns Order (SoftFever#10055) * New Fill Order Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com> * Reorder Wiki * Support infills grouped * Update old rectilinear profiles into new ZigZag algorithm. Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com> * Renaming compatibility fix + Rename Wiki Co-Authored-By: SoftFever <softfeverever@gmail.com> --------- Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com> Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com> * Fix ubuntu build - Continous appimagetool (SoftFever#10190) Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com> * Fix build issue caused by renamed fill pattern (SoftFever#10197) Fix issue caused by renamed fill pattern * InnovatiQ Vendor Addition (SoftFever#10163) * Added InnovatiQ Vendor Files * Cover image corrected * Corrected Texture Image * Support Interface Pattern modified * Fix file name casing --------- Co-authored-by: MohanS <sibi.mohan@innovatiq.com> Co-authored-by: Noisyfox <timemanager.rick@gmail.com> * Replace DEPS_BITS with DEPS_ARCH (SoftFever#10183) * Replace DEPS_BITS with DEPS_ARCH * Restore missing DEP_MSVC_GEN * STREQUAL * STREQUAL * Other cmakelists * webview2 rename * Disable resonance avoidance in calibration routines + Calibration Reorder (SoftFever#10174) * Disable resonance avoidance in calibration routines * Reorder Calibrations * Moved Tolerance to Handy Models * Feature: Fuzzy Skin Extrusion Mode (SoftFever#9878) * Feature: Fuzzy Skin Extrusion Mode This extension allows you to add new features to the fuzzy skin generator. * Add auto switch to Arachne mode * Move dialog to `update_print_fff_config` and update how `is_msg_dlg_already_exist` is used --------- Co-authored-by: Noisyfox <timemanager.rick@gmail.com> * Add template metalanguage support for infill rotation template (SoftFever#9996) * Add some new non-overlapping functions for rotation surfaces/infills I can't post the entire package of changes yet, but this is just the beginning. These features do not affect the latest changes to the pattern rotation system. They are merely adding new functionality. * Added relative rotation of the infill according to the template. * Update PrintConfig.cpp * Update PrintConfig.cpp * Update PrintConfig.cpp * Add height limitation * Both sparse and solid. +one-time instructions * implementation v3 need for clean code in future * + Multiply Instructions * Add solid layers into sparse infill * Update Layer.hpp * Update PrintObject.cpp * Update Tab.cpp * Remove some bugs and increase quality * rename apply_model_direction to align_infill_direction_to_model * Change the data type of top_surface_direction and bottom_surface_direction to float so that they are consistent with other infill direction parameters. * remove top_surface_direction and bottom surface_direction options * clean code --------- Co-authored-by: SoftFever <softfeverever@gmail.com> * Feature/add_snapmaker_u1_profiles (SoftFever#10225) * add snapmaker u1 profiles * tweak some parameters for U1 * Do not connect to default BBL device during app startup (SoftFever#10214) * Do not connect to default device during app startup * Connect to last selected machine automatically even if it's lan machine Simplify default machine connection logic * Select last machine automatically when available * Check for LAN connection state after updating combobox selection. This matches the logic of `SendPrint.cpp`. * Avoid showing same error message multiple times until next connection attempt. --------- Co-authored-by: SoftFever <softfeverever@gmail.com> * update readme * Adjust the CAUTION format to make it more visible, as there are more fake websites claim to be official (SoftFever#10230) Update README.md * add CLAUDE.md * udpate locale * include OrcaSlicer_profile_validator in nightly build (SoftFever#10233) * include OrcaSlicer_profile_validator in nightly build * build OrcaSlicer_profile_validator on Win * create dmg * fix / add de locale (SoftFever#10236) * fix many stings * fix * correct winget command --e (SoftFever#10198) winget seems to accept -e or --exact. Modified README.md to use --exact. * Bug fix: avoid crossing perimeters (SoftFever#10185) * avoid crossing perimeters avoid crossing perimeters Timelapse issue Update GCode.cpp Update GCode.cpp Update GCode.cpp Update GCode.cpp * Update GCode.cpp * Update GCode.cpp Update GCode.cpp * Update GCode.cpp Update GCode.cpp * Replace tab with space --------- Co-authored-by: Noisyfox <timemanager.rick@gmail.com> * Prevent collision: end load line at X(old+5) to avoid nozzle scratching (SoftFever#10193) End load line at X(old+5) top prevent drip collision * fix an issue that OrcaSlicer_profile_validator for Mac was not published to nightly build * Introduce a new seam alignment option: Aligned back (SoftFever#10255) * Introduce a new seam alignment option: spAlignedBack. * feat: add ABS, PLA, PETg filaments by NIT (SoftFever#10205) * feat: add ABS, PLA, PETg filaments by NIT * feat: Set value of default_filament_colour to empty string * Wiki Update 8 - Lorita (SoftFever#10094) * Wiki Home Fix process-others VFA test * Add wall GIFs and update documentation * Quality Overhangs Wiki Basic Update README.md Update Home.md * Better only one wall * Add infill ghosting image and update wall order * Updates process options * Fix calibration step numbering in documentation Corrected the step numbers in the calibration order list to maintain sequential order. * Update Calibration.md * Update wall and surface quality docs with images and details * Revise Linux build instructions and restructure sections Co-Authored-By: cefiar <cefiar@gmail.com> * APA Clarify compatibility notes Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com> * Removed Tolerance test from calibration guide. Keeped as note Co-Authored-By: Noisyfox <timemanager.rick@gmail.com> * Copilot Review --------- Co-authored-by: cefiar <cefiar@gmail.com> Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com> Co-authored-by: Noisyfox <timemanager.rick@gmail.com> * Fix a bug where the maximum line width limit is inconsistent across different checks. Fixes SoftFever#10188 * Avoid cross perimeter improvements ported from BBS (SoftFever#10220) * FIX: fix avoid crossing perimeters not work[github issue SoftFever#6597] jira: STUDIO-11682 github: SoftFever#6597 Change-Id: Ib86fac93280504e0040f1cce44dad4d02f709c01 (cherry picked from commit 35afceb9a7f4e5a3baba97f054d0e6768e4f59cf) * FIX: optimize avoid crossing wall jira: STUDIO-11682 Change-Id: I49b6756a5d3aeb482c019813074d8f6f9cc3c6ef (cherry picked from commit e9b7006db994d78b9153dedfd0f89447c941cb76) * Sync with latest BBS code --------- Co-authored-by: huicong.li <huicong.li@bambulab.com> * Revert "Refactor stagger concentric seams (SoftFever#6432)" This reverts commit bd8c2ff. * Revert "Stagger concentric infill seams. (SoftFever#6184)" This reverts commit 0286c36. * Add 0.6/0.8 nozzle for tiertime printer. (SoftFever#10264) * Fix Ironing/Support patterns (SoftFever#10278) NoisyGoat Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com> Co-authored-by: Noisyfox <timemanager.rick@gmail.com> * Fix broken freetype-2.12.1.tar.gz link * Remap filament for pre-colored models (SoftFever#10303) * Add a new feature to allow users to remap filament for a pre-painted model. * Fix the color issues to support the theme * clean up code * Fix broken freetype-2.12.1.tar.gz link * feat: support for multi heating zones * feat: Remove softfever reference from pipeline * feat: support for multi heating zones * feat: update repository references from SoftFever to gingeradditive in workflows and source files * Update translation catalog * fix: restore pot file --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: migrate to GingerSlicer feat: Rename project to OrcaSlicer4pellet and update related configurations feat: Update SVG files to reflect Inkscape version 1.4 and enhance graphical elements feat: Comment out app signing and notary steps in macOS build workflow; update artifact names to reflect project rename feat: Update splash logo SVG and replace logo images fix: Correct app copy path in build_slicer function to match new project structure feat: Update project references to OrcaSlicer4pellet, including bundle identifier, executable names, and documentation links chore: Update various project files for consistency and maintainability feat: change color to #d72828 feat: change "Orca Slicer" to "Ginger Slicer" feat: change logo feat: change logo fix: update artifact paths to use GingerSlicer instead of OrcaSlicer fix: update build script to copy GingerSlicer.app instead of OrcaSlicer.app feat: Update SVG files for OrcaSlicer feat: add desktop entry for GingerSlicer wip: change brand colors wip: change brand colors feat: remove other profiles fix: update profile validator command in build workflow feat: update deployment configuration to use repository and tag for nightly builds feat: add GingerSlicer Flatpak manifest and metadata fix: update macOS bundle name from OrcaSlicer to GingerSlicer wip: change brand colors wip: delete wiki wip: change reference to GingerSlicer wip: change reference to GingerSlicer fix: pipeline release id wip: remove custom profile wip: remove BBL setup page feat: remove calibration and project tab feat: change preset for camera and gcode window fix: minor fix feat: update readme wip: change cmake project name fix: name into macosxbundleinfo fix: mac pipeline wip: fix missing cache reference feat: disable flatpack fix: dep with deps fix: try fix pipeline fix orcaslicer.rc fix: windows pipeline fix: mac pipeline fix: condition of Create DMG without notary pipeline try: fix orcaslicer Run fix: OrcaSlicer_dep fix: OrcaSlicer_deps feat: implement Orca Profile Validator with custom preset generation fix: typo Gingerslicer to GingerSlicer fix: Create DMG without notary mac * fix: image color * add script for conveting color * feat: update SoftFever version to 2.3.1.1 * Gingerslicer dev/change slicer field visibility * feat: change visibility of the fields * fix: some tab still visible witout parameter in * fix: minor image color fix * fix: change override visibility * Gingerslicer dev/update profiles 19 07 25 * feat: update profiles for Ginger Additive * feat: merge previous update * fix: errors using achab * fix: remove unused file and folder * fix: errors in profile * fix: comment out custom presets validation step * feat: add workflow to promote nightly builds to release * fix: update nightly artifacts download command in workflow * fix: correct JSON formatting in fdm_machine_common.json * fix: notification color * fix: thumbnail and metadata * fix: update version to 1.9.1.1 in fdm_machine_common.json * fix: update version to 2.3.1.1 * fix: temperature in the GcodePreview by parsing the PRINT_START values * fix: remove unused profiles * fix: remove unused doc * fix: SVG colors and merge errors * fix: CreatePresetsDialog.cpp --------- Co-authored-by: VOLUMIC <31067164+VOLUMIC@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com> Co-authored-by: Noisyfox <timemanager.rick@gmail.com> Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com> Co-authored-by: yw4z <ywsyildiz@gmail.com> Co-authored-by: KrisMorr <154343071+KrisMorr@users.noreply.github.com> Co-authored-by: Ian Bassi <ian.bassi@outlook.com> Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com> Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com> Co-authored-by: InnovatiQ <info@innovatiq.com> Co-authored-by: MohanS <sibi.mohan@innovatiq.com> Co-authored-by: Jack Boswell <boswelja@outlook.com> Co-authored-by: π² <pi.squared.studio@gmail.com> Co-authored-by: Heiko Liebscher <hliebscher@idn.de> Co-authored-by: Robert M Lugg <robert.lugg@gmail.com> Co-authored-by: Simon <ziehmon@smtpd.de> Co-authored-by: Kirill Ziuzin <kirill.zak@gmail.com> Co-authored-by: cefiar <cefiar@gmail.com> Co-authored-by: huicong.li <huicong.li@bambulab.com> Co-authored-by: GuoGeTiertime <97820723+GuoGeTiertime@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This pull request partially addresses the issue described in #5217.
Problem:
At the end of a perimeter, after retraction, the following travel move does not respect the restriction that prevents crossing other perimeters.
Notes:
Works best when using Arachne perimeter generator.
Spiral Z-hop should be avoided for better results.
Tests
this PR may close #5217
this PR may close #9770