Commit Graph
100 Commits
Author SHA1 Message Date
Vojtech Bubnik 2d6b694261 Fix of Place on face:
1) Decreased "gimbal lock" epsilon 10x
2) Got rid of unnecessary back and forth conversions which led to numerical inacurracies

This should fix issues #5172, #5011 and #5398
2020-12-09 06:20:41 +01:00
Vojtech Bubnik 6e3fae3865 Fix of #5319 - presets inherited from renamed presets using the old
preset name in the "inherits" field were losing the "inherits" flag.
2020-12-08 17:45:59 +01:00
Vojtech Bubnik 5f456ebbe7 Merge branch 'lh_avoid_crossing_perimeters' 2020-12-08 13:39:33 +01:00
Vojtech Bubnik ca2691c67c Fix for OSX 2020-12-08 10:49:30 +01:00
Vojtech Bubnik c7aee35552 Merge of Fix proposal for crash on rectilinear #5399 2020-12-08 08:45:16 +01:00
Vojtech Bubnik 6fe0b09a04 Fixes "Add instance" and "Remove instance" hotkeys don't work when object is selected via de object browser #5350
Captures the +- hotkeys in the object list to add / remove an instance.
2020-12-08 08:30:15 +01:00
Vojtech Bubnik 3e22b39a42 Improved error handling when loading invalid preset bundle. Improves
Import Configuration bundle can fail if profile names have spaces at the end #5291
2020-12-07 21:10:20 +01:00
Vojtech Bubnik 59d9f35439 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-12-07 19:47:57 +01:00
Vojtech Bubnik ffea00454e Fixed missing include. 2020-12-07 19:47:37 +01:00
Vojtech Bubnik c7586e5713 Fix of Command line slicing bad gcode #5029
SL1 file was exported with a .gcode suffix if the user did not provide
output file name for SLA command line slicing.
2020-12-07 18:39:33 +01:00
Vojtech Bubnik b27e18c970 Fix of fill_pattern handling in the GUI with 100% infill off-by-one #4999 2020-12-07 17:52:45 +01:00
Vojtech Bubnik 333577b905 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-12-07 17:09:11 +01:00
Vojtech Bubnik 780418435a Fix of Custom profiles prevent the slicer from starting up #4996
Creative user made a profile inherit from itself.
2020-12-07 17:09:02 +01:00
Vojtech Bubnik 82dfb990ef Fix of [BUG]Post-Processing Scripts not called while slicing from command line #4903 2020-12-07 15:21:36 +01:00
Vojtech Bubnik b909ce7a3d Fix of [BUG]Environment variables not all exported while calling Post-Processing Scripts #4901 2020-12-07 14:59:36 +01:00
Vojtech Bubnik 8bf55273c3 fix of incorrect keyboard prefix shown on OSX for Arrange edit field
Arrange Options dialogue improvement request #5217
2020-12-07 10:02:31 +01:00
Vojtech Bubnik 44dacdd4f8 Manual merge of fix png alpha channel support for gtk3 #5298 2020-12-07 09:20:12 +01:00
Vojtech Bubnik ac05849582 Bumped up version number 2020-12-05 12:00:38 +01:00
Vojtech Bubnik 625e69a199 Fixed typo (incopatible -> incompatible) 2020-12-05 10:56:58 +01:00
Vojtech Bubnik f904752ba7 Fix of install wizard: Escape ampersands in printer models. 2020-12-05 09:55:09 +01:00
Vojtech Bubnik 575ec6ef65 Linux specific: Documented an improved way of offering language
selection on Linux.
2020-12-05 09:12:28 +01:00
Vojtech Bubnik 9b05513ea9 Fix of rework of loading configs from 3MFs, AMFs, gcodes
as modifications of existing user or system presets.
2020-12-05 08:14:04 +01:00
Vojtech Bubnik 9c959d14e0 Limiting the resolution of G-code export for retract/deretract feedrate
to three digits.
Fixes excessive precision in gcode? #5362
2020-12-04 13:37:36 +01:00
Vojtech Bubnik efc1100eb0 Fixed missing include 2020-12-04 13:37:36 +01:00
Vojtech Bubnik 6981372da0 Fixed missing include (OSX - clang specific) 2020-12-04 13:17:30 +01:00
Vojtech Bubnik 4f4d136f19 Fix of cooling preset hints 2020-12-04 13:05:25 +01:00
Vojtech Bubnik 0688778a24 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-12-04 11:53:29 +01:00
Vojtech Bubnik e1fc0b17a2 Ramp up layer cooling fan over X layers #848
Fan speed will be ramped up linearly from zero at layer disable_fan_first_layers
to maximum at layer full_fan_speed_layer. full_fan_speed_layer will be
ignored if lower than disable_fan_first_layers, in which case
the fan will be running at maximum allowed speed at layer
disable_fan_first_layers + 1.;

WIP: The cooling PresetHints are likely not finalized yet.
2020-12-04 11:53:02 +01:00
Vojtech Bubnik e42e25c933 1) Storing the physical_printer_settings_id into the 3MF, AMF, GCode.
2) Activating the physical_printer_settings_id when loading from 3MF, AMF, GCode.
   The physical printer is only activated if it references the printer_settings_id
   loaded from the same file.
3) When loading the presets from 3MF, AMF, GCode, the "external" profiles
   are no more created for profiles which differ from the local profiles
   the loaded profiles reference. Instead, the referenced profile is activated
   and modified with the loaded preset. If the referenced profile does not
   exist, but the profile refers to a system profile with the "inherits"
   fileds, the system profile is loaded and modified instead.
   This works for all profiles with the exception of multi-extruder
   printer with multiple filament profiles modified. In that case
   the first modified filament profile will be loaded as modified,
   while the other modified profiles will be loaded as "external".

This should fix
Physical printer + 3mf file, wrong preset used to generate gcode #5178
and possibly
https://github.com/prusa3d/PrusaSlicer/issues/5272
2020-12-04 10:48:51 +01:00
Vojtech Bubnik dea4c13677 Revert "Fix of Proxy secured print host URL. Special character on password #4187"
The whole URL line was incorrectly escaped including the http:// prefix,
which is not correct.
This reverts commit 1b720dbc3d.
2020-12-03 14:20:04 +01:00
Vojtech Bubnik 6fd1143b1c Fix of Unexpected Behavior @ Application Open and When GCODE is Generated #5254
Icon not loaded from the exe on Windows.
2020-12-03 14:14:40 +01:00
Vojtech Bubnik 3dd9b8c718 Further improvement error reporting with buggy custom G-code sections #1516
1) The macro-processor sanitizes the source code line for invalid UTF-8
   characters. Ideally these invalid characters would be replaced with ?,
   they are just dropped as of now. Better than showing an empty string
   when converting to wxString though.
2) G-code export collects full error message for 1st occurence of an error
   for each custom G-code block.
3) The composite error message now displays the errors collected in 2).
4) The error window is now scaled bigger and the Slicer logo is smaller
   if the text is to be rendered with monospaced font, as the monospaced
   text will not be word wrapped.
2020-12-03 12:50:24 +01:00
Vojtech Bubnik 306acbdfb4 Improvement of Improve error reporting with buggy custom G-code sections #1516
Errors in the file output templates are reported in mono-spaced font,
so that the arrow character ^ is displayed at the right column
pointing to the offending spot.
2020-12-03 11:03:16 +01:00
Vojtech Bubnik 0a33aedc3a Documentation of OctoPrint behind HAProxy with basic auth enabled
in the print_host tooltip.
Improves Feature request: support for basic auth for octoprint #650
2020-12-03 08:22:55 +01:00
Vojtech Bubnik 1b720dbc3d Fix of Proxy secured print host URL. Special character on password #4187
A raw URL was passed to libcurl, while it should have been URL encoded.
2020-12-03 08:07:13 +01:00
Vojtech Bubnik 597a158a6e Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-12-03 07:30:26 +01:00
Vojtech Bubnik 4412ba0f92 Fixes Spelling Error in Unsaved changes dialog (#5363) 2020-12-03 07:30:06 +01:00
Vojtech Bubnik 89ff8eef10 Preview class refactoring: Moved initialization of member variables
to header.
2020-12-02 11:38:10 +01:00
Vojtech Bubnik fa24d598a7 The new OSX 11 (Big Sur) is not compatible with wxWidgets 3.1.3.
Let's use patched wxWidgets 3.1.4, even though it is not quite tested.
Use the tested patched wxWidgets 3.1.3 everywhere else.
2020-12-01 16:54:20 +01:00
Vojtech Bubnik cef9985b93 Follow-up to 1719a9b3d1:
Only disable NEON extension for Apple ARM builds, leave it enabled for Raspberry PI.
2020-12-01 16:49:47 +01:00
Vojtech Bubnik 9f77335d8a Updated Catch2 to v2.13.3 to support compilation on OSX11 / ARM 2020-12-01 16:48:59 +01:00
Vojtech Bubnik 6af23eb380 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-12-01 08:24:00 +01:00
Vojtech Bubnik e62bb4a7c7 Fix of Head crash on completion with sequential printing #5349
In addition to an existing "layer_z" placeholder variable,
a new "max_layer_z" has been added to custom G-code sections accumulating
maximum of "layer_z" over the print. This value may be used for example
in the end G-code of a sequential print to lift the print head
up before travel over the whole print bed.
2020-12-01 08:23:46 +01:00
Vojtech Bubnik 2e73a75951 Linux specific fix for switching languages: PrusaSlicer 2.3 forces
en_GB locale when switching to English from the user interface,
while often Linux users have just en_US locales configured.

With this commit the user will have to select English (U.S.) or
English (U.K.). Usually English (U.S.) will work.

Vojtech is scared to touch the code for the other platforms (Windows and Mac)
as the language switching has been reworked multiple times and it is quite
fragile.
2020-11-30 11:57:16 +01:00
Vojtech Bubnik 00f900edef Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-11-30 08:50:07 +01:00
Vojtech Bubnik 518cbfa192 Renamed API key / user/password auth choices for SL1 2020-11-30 08:49:09 +01:00
Vojtech Bubnik 30d7ef2cf9 Bumped up version number to beta1.
Changed the location of PrusaSlicer profiles from PrusaSlicer-alpha
to PrusaSlicer-beta.
2020-11-28 11:14:53 +01:00
Vojtech Bubnik 3dd6d7e878 Escaping of ampersands in label texts (otherwise the ampersand is
processed as a hotkey prefix and not displayed at all).
Solves visualization of the new profile names containing ampersands
(Original Prusa Mini & Mini+)
Also the text was not correcly converted from UTF8.
2020-11-28 11:13:46 +01:00
Vojtech Bubnik 2314a9e8c7 Fixing compilation issues on conforming compilers 2020-11-26 10:54:18 +01:00
Vojtech Bubnik aa6ddfec85 Added functions to export raw image data to PNG for debugging purposes.
Renamed PNGRead.cpp/hpp to PNGReadWrite.cpp,hpp
EdgeGrid: Resurrected debugging output to PNG.
2020-11-26 09:01:44 +01:00
Vojtech Bubnik 3e54c0b775 Gyroid infill: Lowered the threshold to drop infill line segments. 2020-11-25 14:56:11 +01:00
Vojtech Bubnik e5b3af0e53 Fix of Monotonic infill leaves gaps in top infill where rectilinear does not #5259
and Chyba nebo vlastnost výplně Monotonic? #5225
2020-11-25 14:56:11 +01:00
Vojtech Bubnik 62bdc192d8 Fix of [2.3.0-alpha4] Crash - several models cause crash when slicing #5208
Fixed some issues in internal anchors of the Adaptive Cubic infill.
The ugly and dangerous implicit casting operators in Line, MultiPoint,
Polyline and Polygon were made explicit.
2020-11-24 16:01:08 +01:00
Vojtech Bubnik 3a75b0da7f Update of the perimeter_acceleration tooltip 2020-11-23 09:13:58 +01:00
Vojtech Bubnik 641d27eef4 Fixed missing include 2020-11-21 16:05:58 +01:00
Vojtech Bubnik 7527797a36 Bumped up version number 2020-11-21 15:59:02 +01:00
Vojtech Bubnik f0606c2a76 Merge of https://github.com/prusa3d/PrusaSlicer/pull/2856
Add aligned rectilinear infill functionality by @m-schubert
Implements [Feature Request] Aligned rectilinear infill #1938
2020-11-21 14:10:17 +01:00
Vojtech Bubnik 25ca1fcf77 Some minor refactoring / polishing. 2020-11-21 13:16:03 +01:00
Vojtech Bubnik 288dbfd0d8 fixed typo in comment & formatting 2020-11-21 11:43:54 +01:00
Vojtech Bubnik ddc9e26f19 Follow-up to 80e8b5e985
Removed the legacy PreviewData.cpp,hpp
2020-11-21 11:02:20 +01:00
Vojtech Bubnik 56c37d5c38 Make monotonic infill default for bottom layers as well #4963 2020-11-20 18:58:54 +01:00
Vojtech Bubnik 54a5c1da1e Fixed crash in reworked infill anchoring due to numeric issues.
Added some more asserts to EdgeGrid.
2020-11-20 18:47:06 +01:00
Vojtech Bubnik d5e6b17d70 Merge branch 'master' of https://github.com/Prusa3D/PrusaSlicer 2020-11-20 13:40:40 +01:00
Vojtech Bubnik 8d1e13fccd Anchoring of sparse infills can now be disabled. 2020-11-20 13:36:58 +01:00
Vojtech Bubnik 060f1d48c1 Little more refactoring. 2020-11-20 11:56:40 +01:00
Vojtech Bubnik ee932e4364 Merge branch 'lh_avoid_crossing_perimeters' of https://github.com/Prusa3D/PrusaSlicer into lh_avoid_crossing_perimeters 2020-11-17 15:35:58 +01:00
Vojtech Bubnik f206b743fd Avoid crossing perimeters: Further refactoring for clarity, code review. 2020-11-17 15:34:50 +01:00
Vojtech Bubnik 656b90dbe5 Avoid crossing perimeters: Further refactoring for clarity, code review. 2020-11-17 15:23:05 +01:00
Vojtech Bubnik 62ab17bf6e AvoidCrossingPerimeters: Refactored for better encapsulation. 2020-11-17 10:42:27 +01:00
Vojtech Bubnik 04c2fde671 Removed the old motion planner. 2020-11-17 09:33:30 +01:00
Vojtech Bubnik 620f94331c fix of OSX build: workaround of non-standard std::optional 2020-11-16 13:44:15 +01:00
Vojtech Bubnik a864d584a6 Fillers: Renamed Rectilinear2 to Rectilinear. 2020-11-16 13:24:57 +01:00
Vojtech Bubnik 2249e5d4b2 Renamed FillRectilinear.cpp,h to FillLine.cpp,h 2020-11-16 13:17:18 +01:00
Vojtech Bubnik db05f00860 Fixing compilation issues. 2020-11-16 13:11:58 +01:00
Vojtech Bubnik 812cbade4d Fills:
1) New algorithm for connecting along the perimeters is now applied
   to Honeycomb, Hilbert and similar planar filling curves.
2) The old expensive path chaining is not applied if the new algorithm
   to connect along the perimeter lines is called afterwards.
2020-11-16 12:51:51 +01:00
Vojtech Bubnik e9fa36ea7d Fillers: Removal of old FillRectilinear, using of "override" instead
of "virtual" where applicable.
2020-11-16 11:16:44 +01:00
Vojtech Bubnik e77fc43159 Merge remote-tracking branch 'remotes/origin/master' into lh_adaptive_infill_hooks 2020-11-16 10:54:19 +01:00
Vojtech Bubnik 4280fdb5f2 Reworked connection of infill lines to perimeter lines.
Added a new "infill_anchor" parameter.
2020-11-16 10:54:00 +01:00
Vojtech Bubnik 84693a5810 New get_extents(const std::vector<Points> &pts),
refactored Lian Barsky line clipping
2020-11-16 10:20:47 +01:00
Vojtech Bubnik 32362cff0b SVG export: Implemented flipping in Y axis. Now flipped by default
to match the 3D print paths view when looking at the print from the top.
2020-11-16 10:18:51 +01:00
Vojtech Bubnik 4d102ac8ca FillAdaptive:
1) More accurate trimming of an anchor with another infill line
   or by another anchor line.
2) Trimming of very short infill lines, which are not anchored,
   by another infill lines.
2020-11-11 16:49:11 +01:00
Vojtech Bubnik 26836db629 FillAdaptive: Handling of a special case when the infill lines
touch at their ends.
2020-11-11 11:51:26 +01:00
Vojtech Bubnik decda76344 AdaptiveInfill:
1) Shortening the anchor lines when touching another infill line
   to avoid over extrusion.
2) Reduction of the Intersection structure complexity by referencing
   the source lines.
2020-11-10 15:54:32 +01:00
Vojtech Bubnik 89df9c1038 Improvement of AdaptiveFill:
1) Merging of collinear infill lines separated by a thin gap created
   by trimming with the boundary polygon.
2) Sorting of the T-joints separately to the left / right of the common
   line.
3) Trimming self intersections of the anchor lines.
4) Dropping of very short segments, not anchoring short segments.
2020-11-10 13:56:12 +01:00
Vojtech Bubnik 517477f0dd Fix of the previous Adaptive Cubic infill refactoring
plus couple of fixes of the old logic.
2020-11-06 16:24:15 +01:00
Vojtech Bubnik 139b58a6f2 Adaptive Cubic infill with anchors: Trimming anchors with not only
with a neighbor T-joint line, but also with other crossing lines.
2020-11-06 08:56:53 +01:00
Vojtech Bubnik 239d588c5d 1) Implemented anchoring of infill lines to perimeters with length
limited anchors, while before a full perimeter segment was always
   taken if possible.
2) Adapted the line infills (grid, stars, triangles, cubic) to 1).
   This also solves a long standing issue of these infills producing
   anchors for each sweep direction independently, thus possibly
   overlapping and overextruding, which was quite detrimental
   in narrow areas.
3) Refactored cubic adaptive infill anchroing algorithm
   for performance and clarity.
2020-11-05 17:32:40 +01:00
Vojtech Bubnik 414fdaefc5 Merge remote-tracking branch 'remotes/origin/master' into lh_adaptive_infill_hooks 2020-11-03 15:07:38 +01:00
Vojtech Bubnik 9e545eba13 Fixed quadratic complexity of the time estimator post processor
with a constant complexity (amortized) code.
2020-10-30 09:13:04 +01:00
Vojtech Bubnik 5ccd9d9d9a Fixed previous commit for Linux/OSX 2020-10-29 13:16:32 +01:00
Vojtech Bubnik 3cfccf1a5a Fixed unit tests broken with 3502f256fa 2020-10-29 12:39:03 +01:00
Vojtech Bubnik 1fd54ec28f Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-10-29 11:40:35 +01:00
Vojtech Bubnik 2fd7c20a86 Workaround for missing or partially implemented std::from_chars() 2020-10-29 11:37:45 +01:00
Vojtech Bubnik 50b603df5d Optimized for reduced memory allocation and clarity. 2020-10-29 11:37:28 +01:00
Vojtech Bubnik 9f11cab092 Workaround for missing or partially implemented std::from_chars() 2020-10-29 11:31:59 +01:00
Vojtech Bubnik d2e5be89e3 Fix of Slicer image not good #4992
Tighter parsing of PrusaSlicer's own G-code annotations
to avoid clashes with comments inside user G-codes.

Also the GCodeReader was extended to return string_views instead
of copying a substring, and the GCodeProcessor was partially adapted
to string_views.
2020-10-29 10:51:51 +01:00
Vojtech Bubnik bb74d2da5b Removed the dead code GCode/Analyzer.cpp,hpp to simplify code navigation. 2020-10-28 17:26:08 +01:00
Vojtech Bubnik 7b2aca0159 Removed the legacy GCodeTimeEstimator.cpp,hpp
It was difficult to navigate through the live code with the dead code
still available for full search.
2020-10-28 17:19:43 +01:00
Vojtech Bubnik 502aa42ac0 Removed FillRectilinear3, it was a dead end. 2020-10-28 13:33:22 +01:00
Vojtech Bubnik cfbc9f0845 Fix of previous commit. 2020-10-28 11:11:58 +01:00