Commit Graph
100 Commits
Author SHA1 Message Date
Vojtech Bubnik d0febbec32 Disable the new Toggle fullscreen menu item on OSX, it adds its own. 2021-03-16 08:54:46 +01:00
Vojtech Bubnik fc0e2d578f Checking for removable media on Chrome OS. 2021-03-15 17:42:18 +01:00
Vojtech Bubnik d695e090ef Changing the Fullscreen hotkey to Ctrl+Cmd+F for OSX 2021-03-15 17:11:36 +01:00
Vojtech Bubnik b9c4d29fe9 call detect_platform() after SLIC3R_LOGLEVEL env variable is read 2021-03-15 17:00:49 +01:00
Vojtech Bubnik 01406fd521 Worked around some quirky Linux file system issues. Namely
the Chromebooks share their file system to Linux using the 9p file
system, which does not support setting file ownership. Newly PrusaSlicer
will detect platform and it will not panick if copy_file() cannot set
file ownership after copying. It just logs the incident, and on
chromebooks the loglevel for that incident is "Info", not "Error".

Adjusted the full screen mode to contain menu bar.
Moved Platform.cpp/hpp to libslic3r
2021-03-15 16:19:22 +01:00
Vojtech Bubnik fb9d537b58 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2021-03-15 10:36:22 +01:00
Vojtech Bubnik ba5e8860cb Fixing some compilation warnings 2021-03-15 10:36:03 +01:00
Vojtech Bubnik 95c5763b83 Fixed typo in previous commit. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 932336612c Full screen toggle 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 75ad7f262e Linux with precompiled headers wants Config.hpp header in PrintConfig.cpp 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 33b63b35a2 Added detection of Microsoft WSL/WSL2 Linux flavors.
Added tracing of the platform detection.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik 2c76c42baa Linux/OSX don't like an "BSD" symbol? 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 8b4b6afd7b Fix of previous commit. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik a9c3d270e6 ConfigOptions: GUI type as enum, not string.
Fixing compilation error in the new Platform code.
Fixing one issue in FDM support after splitting the top/bottom
interface layers.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik 051ba0e6f4 New files missing from the previous commit. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik ca8cf0a9f1 Detecting platform, namely reading /proc/version to detect Chromium OS.
Disabling Eject on Chromium, detecting removable media the Chromium way.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik 2b19708720 Further ChromeOS support: Detect removable media mounted through ChromeOS 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 9c80c6a4af Disable multi-sampling with virgl (VirtualGL) on Linux.
Namely, on ChromeOS virgl flips red/blue channels at least on some computers with multi-sampling enabled.
It seems it is sufficient to disable multi-sampling after the OpenGL context is created.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik 2494a8f384 Allowing ints with open enums in combo boxes. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik 73b88e6ce0 Splitting FDM support gap to top / bottom, introducing
support_material_bottom_contact_distance
Fixing Crash in support generation after fcb714c (repro attached) #6195
2021-03-15 09:55:57 +01:00
Vojtech Bubnik f3f10ff002 Follow up on https://github.com/prusa3d/PrusaSlicer/pull/5219#issuecomment-794515454
Initializing random generator in PlacholderParser from system clock.
2021-03-15 09:55:56 +01:00
Vojtech Bubnik 00db3dc419 WIP: Splitting the number of top / bottom support interface layers.
If the new support_material_bottom_interface_layers is left at default -1,
then support_material_interface_layers is used for both top and bottom
interface layers.
If support_material_interface_layers == 0, then neither top nor bottom
interface layers are being extruded.
2021-03-15 09:55:56 +01:00
Vojtech Bubnik adcbe4347c Fixed unit tests. 2021-03-15 09:55:56 +01:00
Vojtech Bubnik f01f02154c Reworked the "new" bridging to respect the bridge_flow_ratio
by maintaining extrusion spacing, but modifying the extrusion width
and / or height.
2021-03-15 09:55:56 +01:00
Vojtech Bubnik 8e27e355c2 Fixing unit tests. 2021-03-15 09:55:56 +01:00
Vojtech Bubnik ceea9de8b8 WIP: Refactored bridging flow from normal flow, new config value
'thick_bridges' to switch between the Slic3r vs. S3D/Cura/Ideamaker
way of printing 1st object layer over supports.
Simplified the PresetHints.
2021-03-15 09:55:56 +01:00
Vojtech Bubnik 8adb495e7d Fix of 589d2be442 2021-03-08 11:29:52 +01:00
Vojtech Bubnik ed7be17bf1 Detection of Win10 3D printing API from the default Visual Studio env
variables.
2021-03-08 09:38:14 +01:00
Vojtech Bubnik 589d2be442 Fix of Repair with Netfabb does not work on builds after 2.3.0 release (Windows 10) #6193
This is more a workaround than a fix: Windows 10 3D model fixing API refuses
to load a zip64 encoded 3MF. We need to get in touch with Microsoft on that
issue, for now the 3MFs generated for the Windows 10 3D model fixing API
will be limited to 4GB. Saving a bigger 3MF will fail.
2021-03-08 09:36:21 +01:00
Vojtech Bubnik 5f5de1c812 Follow-up to 5276bd98d7:
WIP: MutablePolygon - linked list based polygon implementation
allowing rapid insertion and removal of points.
WIP: porting smooth_outward() from Cura.
2021-03-03 15:04:26 +01:00
Vojtech Bubnik 5276bd98d7 WIP: MutablePolygon - linked list based polygon implementation
allowing rapid insertion and removal of points.
WIP: porting smooth_outward() from Cura.
2021-03-01 18:41:46 +01:00
Vojtech Bubnik 224f3e506c Fix of Custom G-code for color change does not process macro #5782
Added macro processing of color_change_gcode, pause_print_gcode
and template_custom_gcode custom G-codes when emitting them into
the output G-code.
2021-03-01 12:52:40 +01:00
Vojtech Bubnik d7a786e8c8 Bumping up wxWidgets to 3.1.4-patched on all platforms. 2021-03-01 11:36:11 +01:00
Vojtech Bubnik 750cfdd099 Fix of support generator after merging
Base type interfaces for soluble interface supports #6017
2021-02-25 14:50:44 +01:00
Vojtech Bubnik 6e73ddab8e Support generator: Debugging visualization of "don't support bridges".
Fixed a bug in raft generator - 1st layer did not respect the 1st layer
density.
2021-02-25 12:29:08 +01:00
Vojtech Bubnik 43c05d35ea Fix of crash when using raft with modified Shape-Box with height 0.5mm #5652
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.
2021-02-25 12:18:11 +01:00
Vojtech Bubnik 6f5bf71f11 Fixing some compiler warnings 2021-02-24 19:53:50 +01:00
Vojtech Bubnik 539e80e890 Fix of supports create overkill material that actually sopports nothing above it. #2245
When expanding the 1st layer support layer, do it by small steps while
trimming with object to avoid supports to leak through object walls.
2021-02-24 19:49:38 +01:00
Vojtech Bubnik 34417574f5 Fix of Perl combine infill unit test after a change in raft:
1st object layer over raft is no more printed with bridging infill.
2021-02-24 18:48:55 +01:00
Vojtech Bubnik e9875f57a9 Fix of Unnecessary raft on models with large perimeter but nothing inside. #430
Don't fill in the holes in 1st layer of the raft.
The user may apply a higher raft_expansion if one wants a better 1st layer adhesion.
2021-02-24 18:08:32 +01:00
Vojtech Bubnik 6bdd42b1cf Fix of Support interface is generated across whole print layer regardless if it's needed or not #4570
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.
2021-02-24 17:34:51 +01:00
Vojtech Bubnik 61a5b43ac3 Fix of Add option to change support interface pattern #1197
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.
2021-02-24 15:59:18 +01:00
Vojtech Bubnik aee136cedd Squash merge of pull request Raft enhancements #6003
thanks @nemart69
2021-02-24 11:59:22 +01:00
Vojtech Bubnik fcb714cd24 Added a single perimeter to the first layer of support or raft.
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
2021-02-24 08:48:40 +01:00
Vojtech Bubnik d2c46025c7 Fix of Enforce support for first N layers has no effect #470 2021-02-23 15:31:21 +01:00
Vojtech Bubnik 055d2321e7 Trimming support base layer with brim.
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.
2021-02-23 14:43:47 +01:00
Vojtech Bubnik 8ba230db9f Fix of Paint on support ignores some paints. #5948
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.
2021-02-23 12:30:15 +01:00
Vojtech Bubnik 7b52dc2324 Fixing build on gcc/clang 2021-02-22 19:43:18 +01:00
Vojtech Bubnik 032df7f18f PNGReadWrite: png::write_gray_to_file(), png::write_gray_to_file_scaled() 2021-02-22 18:07:27 +01:00
Vojtech Bubnik 3985d7bb81 Fixes Support Interface printed on air #2903
Fixes Supports generated loose in space #4874
Fixes Support Interface layers in midair #5016
2021-02-22 18:07:27 +01:00
Vojtech Bubnik d2ca4563e8 Extended SVG::export_expolygons() with legend. 2021-02-22 18:07:27 +01:00
Vojtech Bubnik ac97572cfe Fixed compiler warnings 2021-02-19 20:09:57 +01:00
Vojtech Bubnik 12d14eaa2f Fixing a constness issue of the preceding commit. 2021-02-19 19:00:43 +01:00
Vojtech Bubnik cceaae84fb Silencing compiler warning in AGGRaster on Visual Studio 2021-02-19 18:57:45 +01:00
Vojtech Bubnik fb7b995050 Improvements in FDM support generator:
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.
2021-02-19 18:50:44 +01:00
Vojtech Bubnik 65f5ac4f8a The perl binding is killing Vojtech 2021-02-18 11:47:06 +01:00
Vojtech Bubnik b03c318ed7 Fixing the Perl bindings for the last time 2021-02-18 11:42:35 +01:00
Vojtech Bubnik 0b45b312f9 Finally the Perl binding fix arrived! 2021-02-18 10:39:46 +01:00
Vojtech Bubnik ce8986348c Cooling buffer - fix of Perl bindings 2021-02-18 10:31:15 +01:00
Vojtech Bubnik 31bc52a5cb Fix of Perl integration after cooling buffer rework 2021-02-18 10:16:56 +01:00
Vojtech Bubnik 6ea5781709 Fix of Supports printed too slowly. #984
Processing of CoolingBuffer is newly staggered for support layers
until the 1st object layer above supports is received by CoolingBuffer.
2021-02-16 11:30:57 +01:00
Vojtech Bubnik 32db22b77c Fix of Improve Support material adhesion by base type interface layers
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.
2021-02-15 18:07:44 +01:00
Vojtech Bubnik a6bd2d7664 Fix of 3DBed Regression #6029 2021-02-15 09:31:19 +01:00
Vojtech Bubnik 9c568a543c Improving 3MF import: checking for invalid data. 2021-02-12 16:46:49 +01:00
Vojtech Bubnik f5b0f844f2 Commented on the unsigned/signed char CMake changes 2021-02-11 18:02:10 +01:00
Vojtech Bubnik 92d0bc2cfd Fixing EdgeGrid after recent refactoring. 2021-02-11 13:40:15 +01:00
Vojtech Bubnik bdd6685566 Reduction of dead code in FDM infill. 2021-02-11 12:24:10 +01:00
Vojtech Bubnik 9d479fcfb9 Make clang happy about the indentation 2021-02-11 12:06:12 +01:00
Vojtech Bubnik 7f95b280f0 FDM synchronization of front end with back end:
Fixed unnecessary invalidation of already calculated perimeters
if the infill density changes.
Fixed a race condition in invalidation of FDM regions.
2021-02-11 12:03:29 +01:00
Vojtech Bubnik e026ed8718 Experimental: Switching all solid infills from Rectilinear to Monotonic
for regions with Monotonic top infill type.
This should likely implement Monotonic of last layer before ironing #4939
2021-02-11 11:15:14 +01:00
Vojtech Bubnik 039cf8f423 Fix of unnecessary splitting of solid fill surfaces.
This is a regression issue introduced in PrusaSlicer 2.3.0 with
the configurable anchoring.
2021-02-11 10:42:05 +01:00
Vojtech Bubnik d39fd54e4f Fixing one more Win32 warning 2021-02-11 08:42:52 +01:00
Vojtech Bubnik 8049dd1f72 Trying to fix the remaining OSX warnings 2021-02-10 19:07:09 +01:00
Vojtech Bubnik 05a6cfeaea Some more reduction of compiler warnings on MSVC 2021-02-10 18:04:16 +01:00
Vojtech Bubnik db2d78ff21 Reduction on compiler warnings, mainly on MSVC.
Fix of the new gap_fill_enable flag: Take it into account when comparing
regions.
2021-02-10 17:29:07 +01:00
Vojtech Bubnik 6555b32f5c Squashed commit of the following:
commit 61b3ca0b4b4a0b4cfbbc706ede94ef7ccec4c91f
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 15:42:27 2021 +0100

    Fix of fuzzy skin

commit d971ed51a5bb65e8bdfd326bc41b9d7ab2e20834
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:12:51 2021 +0100

    CMake adjustment of MINIMUM_BOOST_VERSION

commit 5d8aa2c59ecf7e32456f2e43e07dedc7d24eb21c
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:12:33 2021 +0100

    Fix of debug compilation after warning removal.

commit 5e339b3078f0c9d75b6fac28ed3c295ae9fbbef5
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date:   Wed Feb 10 14:11:34 2021 +0100

    Fuzzy Skin changes:
    1) Moved the parameters to region
    2) Removed experimental code.
    3) Allowed fuzzyfication of both outer perimeter and holes.
2021-02-10 16:02:43 +01:00
Vojtech Bubnik 32b8a59fa5 Enabling /utf-8 on MSVC.
Hopefully a fix of fix some msvc compile error under Chinese Windows system. #5583
Hopefully it will not break any localization.
2021-02-10 11:05:02 +01:00
Vojtech Bubnik a5972e64fa Fixing compiler warnings: Fixed broken Linux build. 2021-02-09 20:06:08 +01:00
Vojtech Bubnik f61119e02f Yet another clang compiler warning suppressed. 2021-02-09 20:04:11 +01:00
Vojtech Bubnik 2393d64a5a Fixed some OSX Objective C warnings. 2021-02-09 19:51:56 +01:00
Vojtech Bubnik 20456b45e5 Fix of the previous commit (fixing warnings) 2021-02-09 19:46:09 +01:00
Vojtech Bubnik 5e9a8ea700 Fixed some clang warnings 2021-02-09 19:23:58 +01:00
Vojtech Bubnik 770d8b5d08 Finishing the "Iron all surfaces" feature.
Fixes Ironing all solid surface does not seem to work #5703
2021-02-09 18:49:33 +01:00
Vojtech Bubnik 5a638f10cc Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2021-02-09 18:36:36 +01:00
Vojtech Bubnik 2e55898d78 Removal of not numerically robust libraries "poly2tree" and "polypartition".
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"
2021-02-09 18:36:28 +01:00
Vojtech Bubnik 820c18923b Fixed compilation warning 2021-02-09 14:09:16 +01:00
Vojtech Bubnik 672ed99320 Fix of Hilbert Curve Infill: Unable to slice, PrusaSlicer not responding. #5771
Fixed by hard limiting the number of iterations of
reorder_by_two_exchanges_with_segment_flipping()
2021-02-08 17:43:39 +01:00
Vojtech Bubnik 1f5b7fc162 Fix of a selection of default print / filament / sla print / sla material
profile after wizard closes for the first time with the first printer
installed.
2021-02-08 15:56:44 +01:00
Vojtech Bubnik de32992b49 Fix of Fan ramp not correct for layer 1 #5893 2021-02-08 12:43:27 +01:00
Vojtech Bubnik 5449e6c549 Fixing some compiler warnings on Linux 2021-02-08 11:58:03 +01:00
Vojtech Bubnik cbee82dc95 Fix of "infill percentage not changing #5993"
Fix of aa4c018cd5
Infill is a percent, which is a number from 0 to 100, not from 0 to 1.
2021-02-08 11:39:42 +01:00
Vojtech Bubnik aa4c018cd5 Fix of Slicing hangs when Infill Percentage set very low #5910
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.
2021-02-05 17:58:55 +01:00
Vojtech Bubnik c2e956c6d1 3MF and AMF error reporting: Use boost::log instead of printf(). 2021-02-05 15:20:23 +01:00
Vojtech Bubnik 298097c814 Improved robustness of stl_fix_normal_directions(stl_file *stl)
by further C++isation of the legacy C code.
2021-02-05 14:54:05 +01:00
Vojtech Bubnik 828271d016 Improved AMF/3MF security when parsing invalid meshes. 2021-02-05 14:19:51 +01:00
Vojtech Bubnik 5f86d11c74 EdgeGrid refactoring to support both open and closed contours.
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.
2021-02-05 11:21:04 +01:00
Vojtech Bubnik 819a58579e Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2021-02-04 15:48:44 +01:00
Vojtech Bubnik ab6cc7085e WIP Brim improvements:
Fix of connecting the brim polylines: Don't connect closed contours.
Some optimizations, documentation etc.
2021-02-04 15:48:36 +01:00
Vojtech Bubnik d1dfbb31ab WIP: Fixing brim generator unit tests by disabling connect_brim_lines() 2021-02-04 13:59:59 +01:00
Vojtech Bubnik 52a3161018 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2021-02-04 13:06:11 +01:00