Commit Graph
100 Commits
Author SHA1 Message Date
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
Vojtech Bubnik 86ee8e7687 Improved matching of Print and Filament profiles after switching the Printer
profile. The matching has the following priority:

1) Compatible Print profile with the same logical name aka alias.
2) Prefered Print profile with the same layer height.
3) Compatible Print profile with the same layer height.
4) Prefered Print profile.
5) Any compatible profile.

The same logic applies to the selection of Filament profile, only
a filament_type is compared, not the layer height.
2020-10-16 16:03:31 +02:00
Vojtech Bubnik d49a98f154 When switching Printer profiles, a profile with the same logical name
aka alias is searched for first before activating the default
print / filament profile as configured in the printer settings.
2020-10-16 14:45:54 +02:00
Vojtech Bubnik 54cbf2abc3 Refactoring of UnsavedChangesDialog:
Use std containers instead of wxWidgets containers.
Use unique_ptr for memory management.
2020-10-16 12:20:57 +02:00
Vojtech Bubnik a8fda7d2f1 Fixed some more issues in copy / paste of objects and volumes
due to the layer_height_profile, paint on supports and seam
being stored as an object on its own onto the Undo / Redo stack.
2020-10-15 17:29:49 +02:00
Vojtech Bubnik a009b24124 Updated textation of the Filament selection config wizard page. 2020-10-15 14:16:53 +02:00
Vojtech Bubnik d30808c36c Merge branch 'master' of https://github.com/Prusa3D/PrusaSlicer 2020-10-15 13:35:53 +02:00
Vojtech Bubnik 90ddffa83c This broke the SLA support point generator test. Why? 2020-10-15 13:35:45 +02:00
Vojtech Bubnik c388c42055 Fixed assignment of the slicing timestamp to the slicing finished
notification.
2020-10-15 12:02:55 +02:00
Vojtech Bubnik b25548594d Notifications:
Revert of substitution of boost::bind with std::bind, does not compile
on all platforms.
Further polishing and documentation.
2020-10-15 09:56:40 +02:00
Vojtech Bubnik 87206cd695 NotificationManager documentation improvements 2020-10-15 09:20:05 +02:00
Vojtech Bubnik 19a115260a A little bit cheaper triangle random sampling + documentation. 2020-10-15 07:58:13 +02:00
Vojtech Bubnik cc7eaef493 Fix of Cmd line output does not always show correct output file name #4872 2020-10-15 07:54:01 +02:00
Vojtech Bubnik 263759aca6 Fix of Compile error in InstanceCheck.cpp on Linux (#4877) 2020-10-15 07:45:36 +02:00
Vojtech Bubnik adeab9b460 Fixed bugs introduced in refactoring of NotificationManager. 2020-10-14 17:51:51 +02:00
Vojtech Bubnik 74f1be5d35 Merge branch 'master' of https://github.com/Prusa3D/PrusaSlicer 2020-10-14 17:21:40 +02:00
Vojtech Bubnik 607c237749 NotificationManager: Removed space reservation for "Slope visualization"
dialog, which is gone.
2020-10-14 17:19:11 +02:00
Vojtech Bubnik 2aa76063a1 NotificationManager: Removed space reservation for "Slope visualization"
dialog, which is gone.
2020-10-14 17:17:14 +02:00
Vojtech Bubnik 447f4b8303 Polishing of NotificationManager:
Fixed pairing of PrintObjects with slicing warning notifications.
Removed or commented out dead code.
Added documentation.
2020-10-14 16:49:06 +02:00
Vojtech Bubnik cadebab07b Notifications refactoring: Reusing ImGUI windows, commenting out dead code. 2020-10-14 14:18:04 +02:00
Vojtech Bubnik dd2cd62a4f WIP Review of NotificationManager: Fixed some typos, added some comments. 2020-10-14 12:57:40 +02:00
Vojtech Bubnik e0c5309bc3 wxEVT_CREATE and wxEVT_ACTIVATE is not being called on the main frame
on application start-up, at least not on Windows.
wxEVT_CREATE was called for some control deep in the Plater, however
the event was delivered to the main frame and only for slicer, not
for G-code viewer. Thus the callbacks for 3D Mouse were not registered
for and the 3D mouse did not work on Windows.

Fixed by calling the callback registration from the first execution
of the Idle function.
2020-10-14 12:55:07 +02:00
Vojtech Bubnik afa31433d1 Notification manager refactoring: Use unique_ptr for management
of dynamic data.
2020-10-13 16:08:19 +02:00
Vojtech Bubnik 22755b31e3 Notification manager: Moved private definitions to private section. 2020-10-13 15:32:41 +02:00
Vojtech Bubnik 8c0b8f89d0 Updated the command line single-instance processing and help text.
Updated escaping of the command line arguments when passed to the other
instance.
2020-10-12 17:06:03 +02:00
Vojtech Bubnik 2385c0c2e8 Changed wording of "Revert from imperial units" 2020-10-12 11:37:43 +02:00
Vojtech Bubnik 95af708171 Removed m_ prefix from public member variables. 2020-10-09 13:09:21 +02:00
Vojtech Bubnik 170fe23b46 Fixing Undo / Redo issues after copy / paste due to not updating
ObjectIDs of support painting / seam painting / layer height profile.
2020-10-09 12:26:28 +02:00
Vojtech Bubnik ecff5893d6 Updates of Anycubic and Creality profiles by @rtyr 2020-10-08 10:39:58 +02:00
Vojtech Bubnik e9d6e6ac8f Fix of previous commit 2020-10-07 13:01:48 +02:00
Vojtech Bubnik ce3c31e77e Support symlinks to prusaslicer binary on OSX and Linux. 2020-10-07 12:54:56 +02:00
Vojtech Bubnik 26b95e3c3c Legacy conversion of "monotonous" to "monotonic" 2020-10-07 09:38:36 +02:00
Vojtech Bubnik 89935751ac OSX: Disabling the placeholder menu over the docker icons. 2020-10-06 16:42:46 +02:00
Vojtech Bubnik 44565315bf OSX: Clean-up of opening as G-codeviewer on startup. 2020-10-06 15:43:21 +02:00
Vojtech Bubnik eed45eddd6 OSX specific: Switching to a G-code viewer if the Finder opens Slicer
with a G-code file argument.
2020-10-06 15:09:38 +02:00
Vojtech Bubnik e407b79c94 Docker icon on OSX 2020-10-06 12:05:05 +02:00
Vojtech Bubnik cbf36de600 Typo in machine limits usage text. 2020-10-06 11:08:08 +02:00
Vojtech Bubnik 6acc1fc112 WIP: Opening a G-code in PrusaSlicer at Drag & Drop onto
the application icon in Finder.
2020-10-06 11:07:49 +02:00
Vojtech Bubnik ecade4ac23 Fixed limitation of acceleration values written into G-code
in case the machine limits are disabled.
2020-10-06 10:24:06 +02:00
Vojtech Bubnik 67d0072bc8 Open G-code viewer on drag & drop to the slicer window. 2020-10-06 08:50:58 +02:00
Vojtech Bubnik dc99bb7617 OSX: Changing gcode in Info.plist to Viewer mode, not Editor 2020-10-05 17:25:27 +02:00
Vojtech Bubnik 7fbdda9080 Renamed monotonous infill to monotonic. 2020-10-05 16:38:28 +02:00
bubnikv 8df01818dd Limiting the application of Machine Limits
https://github.com/prusa3d/PrusaSlicer/issues/1212

WIP: The hints do not rescale when switching the "usage" combo box.
The new g-code time estimator needs to be updated to not read
the machine limits if not enabled.
2020-10-02 17:32:03 +02:00
Vojtech Bubnik 94a9820661 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-10-01 20:12:50 +02:00
bubnikv 50293c0f86 Fixing a missing include on Windows. 2020-10-01 20:15:40 +02:00
Vojtech Bubnik ee58ab4e2d Merge branch 'vb_optgroup_refact' 2020-10-01 20:05:31 +02:00
bubnikv f35efb8fe5 Win32 specific: Workaround for tooltips over Tree Controls displayed
over excessively long tree control items, stealing the window focus.

In case the Tab was reparented from the MainFrame to the floating dialog,
the tooltip created by the Tree Control before reparenting is not reparented,
but it still points to the MainFrame. If the tooltip pops up, the MainFrame
is incorrectly focussed, stealing focus from the floating dialog.

The workaround is to delete the tooltip control.
Vojtech tried to reparent the tooltip control, but it did not work,
and if the Tab was later reparented back to MainFrame, the tooltip was displayed
at an incorrect position, therefore it is safer to just discard the tooltip control
altogether.
2020-10-01 19:58:23 +02:00
Vojtech Bubnik b17c829c9a Fixed crash on Linux on startup 2020-10-01 19:16:23 +02:00
bubnikv 0bdfb6ab92 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-10-01 15:12:19 +02:00
bubnikv b71e5c2763 Maybe one day we will be able to run PrusaGCodeViewer, but for now the Apple notarization
process refuses Apps with multiple binaries and Vojtech does not know any workaround.
Just run PrusaSlicer and give it a --gcodeviewer parameter.
2020-10-01 15:11:56 +02:00
bubnikv e8325a8e2d Fixes of DPI scaling on Windows. 2020-09-30 14:02:23 +02:00
bubnikv 82b86d2c65 New 3rd party printer profiles, prepared by @rtyr
Anycubic (5 printers from 3 contributors)
https://github.com/prusa3d/PrusaSlicer/pull/4057
https://github.com/prusa3d/PrusaSlicer/pull/4220
https://github.com/prusa3d/PrusaSlicer/pull/4619
TriLAB
https://github.com/prusa3d/PrusaSlicer-settings/pull/100
Creality
based on https://github.com/prusa3d/PrusaSlicer/pull/4485
https://github.com/prusa3d/PrusaSlicer/pull/4748
2020-09-29 18:07:18 +02:00
bubnikv ab0890ed34 Merge remote-tracking branch 'remotes/origin/vb_modelobject' 2020-09-29 16:31:18 +02:00
bubnikv 2583522e43 Refresh the page tree immediately after key press. 2020-09-29 14:47:03 +02:00
bubnikv b15023dfa9 Cancellation of parameter page build process. 2020-09-29 13:36:56 +02:00
bubnikv ec8602f8d9 Faster switching of parameter pages if the page is switched
by cursor keys in the tree control:
The page update is delayed to idle.
2020-09-29 11:04:25 +02:00
Vojtech Bubnik e0b0a2cdcf Fix of previous commit. 2020-09-24 20:32:52 +02:00
Vojtech Bubnik 7a799be426 DynamicPrintConfig::normalize() renamed to normalize_fdm(),
optimization of Print::apply()
2020-09-24 19:03:33 +02:00
Vojtech Bubnik 8f04a76337 Final fix of Perl bindings 2020-09-24 14:52:05 +02:00