Updating position to gcode writer in wipe tower
miss plate offset.
This is handling for github issue #2256
github: github issue #2256
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I915591ee919d10bb5bd2c2dcd5f1e98fd4b66503
* First working brim ear impl, ported from SuperSlicer
* Make brim ears configurable
* Generate ears only if ear size > 0
* Fix `Polygon::convex_points` as well as brim ear max angle
* Fix another error in `Polygon::convex_points` and `Polygon::concave_points`
* Apply brim ears to inner brims as well
* tweak hide and disable condition a bit
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
A new extrusion role - erInternalBridgeInfill is introduced.
SuperSlicer's implementation is referenced.
Signed-off-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Previously holes of enforcer_polygons was taken as contours,
which caused enforcers inside a hole were too large.
Jira: STUDIO-3877
Change-Id: If38c34e2469b822012a2ed0b082783563fe99228
Addind only the include dirs is wrong. The cmake boost_headeronly
library contains more settings.
Without adding the cmake boost_headeronly library, the compilation of
imgui is missing the defines for the boost library (f.e.
BOOST_LOG_DYN_LINK) and it will result in linker errors.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Updating the Russian translation
Updating the Russian translation and adding new lines
* Add files via upload
* Delete OrcaSlicer.mo
* Create RU
* Delete RU
* Updating the Russian translation
Updating the Russian translation
* Updating the Russian translation
Updating the Russian translation
* Updating the translation into Russian, with the support of @lizardjazz11
Updating the translation into Russian, with the support of @lizardjazz1
1. Changed printing speed for all PA tests, where the speed will be calculated by max(100, outer_wall_speed) with consideration of max_volumetric_speed.
2. PA tower now uses the classic wall generator.
#1616
* First working conical overhang impl
* Add settings for Make overhang printable
* Added an Advanced setting to the Quality menu for Make overhang printable
* Allow toggling the feature and adjusting the angle threshold
* Retain recesses in the bottom of the model when "Make Overhangs Printable" is turned on
* Add settings for Make overhang printable hole size
* Allow disabling conical overhang per modifier
* Should check upper layer instead
* Skip unnecessary layers
* Apply conical overhang before any size compensation
which fixs the `lslices` not being updated issue and also the elephant foot compensation
* 1. Fix an issue that changing make_overhang_printable related parameters won't clear caches properly.
2. Tweak the logic of make_overhang_printable parameter so that it works for per region/object/print level. Remove make_overhang_printable_disable parameter.
* Change default make_overhang_printable_angle to 55
* One more missing commit
* 1. Skip checking default_region_config()->make_overhang_printable
2. Handle make_overhang_printable_angle and make_overhang_printable_hole_size value change
---------
Co-authored-by: David Bern <odie5533@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Port single wall on top surface from classic wall generator to Arachne
* Move the surface split code into a separate function to be shared between classic and Arachne. This also adds bridge detection to Arachne as well.
* Remove unwanted infills
* Fix insets calculating
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Calculate extrusion width %s as a function of nozzle width, not layer height
* handled more width conversions
* more missing percent handling
* even more missed percent handling
* even more more extrusion % handling
* some fixes
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
[BUGFIX] Fix Klipper SET_VELOCITY_LIMIT code
- Always write out SET_VELOCITY_LIMTIT ACCEL=<acceleration> independently of the accel_to_decel setting
- Append the ACCEL_TO_DECEL fragment if enabled in config
* Added config options for Enforce Lift Z (from SS, doesn't affect Gcode
yet)
* working, minus first layer override; also fixed m_last_extrusion_role not being set
* fixed logic to match SS
* minimize to just one config
* removed first layer override
* Cleaned up logic, working as intended
* added lift above z, lift below z; somehow broke filament overrides
* fixed overrides not working, but lift above/below and enforce don't override
* fixed filament overrides
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add pattern method to Pressure Advance dialog
* Convert calib_pressure_advance to more unique calib_pressure_advance_line
* Share move_to function with PA lines and patterns
* Add PA pattern to calib.hpp
* Implement move_to(Vec3d). Combine with Vec2d version
* Add call to PA pattern in GCode.cpp
* Add helper functions
* Add directionality to draw_digit
* Extract shared number drawing variables
* Extract convert_number_to_string function
* Use in-class initializers for pattern variables
* Add max_numbering_height function
* Add helper functions
* Extract shared delta helper functions
* Add pattern generate_test() and associated helpers
* Clarify use of math functions
* Remove unused move_to overload, accept move_to comments
* Add get_distance() and draw_line()
* Extract set_nozzle_diameter()
* Clean up and simplify
* Rearrange and clean up
* Start work on print_pa_pattern
* Complete basic draw_box function
* Add more helper functions
* Add struct for pattern config, more helpers
* Rearrange
* Add encroachment member variable
* Add structs to manage optional arguments
* Simplify optional arguments structs
* Update opt args usage. Finish draw_box function
* Complete print_pa_pattern function
* Reuse PA Line STL
* Fix forward declaration error
* Fix invalid comparison
* Fixing complier errors
* Make DrawDigitMode options more clear
* More compilation error fixes
* Yet more compile error fixes
* Fix incorrect default step value
* Handle top-level dialog changes, consolidate params definitions
* Add layer change G-code, set more print variables
* Simplify optArgs constructors
* Fix pattern drawing, minor misc. clean up
* Make draw_box() G-code comments more helpful
* Make more of draw_line() const
* Fix sequential number draw direction
* Extract shared e_per_mm function
* Fix misplaced decimal in PA Line
* Move short constructor into .hpp
* Fix inverted Y direction in pattern digit drawing
* Use placeholder STL to create needed layers
* Rearrange and clean up
* Proof of concept: Adding custom G-Code at layer
* Use new scaling method
* Reorganize Plater::calib_pa()
* Restructure calib
* New strategy for adding custom G-code
* Remove redundant invocation
* Use cube primitive as positioning handle
* Move logic to Plater
Modifications to model in GCode cancelled _do_export from within itself
* Consolidate m_starting_point and pattern_start functions
* Replace bed_center() with m_starting_point
* Fix and consolidate number tab creation
* Fix off by one layer bug
* Use correct bounding box
* Use Vec3d instead of Vec2d for m_starting_point and m_last_pos
* Add translate_starting_point function
* Vec3d fix
* Store CalibPressureAdvancePattern with model
* Formatting adjustments
* Move pattern when handle moves
* Improve const correctness
* Improve/fix pattern writer and config
* Fix speed setting bug
* Pass model into generate_gcodes to improve consistency
* Re-generate pattern on reslice
* Make pattern actually move with handle
* Fix overzealous m_last_pos initialization
* Use clearer function names
* Use correct model
* Remove unused member variable
* Don't hard-code print config settings
* Remove unused lines, formatting clean up
* Make sure set_key_value operates on existing keys
* Remove asserts which limited life of key/value set
* Update Calibration.md
* Update licensing info
* Actually use speed in draw_line
* Don't speed_adjust twice
* doc: Make width and speed settings used more clear
* Bugfix: Shouldn't need to move handle to see pattern
* Clean up
* Move mp_gcodegen into line method alone
* Fix wrong number thickness in PA Line
* Remove unnecessary middleman PatternSettings
* Give value of config to const m_initial_config, not ref
* Fix incorrect DrawBoxOptArg default
* Use line_width_anchor() for all of initial layer
* Use clearer function name
* Replace "anchor" with "first_layer" for better consistency
* Update Calibration.md
* Update Calibration.md
* Make number tab infill explanation more clear
* (Hopefully) fix missing origin
* Add GCodeProcessor tags
* Fully refresh config
* Don't store is_bbl_printer
* Move set_starting_point to private
* Don't constantly recreate GCodeWriter
* Use different step value for pattern test
* Remove redundant processor tags
* Label glyph G-code
* Fix comparison typo
* Set number print speed
* Fix mixed up draw_number parameter
* Don't use line_width_first_layer for pattern
* (Hopefully) fix temp tower generating PA pattern
* Start with pattern centered on plate
* Add gap between pattern and handle
* Fix overly persistent pattern
* Revert "(Hopefully) fix temp tower generating PA pattern"
This reverts commit 0aa1206886.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Added doc and photo for max volumetric flow
* Fixed comments on doc. Same old image
* Added photos and finished description
* Forgot to save
* Added other method back in
* Backport TBB fix to allow building on GCC13
* Fix OpenEXR build with GCC13
* Fix Clipper2 build with GCC13
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* feat(webview): enable context menu
This enables the ability (at least on MacOS) to reload the webview.
* fix(webview): add handler for webview error
Adding this un-covered the following error when trying to load a the printer page using http and hostname:
```
OnError: error loading page about:blank wxWEBVIEW_NAV_ERR_OTHER The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
```
* fix(macos): disable App Transport Security policy
Disables the [App Transport Security](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity) policy that blocks loading http urls (via hostname...ip addresses were fine because ip addresses can't have certs, so they would be excluded from the ATS restriction).
Resolves#791
* Add & revise FLSun Profile
FLSun Q5
FLSun QQ-S Pro
* Patch Artillery Sidewinder X2 profile
revision speed parameters
revision start & end code
* change Anycubic 4Max Pro image
* Adjustments to the profile of the Anycubic 4Max Pro
Preparation for adding more Anycubic printers
* add more Anycubic profiles
* Add support for BIQU Printers
Adds printers BIQU B1, BX, and Hurakan
* Requested changes made to profiles
---------
Co-authored-by: Musicdad12 <seanmccallister12@gmail.com>
* Adding more Elegoo printer profiles
Elegoo Neptune X
Elegoo Neptune 2
Elegoo Neptune 2S
Elegoo Neptune 2D
* add ultimaker 2 profile
* Error corrections in the G-code
Error Correction of the start codes, so that no error message appears any more.
* Change G-Code Parameter
* Revise and add new Creality profiles
* Correction of SecKit filaments
* Add Creality Ender-3 S1 Pro Profile & change snapmaker printer images
* Revision of the printer Creality & SecKit Printer ID
* Changed wxWidgets to use forked version with patch applied to 3.1.5, rather than patching at build. Updated boost to 1.78 for VS2022 support, and fixed boost compat issue.
* Boost update to 1.78 only for Windows, fixed wxWidgets re-patching issue for Windows, corrected wxWidgets webview nuget hash.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Added SK-Go3 profile and supporting resources.
* Moved .stl location
* wrong location removed.
* Changed filament settings as SK-Go3 was not set.
* Changed setting_id as requested.
In some X installations using the MIT shared memory
extension for rendering window elements, Bambu
Studio needs direct access to a UNIX socket
for fast rendering.
This fix passes `--ipc host` with docker run
to allow the container to just have direct access
to the host's IPC system.
The error message that this solves is:
```
(bambu-studio:1): Gdk-ERROR **: 00:02:37.498: The program 'bambu-studio' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
(Details: serial 316 error_code 10 request_code 130 (MIT-SHM) minor_code 1)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
```
Here are some extra links for more information:
https://github.com/osrf/docker_images/issues/21http://wiki.ros.org/docker/Tutorials/GUIhttps://en.wikipedia.org/wiki/MIT-SHM
1. Instead of smoothing top-down, now we smooth tree branches bottom-up, and do not stop at merged nodes.
2. Fix a bug where some nodes don't have child. This is critical for bottom-up smoothing.
Change-Id: Iac0fecd81dac541ca390bcf5cbdfe7fd66cfd3a2
(cherry picked from commit 536a8a4f0ef76fa0358f4b4b181c4c7e7fff8bc7)
We increase the smooth iterations from 1 to 50.
Change-Id: Iba883fd67d7a9a71c92b364dcc9b76e00fc45820
(cherry picked from commit 945fba20a5629148bfd8cee47f492d42c50f9824)
Tree Strong is too similar to Tree Slim and people don't like it.
Jira: STUDIO-2660
Github: #1579
Change-Id: I52d7e8e674f0fc332e4ab2813261ffbc4b4cfb7a
(cherry picked from commit 9eb209b4c1737d2f10b9b8bd78c9f876f3d32bce)
Previously we assume the NFP of exclude regions are rectangle, which was
not always right. Now we calculate the NFP and find a best new position
to shift.
Change-Id: I02c075603cf71dd3c9146d7ac7a6706c0f850669
(cherry picked from commit 713ebd666c90d5dcfaf89914c37d211e9a470e99)
tan(90\degrees) is too large and will make detect_overhangs very slow.
Jira: STUDIO-2620
Change-Id: I55901a6bc1b56216549f66e1a7e77c0da680997b
(cherry picked from commit e58cc8a4665808580e84107f54661447000d64f3)
1 limit the range of setting
2 avoid too dense points when fuzzy skin enabled
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I6691fd03d2aa960b055b68100dfb338b640cb4af
Use a more accurate way to estimate wipe tower:
1. read wipe configure from front-end (the positions may be different at
different plates).
2. when depth is unavailable, use all materials to estimate depth (the
estimated wipe tower may be larger than the actual generated one).
Change-Id: I42ffd03d9817b57f5023a6820cda0032509c6fe5
(cherry picked from commit 77ba9757023afb9160c996eeea6ead8a27b50ce4)
when the opengl context not ready
postpone the GLCanvas3D's init
Change-Id: I68b9d70f08e4ba0076a64aca59612a3f613070ff
(cherry picked from commit 446a384dcc74af8184ee0a1af6668626d13413e9)
no need to detect the project file
Change-Id: Ia84d94832d16c2a68ecc25ee457d79735873e82a
(cherry picked from commit 39e9f3de907f19d452abf831221656c9a8e1d0e0)
1. add specific shader for thumbnail
2. do not render the negative-z part
3. fix the sinking related issue under cli
Change-Id: Ia59083437544c1c0bd924c811274ccbb137e9eb7
grouping of volumes in the slicing process, which will be used by the brim generation processes,
is moved to an indivial function from the fixed_slicing_errors function.
Change-Id: I241081823a671829d8cc4e923da5f6f22776c410
(cherry picked from commit 18a7b541ee48f3c01319d5835c05610c3d8ca0ae)
time displayed in send_dialog should be consistent with time displayed
in preview legend.
Change-Id: I4aa3bd0e8e7a2688cb7b97ea39fd9c0e1a361f52
Change-Id: I3763f5232ab61a5609248f1f7d79373f4077fec7
Switch to ByObject or switch spiral vase mode, should clear all preview
tick because they are invalid and doesn't work.
Change-Id: If68e9ebe4e915286a34e2e1003b281d770f0864c
1. separate virtual tray and extrustion calibrations
2. only when confirming will the disabled materials be checked
3. uptimize ams style
Change-Id: Ie435555d0cad45fbc0cb1bf7e1706985ec1aaa78
Cantilever detection should be done layer by layer, instead of using
merged_poly of clusters.
Jira: STUDIO-2198
Change-Id: Ifea017fc4c13425a944ee80f7dedb603a8e14cc2
(cherry picked from commit 0803a439a458ffeb9c6d91e90344a5b78794a6bd)
If an object has only one empty layer, error will encount
during grouping volumes
studio-2602
Change-Id: I25871b8cc8e4772c347c615db346875a9658db71
(cherry picked from commit 78b7e7706f6c8e7e86f4bd2e8daab7036499ced2)
1. cache the first layer group cache data for brim
2. fix some crash under debug mode when app exits
Change-Id: I81d716564af414353e9dfeed42e5f4eef08b2d6f
(cherry picked from commit a6ecdaed6f63f1c5c41fd343f72165fe27fda9d3)
1. enlarge objects in thumbnail
2. restore the background color to the light color
Signed-off-by: yifan.wu <yifan.wu@bambulab.com>
Change-Id: I0829f93f619c48467c91d55267cdaf5bf43c5beb
1. Only draw infill in normal nodes of hybrid support.
Previously when hybrid support was selected, all nodes would have
infill including the circle nodes which don't need infill. Now we draw
infill only when there are normal nodes.
2. Move remove_bridge after small overhang removal because the trimmed
bridge may be detected as small overhangs.
3. Only split circle nodes in draw_circles to prevent floating circles.
4. Fix the issue where tree support infills may not be aligned,
which is caused by the changing spacing of filler.
5. Fix a bug where lightning infill in tree support may crash.
Note: it is still not prepared to set lightning infill as default,
as for some models the generation time of lightning infill is still
too long.
Change-Id: I556e5097041d09afae1e2957d4dc9914d4610149
(cherry picked from commit 4c0849a81b60cde0c3b8ca54f03f63ea7c62dcd9)
1. adjust the background color
2. add a bit more emission factor
3. adjust the thumbnail rendering size in preview
4. change the font to white of thumbnail preview
Change-Id: Ifbcac94383608054759a7a31ec357233c7fb57a9
(cherry picked from commit ac577934f11edd56069584d1450734df59e17989)
1. Fix sharp tail detection in normal support.
The not operator in front of overlaps was missing.
2. Fix bridge removal.
After adopting Prusa's smart bridge direction detection, the bridge
angle may be pi, so our previous method (comparing angle to 0 and pi/2)
was not right. Now we simply check if the bridge direction normal vector
is aligned to x-axis or y-axis.
Change-Id: I4e1fd937e432aca97cdd374ba66a0d869794126e
(cherry picked from commit c0d82003a5e4c44345219294072c54051fc5711a)
1. improve sharp detection for small regions.
When the region is around 1 extrsion width, previous method may miss some sharp tails.
Now we reduce the width threshold to 0.1*extrusion_width for sharp
tails.
When checking "nothing below", need to expand the poly a little. Example:
benchy.
2. improve is_support_necessary.
Only popup warning for sharp tail and large cantilever (longer than 6mm).
Jira: STUDIO-2567
Change-Id: I5e977e7766b35409891d1b41e36278e3f07fa372
(cherry picked from commit c9d8a7c1c3bbd4367c7fc44408c67e5c534167f4)
Also fix a crash bug due to setStarted and setDone.
Change-Id: Ib9b069fe4b7e5d1fc359f48e44b4032dd8249428
(cherry picked from commit 9ef190ed3ecd66d12617ad96e927ff34251395a2)
Allow user to set top/Bottom_z_distance under variable layer height.
Fix the bug STUDIO-2454
Change-Id: I026098a4df7cfa01f87a6802e2c787fcfd6df3ee
(cherry picked from commit 6e933acec7cde705f176937038ce307bc276cf5f)
Re-open this option as requested by github users.
Fix Jira STUDIO-2083; Github issue-1102
Change-Id: Ifb01a5153e7dc105bf2d29a98e64dda3a9d8e6d4
(cherry picked from commit e42914b2448c2693d19d40b0d84e64567b766f37)
1. add gcode conflict checker
2. add a new command line option: --no_check. When it's provided, gcode
conflict check is skipped.
Change-Id: I6feafca8c5fa6c3c5eae1f0e541ce59d2f03dedf
(cherry picked from commit 5a39afb64e826a960d9673dcada89d02d62b3911)
1. old 3mf judge logic improvement
2. some 3mf doesn't include gcode and geometry, treat it as empty
project
Change-Id: I9b3f3d04e32ae6ff273ec1ae04c04ac6329487f0
the processes are parallized via tbb
the patch 12311 ENH: remove trim_overlap should be used
Change-Id: I226dc171daadebd81b8d3ae013b08c71b91fb392
(cherry picked from commit eaa2e7997a59f43175d5af430269127471e40cbb)
Similar to tree support, make as many steps parallel as possible.
Jira: STUDIO-2525
Change-Id: Iee310bbf6911d8d3e4262ee8ed6bd133d09670a9
(cherry picked from commit 3798f1a3ecb85bbfb81925b3702fb4384e18994d)
1. tree support style default to Tree Hybrid
2. fix an assert bug with MedialAxis::build:
assert(polyline.width.size() == polyline.points.size() * 2 - 2)
This is caused by the incorrect clear function of ThickPolyline.
Change-Id: I8d6507ad366d253493e2749e0cbac8d3d837ee8a
(cherry picked from commit bd31e962c11e82005944bef40b17471075e79898)
1. Parallelize the majority of overhang detection, leaving only a small
part of sharp tail detection as sequential. This strategy makes
is_support_necessary 10 times faster.
2. Use the overlaps function to detect overlapping, instead of using
intersection().empty()
3. Control the max recursion depth to prevent crashing due to too deep
recursion.
Jira: STUDIO-2445, STUDIO-2458
Change-Id: I35283da3e4a22d7afe251b804ce30b90a9d754df
(cherry picked from commit 1a6fedd1a0c82906f1807234ea1b816247ca6fd7)
Fix for floating layer under multi-color
printing while z_hop is zero.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I8cc96bd18020cac8424fe4c3e62fb87da118b826
This is fix for STUDIO-2079 that slicer may hang
when generated archimedean chords pattern lines.
Thanks prusa.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I923c1ef48f093b2ab9576cb04beb4787c903ca00
m_hull_2d_cache must be set since later on we'll use its point number, which is a very large number when not inited.
This will cause a fatal out-of-memory error.
Jira: STUDIO-2452
Change-Id: I9b397a53bdcdf555eccf745f1b96786010ebe309
(cherry picked from commit 6802be53709649e75a1562d29e14559c766d427b)
offset may give empty results.
The previous patch solved the issue that the studio crashes immediately when selecting by-object printing.
This patch solves the issue that the studio crashes when moving objects with mouse after selecting by-object printing.
Jira: STUDIO-2452
Change-Id: Iacd69e67386b0750f24e5af2799ff9c0da130e88
(cherry picked from commit 8ea4379d0b6d61e91bd6704e4b1e8309cb42b924)
offset may give empty results.
Jira: STUDIO-2452
Change-Id: I4da9689dc3e22afcb2340ce0f9956237e4aab434
(cherry picked from commit 3f33979a79c720fcaddb5b850ec278b3deaf2417)
Don't know why this file is missing when cherry-pick...
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Iddfba50ef885fa08078bb9723a6ae2d5d5d0289d
1. add top view thumbnail for each plate
2. add picking thumbnails for each plate
3. save model object id for picking
Change-Id: I1d7f6ade22726ff12c282cb12e4a78e6b444a070
"std::cout << float number" is unsafe which
may use , as decimal point when switch language.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I8a379117168eab0111dc93987b1d6130a741ade6
1. In small overhang detection, some sharp tail cases are missed because
the max_layer was not compared.
2. In normal support, previously the lower layer's expolys were not right,
should only keep the ones that won't vanish when extruding.
Jira: STUDIO-1977, STUDIO-2200
Change-Id: Ia09ff1ab4870b7e3c199a827932536867644c76c
(cherry picked from commit e3ba3a3114821e951d6eb00b4c95e6e63ffe00d4)
Allow user to disable support independent layer height when prime tower closed.
Fix wrong WIKI link jumping.
JIRA: STUDIO-1685
JIRA: STUDIO-2308
Change-Id: I894fdd37b707c53e17fd4ad7d1518897f307e557
(cherry picked from commit e10d31e123306a0893087ea03693303768a2daf6)
1) the function is not released to public
Change-Id: Ia1b5a31db3b1b1864997b57fe875c01f3ea9fb08
(cherry picked from commit a816cc313659f87978e1275b98f43172cb416a59)
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_mac_arm64.yml)
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_mac_x64.yml)
Orca Slicer is a fork of Bambu Studio. It was previously known as BambuStudio-SoftFever.
Bambu Studio is based on [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community.
Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill
Prebuilt binaries are available through the [github releases page](https://github.com/SoftFever/OrcaSlicer/releases/).
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_mac_arm64.yml)
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_mac_x64.yml)
Orca Slicer is an open source slicer for FDM printers.
You can download Orca Slicer here: [github releases page](https://github.com/SoftFever/OrcaSlicer/releases/).
 Join community: [OrcaSlicer Official Discord Server](https://discord.gg/WTEkCR6SnV)
# Main features
- Auto calibrations for all printers
@@ -20,6 +17,13 @@ Prebuilt binaries are available through the [github releases page](https://githu
- More granular controls
- More features can be found in [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
### Some background
OrcaSlicer is fork of Bambu Studio
It was previously known as BambuStudio-SoftFever
Bambu Studio is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community.
Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill
Orca Slicer's logo is designed by community member Justin Levine(@freejstnalxndr)
# How to install
**Windows**:
1. Unzip the binaries to any folder you prefer, then execute orca-slicer.exe to start the application.
@@ -32,12 +36,16 @@ Prebuilt binaries are available through the [github releases page](https://githu
2. Double click to unzip the package, move OrcaSlicer.app to Application folder.
3. The app is signed but not notarized at the moment due to the proptiery network plugin.
We have two options to make it run on our machines
- Option 1:
- Option 1 (You only need to do this once. After that the app can be oppened normally.):
- Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**.
- Step 2: A warning window will pop up, click _Open_
- Option 2:
Execute this command in terminal: `xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app`
@@ -81,5 +89,7 @@ Slic3r is licensed under the GNU Affero General Public License, version 3. Slic3
The GNU Affero General Public License, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.
The bambu networking plugin is based on non-free libraries. It is optional to the Orca Slicer and provides extended functionalities for users.
Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`. ** Remember** to save the filament profile.
6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`.
7. Repeat steps 4 and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. ** Remember ** to save the filament profile.
Orca Slicer includes three approaches for calibrating the pressure advance value. Each method has its own advantages and disadvantages. It is important to note that each method has two versions: one for a direct drive extruder and one for a Bowden extruder. Make sure to select the appropriate version for your test.
##### *NOTE: For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.*
The line method is quick and straightforward to test. However, its accuracy highly depends on your first layer quality. It is suggested to turn on the bed mesh leveling for this test.
Steps:
1. Select the printer, filament, and process you would like to use for the test.
2. Print the project and check the result. You can select the value of the most even line and update your PA value in the filament settings.
3. In this test, a PA value of `0.016` appears to be optimal.
The pattern method is adapted from [Andrew Ellis' pattern method generator](https://ellis3dp.com/Pressure_Linear_Advance_Tool/), which was itself derived from the [Marlin pattern method](https://marlinfw.org/tools/lin_advance/k-factor.html) developed by [Sineos](https://github.com/Sineos/k-factorjs).
[Instructions for using and reading the pattern method](https://ellis3dp.com/Print-Tuning-Guide/articles/pressure_linear_advance/pattern_method.html) are provided in [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide/), with only a few Orca Slicer differences to note.
First and foremost, when you initiate the test, you'll only see a small rectangular prism on the plate. This object serves a few purposes:
1. The test pattern itself is added in as custom G-Code at each layer, same as you could do by hand actually. The rectangular prism gives us the layers in which to insert that G-Code. This also means that **you'll see the full test pattern when you move to the Preview pane**
2. The prism acts as a handle, enabling you to move the test pattern wherever you'd like on the plate by moving the prism
3. The filament selected for the prism is also used for the test pattern
Next, Ellis' generator provided the ability to adjust specific printer, filament, and print profile settings. You can make these same changes in Orca Slicer by adjusting the settings in the Prepare pane as you would with any other print. When you initiate the calibration test, Ellis' default settings are applied. A few things to note about these settings:
1. Ellis specified line widths as a percent of filament diameter. The Orca pattern method does the same to provide its suggested defaults, making use of Ellis' percentages in combination with your specified nozzle diameter
2. In terms of line width, the pattern only makes use of the `Default` and `First layer` widths
3. In terms of speed, the pattern only uses the `First layer speed -> First layer` and `Other layers speed -> Outer wall` speeds
4. The infill pattern beneath the numbers cannot be changed becuase it's not actually an infill pattern pulled from the settings. All of the pattern G-Code is custom written, so that "infill" is, effectively, hand-drawn and so not processed through the usual channels that would enable Orca to recognize it as infill
### Tower method
The tower method may take a bit more time to complete, but it does not rely on the quality of the first layer.
The PA value for this test will be increased by 0.002 for every 1 mm increase in height. (**NOTE** 0.02 for Bowden)
Steps:
1. Select the printer, filament, and process you would like to use for the test.
2. Examine each corner of the print and mark the height that yields the best overall result.
3. I selected a height of 8 mm for this case, so the pressure advance value should be calculated as `0.002x8 = 0.016`.
Temp tower is a straightforward test. The temp tower is a vertical tower with multiple blocks, each printed at a different temperature. Once the print is complete, we can examine each block of the tower and determine the optimal temperature for the filament. The optimal temperature is the one that produces the highest quality print with the least amount of issues, such as stringing, layer adhesion, warping (overhang), and bridging.
This test generates a retraction tower automatically. The retraction tower is a vertical structure with multiple notches, each printed at a different retraction length. After the print is complete, we can examine each section of the tower to determine the optimal retraction length for the filament. The optimal retraction length is the shortest one that produces the cleanest tower.

In the dialog, you can select the start and end retraction length, as well as the retraction length increment step. The default values are 0mm for the start retraction length, 2mm for the end retraction length, and 0.1mm for the step. These values are suitable for most direct drive extruders. However, for Bowden extruders, you may want to increase the start and end retraction lengths to 1mm and 6mm, respectively, and set the step to 0.2mm.
**Note**: When testing filaments such as PLA or ABS that have minimal oozing, the retraction settings can be highly effective. You may find that the retraction tower appears clean right from the start. In such situations, setting the retraction length to 0.2mm - 0.4mm using Orca Slicer should suffice.
On the other hand, if there is still a lot of stringing at the top of the tower, it is recommended to dry your filament and ensure that your nozzle is properly installed without any leaks.

# Orca Tolerance Test
This tolerance test is specifically designed to assess the dimensional accuracy of your printer and filament. The model comprises a base and a hexagon tester. The base contains six hexagon hole, each with a different tolerance: 0.0mm, 0.05mm, 0.1mm, 0.2mm, 0.3mm, and 0.4mm. The dimensions of the hexagon tester are illustrated in the image.

You can assess the tolerance using either an M6 Allen key or the printed hexagon tester.


# Advanced Calibration
## Max Volumetric speed
This is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament.
You will be promted to enter the settings for the test: start volumetric speed, end volumentric speed, and step. It is recommended to use the default values (5mm³/s start, 20mm³/s end, with a step of 0.5), unless you already have an idea of the lower or upper limit for your filament. Select "OK", slice the plate, and send it to the printer.
Once printed, take note of where the layers begin to fail and where the quality begins to suffer. Pay attention to changes from matte to shiny as well.

Using calipers or a ruler, measure the height of the print at that point. Use the following calculation to determine the correct max flow value: `start + (height-measured * step)` . For example in the photo below, and using the default setting values, the print quality began to suffer at 19mm measured, so the calculation would be: `5 + (19 * 0.5)` , or `13mm³/s` using the default values. Enter your number into the "Max volumetric speed" value in the filament settings.

You can also return to OrcaSlicer in the "Preview" tab, make sure the color scheme "flow" is selected. Scroll down to the layer height that you measured, and click on the toolhead slider. This will indicate the max flow level for your filmanet.

#### *NOTE You may also choose to conservatively reduce the flow by 5-10% to ensure print quality.*
***
*Credits:*
- *The Flowrate test and retraction test is inspired by [SuperSlicer](https://github.com/supermerill/SuperSlicer)*
- *The PA Line method is inspired by [K-factor Calibration Pattern](https://marlinfw.org/tools/lin_advance/k-factor.html)*
- *The PA Tower method is inspired by [Klipper](https://www.klipper3d.org/Pressure_Advance.html)*
- *The temp tower model is remixed from [Smart compact temperature calibration tower](https://www.thingiverse.com/thing:2729076)
- *The max flowrate test was inspired by Stefan(CNC Kitchen), and the model used in the test is a remix of his [Extrusion Test Structure](https://www.printables.com/model/342075-extrusion-test-structure).
Currently Linux version is not verified, you can try it referring to [PrusaSlicer'S linux building guide](https://github.com/prusa3d/PrusaSlicer/blob/master/doc/How%20to%20build%20-%20Linux%20et%20al.md)
- Visual Studio Community 2019 from [visualstudio.microsoft.com/vs/](https://visualstudio.microsoft.com/vs/) (Older versions are not supported as Orca Slicer requires support for C++17, and newer versions should also be ok);
- Cmake from [cmake.org](https://cmake.org/download/)
- Git from [gitforwindows.org](https://gitforwindows.org/)
- Perl from [strawberryperl](https://strawberryperl.com/)
## building the deps
Suppose you download the codes into D:/work/Projects/BambuStudio
create a directory to store the dependence built: D:/work/Projects/OrcaSlicer_dep
`cd BambuStudio/deps`
`mkdir build;cd build`
`cmake ../ -G "Visual Studio 16 2019" -DDESTDIR="D:/work/Projects/OrcaSlicer_dep" -DCMAKE_BUILD_TYPE=Release`
`msbuild /m ALL_BUILD.vcxproj`
It takes "00:14:27.37" to finish it on my machine (11th Gen Intel(R) Core(TM) i9-11900 @2.50GHz 2.50 GHz, with 32.0 GB DDR)
## building the Orca Slicer
create a directory to store the installed files at D:/work/Projects/BambuStudio/install_dir
`cd BambuStudio`
`mkdir install_dir`
`mkdir build;cd build`
set -DWIN10SDK_PATH to your windows sdk path(for example: C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0) in below command:
text=Flush into support/objects/infill\nDid you know that you can save the wasted filament by flushing them into support/objects/infill during filament change?
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.