PrintObjectBase::status_update_warnings called PrintBase::status_update_warnings, which in turn set
SlicingStatus flag to UPDATE_PRINT_STEP_WARNINGS (instead of UPDATE_PRINT_OBEJCT_STEP_WARNINGS) and
saved its own ObjectID. This led to spurious and hard to read thread-unsafe crashes.
When was set use_external_mp_once to true then after first calling the avoid crossing perimeters this flag was reset which cases that on the second call of the avoid crossing perimeters the travel move didn't process as external.
BitmapComboBox: Use virtual OnSelect() on wxEVT_COMBO event
Don't save information about preset combobox type to the evt.SetInt(). This information can be received from BitmapComboBox::get_type() now.
Reworked skirt generator to only generate skirt at non-empty layers
(layers that actually extruder object or support) and to respect minimum
layer height. Skirt generator stops at the first layer where those both
conditions cannot be met.
Disabled a suspicious piece of legacy code inherited from Slic3r,
which tries to fill in spots inside support interfaces. The code was
too aggressive and it was doing more harm than good.
New config field for switching the support interface pattern between
default (rectilinear for non-soluble interface, concentric for soluble interface),
explicit rectilinear and explicit concentric.
Also the config layer was reworked a bit to reduce some switch statements
on ConfigOptionEnum<> templates.
Fixes [Request] Add optional perimeter to raft #756
Fixes First support layer does not stick to bed #2101
New parameters raft_first_layer_density and raft_first_layer_expansion
to influence the 1st layer of raft or support.
Fixes Allow to disable raft under support structures. #3772
Fixes raft is larger than necessary #2568
Fixes Supports on the build plate should have a solid bottom interface for better adhesion #1165
Changed the 1st layer infill to rectilinear even for soluble materials.
Fixes first layer of support for multi filament support oddly spaced #1445
Fixes Full Soluble Materials interfacing into Models + Soluble material noise on Bed #684
When an island contains exactly one infill ExtrusionEntity, this extrusion was oriented to maximize travel distance from the end of the previous extrusion of perimeters instead of minimizing it.
Fixes Brim destroyed by support aka. Enable supports on top of brim #1156
Fixes Brim Priority/Support on Brim #713
Fixes Phantom Support columns interfere with brim #3396
Fixes false generation of brim when supports are used #3395
This is a work in progress, as the brim generator currently produces
different brim areas from what the support generator expects.
When projecting the horizontal or nearly horizontal support enforcers or blockers
into object layers, the projection may fall on a layer above or below the layer
where it should in case the nearly horizontal support enforcer or blocker
triangles are intersecting the slicing plane of one of the object layers.
Due to numerical issues, projection of the support blocker or
enforcer triangles may not fall to the same side of the slicing plane
as when slicing the object. To make the projection robust, horizontal triangles
are newly projected to both the layer below and above if they are close
to the object slicing plane.
1. DoubleSlider::Control : Update extruder colors before another updates for layers slider
2. GCodeViewer : Control count of extruders during the legend updating
The projection algorithm was originally made for custom supports, so vertical triangles
were not interesting. They are for seam. Instead of rewriting the algorithm and risking
more bugs, the edge case is detected and the triangle is tilted slightly.
Projection into a grid has been reworked to use the AGG rasterizer.
This fixes#5209 and #6067.
Also the raster is now being oversampled by maximum 8x8 samples
and the supports are only allowed to expand inside the cell.
This significantly reduces leakage of supports through object walls,
which fixes#5054.
When the avoid crossing perimeters was enabled, and the wipe was enabled, there were unnecessary travels in the opposite direction than the wipe travel.
under soluble supports. #5823
Implemented as a pull request #5903 by @spiky2021
and reworked.
commit c7993e619225553a2c4078787907b9ebbd9ac759
Author: spiky2021 <77010315+spiky2021@users.noreply.github.com>
Date: Thu Feb 11 12:39:25 2021 +0100
Base type interfaces for soluble interface supports
At the moment soluble support material adhesion is weak due to sparse support layers under soluble support layers. I reported as issue #5823 with pictures, as well.
I modified two methods to the SupportMaterial Class including their headers.
The new methods add two base type interface layers to the support structure, in case the extruders are different and soluble support is choosen.
Since it is conditionally activated, it in general doesn't need a GUI input. But a GUI option number of base interface layers may enabled users to adapt this feature to their needs.
This is my second try to provide a pull request on this topic. Reset my fromer repository, because first I merged this and all other changes to my master and couldn't provide separate pull request anymore.
ModelObject::split() expects a non-NULL new_objects vector where it adds pointers to the new models resulting from the split.
But in the CLI case the caller does not care about this and passes NULL which causes a crash. To fix the crash we could pass
a dummy vector but it turns out that we actually have a use for the results because we should assign a unique name to each
new model the same way as the GUI does. These names show up as comments in the gcode so this change makes the gcode produced
by the GUI and the CLI more similar and diffable.
@lukasmatena has amended the original commit by @combolek (pull request #5991) in order to avoid code duplication
Description of issue:
When for some parameter set a value which is out of rage or inaccurate and than click to another parameter,
receive a warning message dialog with description of a problem.
After closing of this Dialog any button on settings tab doesn't work for first click.
Looks like after dialog is closed Notebook page loses a focus.
Workaround:
Use self-created WarningDialog (inherited from the wxDialog) instead of wxMessageDialog
Adjustment of GUI/3DBed.cpp,hpp to use the more stable triangulation algoritm
derived from SGI glut.
Fix of an extremely slow bridging calculation, caused by an extremely
slow bridged area detection function, of which the results were never used.
Fixes "slicing fails or takes too long #5974"
option "Use colors for axes values in Manipulation panel" is enabled in Preferences -> GUI
+ Fix one more compilation warning in UnsavedChangesDialog.cpp
- Extra dialog for autosetting by angle in FDM supports gizmo was removed
- Highlighting facets by angle is now controlled by a slider in the main gizmo dialog
- User is allowed to paint even when using the slope highlighter
- The button to turn highlighted facets to blockers was removed, it made no sense
- Highlighted facets are now rendered in light blue
When passing a PrintRegionConfig to the slicing back end, zero an infill
density if it is already nearly zero. This avoids an ugly division by
zero in the infill code and it also makes clear to the back end that
we don't want an infill.
Squashed commit of the following:
commit 4e13a8fe19abcc9aae39a9bc4c7953a743196504
Merge: 6ae766409 6f89da1f3
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 11:19:35 2021 +0100
Merge remote-tracking branch 'remotes/origin/master' into vb_edgegrid_open_lines
commit 6ae76640942269993c942861f0444088843e3fa1
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 11:14:48 2021 +0100
EdgeGrid enhancement to accept both the open and closed lines.
commit 36a5efcd558bd5fd5f46b5f561387a2c73221553
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 10:52:14 2021 +0100
EdgeGrid improvements: Documentation, one bug fix after recent refactoring.
commit 6f89da1f39
Author: tamasmeszaros <meszaros.q@gmail.com>
Date: Thu Feb 4 20:31:50 2021 +0100
Disable libicu for boost-regex
Should have been disabled from the beginning
commit ffc77b1a72a0be9b5622fd33defeebb24bf07b34
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 18:40:33 2021 +0100
EdgeGrid: Annotated those methods that do not work with open contours.
commit 8039a645b4bf0c46c99b90a9c34e7189d7442f86
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 18:28:21 2021 +0100
Refactoring of EdgeGrid structure to support both closed and open lines.
Added menu item "Window->Compare presets" to compare more than one type
of presets.
Code refactoring for PresetComboBox: Use suffix "modified" just for
PlaterPresetComboBox and TabPresetComboBox
Code refactoring. wxDataViewCtrl and related functions extracted from
DiffPresetDialog and UnsavedChangesDialog to the separate class
DiffViewCtrl
Code refactoring, Tab.cpp: Build all unregular pages on a first build of
the Printer Settings
Squashed commit of the following:
commit 91f45a8a2d97d252337c7306dd02db607fd79c00
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 09:34:29 2021 +0100
Fixed after merge
commit 09aa502498b08c059ecdf334f5db1567739b4520
Merge: 6df8e83e1 0baa92fab
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 09:31:43 2021 +0100
Merge remote-tracking branch 'remotes/origin/master' into ys_diff_dlg
commit 6df8e83e1af3ba096ac39d25985b6deb2e0a245b
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 09:29:53 2021 +0100
Tiny beautification.
commit e781ceaaf7c39bc073476409cc02918d9f182930
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Wed Feb 3 18:05:19 2021 +0100
Reworked copying of PresetBundles:
1) Simplified by using the default copy constructors and copy operators.
2) Made safer by not allowing PresetCollection and PhysicalPrinterPresetCollection
to be copied or instantiated outside of PresetBundle.
3) Fixed Preset::vendor pointers after copying PresetBundle.
commit a8f0b7aa5156465cdb3e3dbb86feb66a64bcebc0
Author: YuSanka <yusanka@gmail.com>
Date: Mon Jan 25 16:13:53 2021 +0100
DiffPresetsDialog: Show compatibility to print/printer presets selected in DiffPresetDialog
commit 597451f930a4330376966d8cf3350056d4f85a73
Merge: cce5b5710 59017a7da
Author: YuSanka <yusanka@gmail.com>
Date: Thu Jan 21 12:14:48 2021 +0100
Merge remote-tracking branch 'origin/master' into ys_diff_dlg
commit cce5b5710d1225c7eaa52d0abb4b3f66fbd3b6a1
Author: YuSanka <yusanka@gmail.com>
Date: Thu Jan 21 12:11:40 2021 +0100
DiffPresetDialog: Fixed crash on ASAN build
commit ad8d728d89d7a75c2ac136ea8cdbb730ab774cd9
Author: YuSanka <yusanka@gmail.com>
Date: Wed Jan 20 16:38:28 2021 +0100
FullCompareDialog improvements
commit 316bafbeec9bb63f731b653d296062d9e22dd02f
Author: YuSanka <yusanka@gmail.com>
Date: Wed Jan 20 09:25:46 2021 +0100
DiffPresetDialog improvements:
* Update presets lists after save changes in edited preset or change printer_technology
* Tab.cpp: Build all unregular pages on a first build of the Printer Settings
commit 01171c8ef50389d0801b0ccc5746ab0c3b731b11
Author: YuSanka <yusanka@gmail.com>
Date: Tue Jan 19 17:26:28 2021 +0100
DiffPresetDialog : improvements
* This dialog is non-modal now
* "Compare presets" menu item is moved from "View" to the "Window" menu group
* Added info tooltips for the bitmap buttons between presets
* Added "Show all presets" checkbox
* Show full difference between printer presets with different count of extruders
commit 3d38b62f3c9de8aab352ed3bcff297d5c0239b2e
Merge: e50fe6de9 9a2310ae9
Author: YuSanka <yusanka@gmail.com>
Date: Mon Jan 18 10:00:18 2021 +0100
Merge remote-tracking branch 'origin/master' into ys_diff_dlg
commit e50fe6de984decadfef3d4b952f0eec8ab9e6670
Author: YuSanka <yusanka@gmail.com>
Date: Sat Jan 16 02:27:24 2021 +0100
DiffPresetDialog improvements
Added menu item "View->Compare presets" to compare more than one type of presets
commit bf08b7c8c969ad0ca631b9eeac1bc231f474e72b
Author: YuSanka <yusanka@gmail.com>
Date: Sat Jan 16 00:28:39 2021 +0100
Code refactoring. wxDataViewCtrl and related functions extracted from DiffPresetDialog and UnsavedChangesDialog to the separate class DiffViewCtrl
commit 7aeb63032b0bc2bd06e60990c060008660a5c44f
Author: YuSanka <yusanka@gmail.com>
Date: Fri Jan 15 21:35:43 2021 +0100
DiffPresetDialog: first implementation
commit 2f23d5af9d6b5dd670dfb7d06eedbe0e6d2960c6
Author: YuSanka <yusanka@gmail.com>
Date: Thu Jan 14 16:28:43 2021 +0100
Code refactoring for PresetComboBox.
Use suffix "modified" just for PlaterPresetComboBox and TabPresetComboBox
Working contour offsetting,
skeleton_edges_rough() to detect "important" skeleton edges.
Radius of an inscribed circle along the "important" skeleton edges
changes slowly, therefore these "important" skeleton edges signify
oblong regions possibly needing a gap fill.
Fixing model import of models with nearly degenerate triangles, which
degenerate after transformation (translation or rotation).
There was certainly a bug in PrusaSlicer, however this bug was triggered
mostly by the ASCII STL files generated by OpenSCAD, likely due to insufficient
number of decimal digits when saving an ASCII STL, see
[openscad/openscad] STL export should contain single precision floats (#2651)
Commented out fuzzy_skin_shape for now, the parameter may be used
in the future, but for now we don't want the parameter to be stored
into configuration files.
mz_zip_writer_add_staged_open(), mz_zip_writer_add_staged_data() and mz_zip_writer_add_staged_finish()
were derived from mz_zip_writer_add_read_buf_callback() by splitting it and passing a new
mz_zip_writer_staged_context between them.
* changed evaluation coefficients inside fuzzy_match_recursive
* don't add markers to the labels before it's used in fuzzy_match_recursive
+ follow-up 78a3d8b63e - added missed fix for one more line (use std::towlower instead of std::tolower for wchar_t) Problem was appearance on Cyrillic languages
Based on pull request Experimental fuzzy skin mode #4611 by @etet100
and on CuraEngine implementation of perimeter fuzzyfication
void FffPolygonGenerator::processFuzzyWalls(SliceMeshStorage& mesh)
(wxWidgets 3.1.4 can binding of wxEVT_DPI_CHANGED now, so it was called msw_rescale() for most of the controls redundantly)
+ Fixed update of the DoubleSlider after changing of the system color
fixing "percent first layer speed was not applied over autospeed." GH upstream Slic3r #2945
our GH issue First Layer Speed Percentage not applying (#5829)
where the PrusaSlicer binary is mounted at a different mount point
at each AppImage execution.
Fixes Lock files in the local configuration directory are not deleted (#5733)
boost::process::spawn() sets SIGCHLD to SIGIGN for the child process, thus if a child PrusaSlicer spawns another
subprocess and the subrocess dies, the child PrusaSlicer will not receive information on end of subprocess
(posix waitpid() call will always fail).
https://jmmv.dev/2008/10/boostprocess-and-sigchld.html
The child instance of PrusaSlicer has to reset SIGCHLD to its default, so that posix waitpid() and similar continue to work.
Fixes#5507