Commit Graph
100 Commits
Author SHA1 Message Date
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 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
Vojtech Bubnik eb103e45a6 Revert of d29a82e944 2020-10-28 11:11:58 +01:00
Vojtech Bubnik afaa7a4cc2 Manual merge of Increased filament stats precision in generated gcode file #780 2020-10-28 10:46:59 +01:00
Vojtech Bubnik 7c06054904 Manual merge of Unmount message enhancement #4523 2020-10-28 10:09:47 +01:00
Vojtech Bubnik 7c571c1d9d Merge of pull request Add support for RepetierServer #4384 by @docbobo
with the following refactorings:

1) Removed the "printhost_slug" config from the Printer config
   and from all the Printer config related spots.
2) "printhost_slug" renamed to "printhost_port". Slug sounds nasty.
3) Improved error reporting of RepetierHost class.
4) Refactored for the new "Physical Printers"

Following refactorings were done independently of the Repetier pull request:
1) Removed PrintHost static print config.
2) Clean-up after conversion of print host configuration
   from Printer config to Physical Printer config.
3) Fixed some issues, where the Printer config was still queried for
   host configuration. Vojtech believes that this should not happen
   after the host configuration is converted to physical printers.

Vojtech still feels that more refactoring is needed in regard to porting
the host configuration from Printer profile to the new Physical Printer
profile.
2020-10-28 09:51:05 +01:00
Vojtech Bubnik 06c16b085d Snapshots extended to capture and restore sla_print, sla_material,
physical_printers.
Updated the snapshots dialog to display sla_print and sla_material.
Updated the snapshots dialog to display physical_printer instead of
printer if the physical_printer key is nonempty.
The "physical_printer" key was moved from [extras] to [presets] section
of PrusaSlicer.ini
2020-10-27 12:48:31 +01:00
Vojtech Bubnik 751ae8e789 Fixed crash in monotonous infill due to some unexpected pinching
of the inner contour at a single vertical infill line without
pinching the outer contour.
2020-10-27 09:38:51 +01:00
Vojtech Bubnik ce020781d3 Refactored loading of Get/SetThreadDescription() on Windows:
These new API functions are not available on Windows 7 and on older Windows 10,
thus they are newly loaded dynamically and the functions using it retur
a bool indicating whether the functionality is supported or not.
Also the OSX variants that are not supported newly return false instead
of throwing an exception.

Fixes #4972 #4974
2020-10-26 08:09:17 +01:00
Vojtech Bubnik b8e77e4d30 Bumped up version number 2020-10-24 17:39:31 +02:00
Vojtech Bubnik d716a608e3 Documentation of CMAKE_INSTALL_FULL_DATAROOTDIR in CMakeLists.txt 2020-10-24 17:38:11 +02:00
Vojtech Bubnik e1f6bb4a92 Follow up on Add G10 temperature G-code support for the RepRapFirmware flavour.
Reduced copy / paste.
2020-10-24 17:32:30 +02:00
Vojtech Bubnik ebdf2acd03 Follow-up to
Use https in config update URLs

	http://files.prusa3d.com/* always redirects to HTTPS so use https scheme
    directly.

The pull request broke updates to those who installed configs with
http://, not https:// prefix.
2020-10-24 16:35:34 +02:00
Vojtech Bubnik 9a4376ddc6 Fix of previous commit 2020-10-22 17:54:32 +02:00
Vojtech Bubnik b1b7a5ad1b Fix of ironing invalidation. Fixes
Ironing flag ignored on infill rotate #4937
Ironing does not take effect when you change Top Fill Pattern. #4900
Ironing layer not shown in preview when settings are changed #4510
2020-10-22 17:36:51 +02:00
Vojtech Bubnik 027ab4fb02 GUI initialization extracted from PrusaSlicer.cpp to GUI_Init.cpp/hpp.
Implemented try/catch blocks for Slic3r exceptions and std::exceptions
with GUI error reporting. This is extremely important to report
corruption of PrusaSlicer.ini.
2020-10-22 16:28:55 +02:00
Vojtech Bubnik d8f45ff1d8 Workarounds and documentation of OSX posix incompatibilities 2020-10-22 14:57:50 +02:00
Vojtech Bubnik 723406dfea Workaround for OSX non-compliant implementation of
pthread_getname_np / pthread_setname_np
2020-10-22 14:45:15 +02:00
Vojtech Bubnik 0d2c31d0e4 and again a fix on Windows 2020-10-22 14:35:20 +02:00
Vojtech Bubnik 6e2a5419cc Fixes of previous commit on Posix platforms 2020-10-22 14:29:40 +02:00
Vojtech Bubnik 81b6883710 Thread names shortened to 15 characters to fit Posix norm.
Added get_current_thread_name()
2020-10-22 14:11:08 +02:00
Vojtech Bubnik 6531061d09 Support for naming slicer own threads for debugging.
The following threads are named with this commit:
slic3r_main, slic3r_BackgroundSlicingProcess,
slic3r_tbbpool_xx_yy where xx is a one based index of the TTB thread
and yy is the platform thread ID.
2020-10-22 13:54:15 +02:00
Vojtech Bubnik acbf25681a Wifi Duet upload: Improved some string copying. 2020-10-21 14:42:08 +02:00
Vojtech Bubnik 70e44c3e8e Fixed definition of psSlicingFinished to fix notification updates
after the slicing finishes.
2020-10-21 14:00:56 +02:00
Vojtech Bubnik 3e50699576 Renamed Line::offset to extend
Don't use unscaled constants! What if the scaling constant changes
in the future?
2020-10-20 09:17:26 +02:00
Vojtech Bubnik f1c9d39302 Unifying "unretraction" and "deretraction" #3862
Deretraction or unretraction? #3541
2020-10-17 21:23:31 +02:00
Vojtech Bubnik bb79966ddb Bumped up version number 2020-10-17 14:17:33 +02:00
Vojtech Bubnik 8a1eba5a09 Improved wording and localization of the Unsaved Changes Dialog. 2020-10-17 14:04:11 +02:00
Vojtech Bubnik c2f5cef8a4 Reverted the "single_instance" condition check, David thinks
the old way is correct.
2020-10-17 12:57:02 +02:00
Vojtech Bubnik 7896de892b Fix of the "dock" menu on OSX to start a new instance of PrusaSlicer
in case a single instance is disabled.
Make the "single_instance" enabled by default on OSX initially
to match the platform.
2020-10-17 09:23:05 +02:00