Commit Graph
100 Commits
Author SHA1 Message Date
Vojtech Bubnik 81b809f2a1 Fixed broken compilation of Perl bindings. 2020-06-16 14:39:08 +02:00
Vojtech Bubnik 851ebc7991 fix of previous commit, missing include 2020-06-16 14:00:25 +02:00
Vojtech Bubnik b101a8e266 Fixes of the offset curves from Voronoi diagram.
The offset curve extractor is already quite usable,
though singular cases are still not covered yet
when the offset curve intersects or nearly intersects
a Voronoi vertex.

Removal of the PRINTF_ZU "%zu" Visual Studio printf compatibility macro.
Fixes of a contours self intersection test for collinear segments.
SVG exporter now exports white background, so that the GNOME Eye viewer is usable.
2020-06-16 13:15:48 +02:00
Vojtech Bubnik 1c95ceaeaa Reworked algorithm for Voronoi Offset curve extraction.
Now the algorithm is very different from the OpenVoronoi implementation
and hopefully it is now correct (save numerical issues, which will be
a big PITA).
2020-06-11 16:11:02 +02:00
Vojtech Bubnik 1e3290fee1 Reduced ugly copy / paste for ENABLE_OPENGL_ERROR_LOGGING 2020-06-04 15:53:58 +02:00
Vojtech Bubnik 3e0e537b7a Offset curve from a Voronoi diagram: Fixed distance calculation
to a bisector of two segments.
2020-06-04 15:34:35 +02:00
Vojtech Bubnik 6f4d24ab95 WIP: Generating offset curves with properly rounded corners from
a Voronoi diagram. Curve extraction is based on the OpenVoronoi implementation.
2020-06-04 13:50:09 +02:00
Vojtech Bubnik b8267a5f6f G-code placeholder parser - new values:
print_bed_min, print_bed_max, print_bed_size
calculated from a bounding box of bed_shape vector of points.

Also added first_layer_print_size as a size of a first layer print
bounding box.
2020-06-03 16:30:37 +02:00
Vojtech Bubnik 6529543518 WIP: first_layer_print_min/max, first_layer_print_convex_hull
placeholders for the G-code export.
2020-06-03 16:30:37 +02:00
Vojtech Bubnik 6f92538c20 BoundingBox support for Lines,
BoundingBox constructor will no more throw for empty vector of points.

GMP allowed for Vojtech's fork of boost::polygon Voronoi implementation.

Added libslic3r tests for boost::polygon Voronoi. All Voronoi issues
ever reported on the Internet are captured by the tests. Two issues
reported (the two test cases) are real issues which may influence
PrusaSlicer negatively, namely

https://github.com/boostorg/polygon/issues/43
2020-05-28 15:53:53 +02:00
Vojtech Bubnik 180742ccaa Pulling patched boost::polygon from github prusa3d/polygon. 2020-05-22 15:33:11 +02:00
Vojtech Bubnik c09d702045 Show Eigen vectorization support in system info dialog. 2020-05-22 11:36:10 +02:00
Vojtech Bubnik ac1f24e5c9 AABB: Some further polishing and a reference to an SSE implementation
of the 3D Box vs. ray intersection implementation.
2020-05-22 11:35:49 +02:00
Vojtech Bubnik 925bf1af70 Shiny profiler: Increased resolution of text output to 2 decimals 2020-05-22 09:29:21 +02:00
Vojtech Bubnik dc46589a8e AABB - triangle intersection wrapped to mimize copying into Vector3D 2020-05-22 09:29:21 +02:00
Vojtech Bubnik c64b7b2e21 Fix of the previous commit. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik 7b6dff3f03 Little simplification of Point to boost::polygon bindings 2020-05-22 09:29:21 +02:00
Vojtech Bubnik 4c365ad583 Replaced many defines in libslic3r.h with constexpr,
removed some macros to support old visual studio compiler.
2020-05-22 09:29:21 +02:00
Vojtech Bubnik 99514ba42b WIP: AABBTreeIndirect - optimized ray_box_intersect_invdir() test,
sandbox for comparing the AABBTreeIndirect with libigl::AABB
2020-05-22 09:29:21 +02:00
Vojtech Bubnik 2b8f655020 WIP AABBIndirect: Documentation, polishing. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik eeb9590d28 WIP: own AABBTreeIndirect, builds up the tree 4x quicker than libigl. 2020-05-22 09:29:21 +02:00
Vojtech Bubnik abf279fc44 Fixed compilation with Shiny profiler. 2020-05-22 09:29:21 +02:00
bubnikv b73e675aaa Changed the Ironing G-code preview color based on Jindra's feedback. 2020-05-06 18:28:23 +02:00
bubnikv 0940db7b2e Improvements of the monotonous infill ordering:
Calculate the initial path length and set the initial pheromone level
accordingly.
Implemented a stopping criterion to ant colony optimization.
Fixed some compilation warnings.
2020-05-06 18:28:23 +02:00
bubnikv 5980d46e4c Bumped up version number to 2.3.0-alpha0 2020-05-05 13:11:32 +02:00
bubnikv 80b684b4b7 Fuzzy matching:
1) Handle localized and English searches as equivalent.
2) Search the whole section : group : label string, still give
   precedence to just the label.
2020-05-04 21:22:56 +02:00
bubnikv 0e87226ac9 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-05-04 16:18:32 +02:00
bubnikv 95cf8c2d30 Fuzzy matching of parameters in the search box:
Fix of https://github.com/forrestthewoods/lib_fts/issues/21 finally applied,
disabled CamelCase matching as we are not using CamelCase in Slicer parameters.
2020-05-04 16:18:20 +02:00
bubnikv 28c0880b24 ASCII folding applied over the matched string 2020-05-03 15:45:47 +02:00
bubnikv e27c6c7928 fts_fuzzy_match fixes:
Recursive fix https://github.com/forrestthewoods/lib_fts/issues/21
End of string penalty fix https://github.com/forrestthewoods/lib_fts/issues/24

Some refactoring for succintness (based on Vojtech's taste)
2020-05-03 14:14:40 +02:00
bubnikv 07ab5c31e6 WIP Fuzzy search rework.
1) fts_fuzzy_match has been extended to support wchar_t for a char
   type and uint16_t for an index type for the match indices.
2) fts_fuzzy_match has been extended to place a proper stopper character
   into the match buffer.
3) Slicer integration now uses the fuzzy match indices for highlighting.
4) Slicer integration now correctly highlights the matched word.
5) Slicer search dialog now sorts based on match AND category.

Further modifications are planned:
1) Matching in local language vs. English: Just show the English variant
   if matched in English. Don't mix the two together.
2) Matching the group or category: Continue matching the label.
3) For matches with equal match quality and category sort alphanumerically.
2020-05-01 08:57:24 +02:00
bubnikv f479b77e01 Fixed compilation warning. 2020-04-30 12:04:49 +02:00
bubnikv 18d08cc5cb Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-04-30 12:04:03 +02:00
bubnikv cc2d33f6a0 Search: Fixed returning of a pointer to temporary. 2020-04-30 12:03:49 +02:00
bubnikv 2875bc685c Fixed spelling of "sidebar" 2020-04-29 15:58:57 +02:00
bubnikv 8a82e3d5be Localization fixes. 2020-04-29 14:42:43 +02:00
bubnikv 4de4d765ee Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-04-28 19:31:18 +02:00
bubnikv ef89c73fd5 fixing a compilation issue on a buggy GCC on R-PI 2020-04-28 18:28:11 +02:00
bubnikv b8e02a5405 Fixed handling of fill_pattern field if not all patterns are allowed
for the internal infill.
2020-04-28 18:00:42 +02:00
bubnikv ec81de7553 Ironing and Monotonous infill - first working implementation. 2020-04-28 17:19:11 +02:00
bubnikv 033548a568 Introduction of Monotonous infill type. Fill no-sort only for monotonous
and ironing infills.
2020-04-25 08:15:04 +02:00
bubnikv e390ebc95c WIP: Monotonous infill 2020-04-24 09:41:48 +02:00
bubnikv 03eb5ffcd5 WIP: Reworking of FillRectilinear2 to support monotonous infill
with ant colony optimization and 3-opt flips.
2020-04-22 10:54:11 +02:00
bubnikv 10110ed307 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
Vojtech Bubnik b578b7ec87 New parameter DEP_WX_GTK3=on/off to build wxWidgets against GTK3. 2020-04-02 11:42:45 +02:00
bubnikv 31b0ae164d Optimization of the GCodeTimeEstimator to only keep a fixed number
of trapeziodal blocks around. The number is hard coded to 64,
and 3x64 blocks are flushed everytime the queue grows over 4x64 blocks.
This time estimator is slightly more close to what the firmware does, which
keeps a fixed number of blocks and it recalculates all the blocks
every time a new block is added while the oldest block is pushed out
of the queue. Therefore this optimization shall produce negligible
differences to what the previous code produced.
2020-04-01 13:42:26 +02:00
bubnikv f4cc0ce075 Fixed the new Slic3r::GUI::format_wxstr(): The arguments were not passed. 2020-04-01 13:27:12 +02:00
bubnikv 8027fc2fb2 Yet another missing include that windows compiler did not mind. 2020-04-01 10:42:10 +02:00
bubnikv 3a1bb2fece fixed missing include 2020-04-01 10:30:33 +02:00
bubnikv 22c671e593 Fixing OSX and Linux builds 2020-04-01 10:09:31 +02:00
bubnikv b843a094f6 Slic3r::format(), Slic3r::GUI::format_wxstr():
wrappers around boost::format using C++17 variadic templates,
replacing the ugly and verbose
	(boost::format("template") % arg1 % arg2).str()
syntax.
The wrappers also implictely convert input parameters including the template
from wxString to UTF8.

The new format wrapper has been applied at multiple places as a start,
also some double macros _(L()) with new single macro _L().
2020-04-01 09:49:04 +02:00
bubnikv 25d58faaad WIP: Windows specific 3Dconnexion using WM_INPUT.
This implementation works with the 3DConnexion driver (sic!)
if PrusaSlicer.xml is stored into c:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg\

The implementation is inspired with Blender, see code inside WITH_INPUT_NDOF blocks.
2020-03-31 09:01:55 +02:00
bubnikv ec86d94f02 Workaround for the Prusa3D Fast (layer height 0.35mm) profile, which
collides with the maximum allowed layer height at the Printer Extruder
0.25mm.

Works around "MMU2s and supports on prusaslicer 2.2.0 issue #3919"
2020-03-27 14:15:09 +01:00
bubnikv 58192ba6c2 Win32 specific: Using SHChangeNotifyRegister to get notifications
on removable media insert / eject events.
From now on we no more poll for removable media on Windows.

Thanks @mjgtp from prusaprinters.org
See the following discussion:
https://forum.prusaprinters.org/forum/prusaslicer/prusaslicer-trying-to-access-my-floppy-disk-a

The final working code sample was taken from Chromium source code,
volume_mount_watcher_win.cc
2020-03-27 08:10:00 +01:00
bubnikv 3fdd643f49 Fix of PrusaSlicer trying to access my floppy disk (A:\)
Some customers seem to posses a floppy drive (sic!) and some floppy
drives start spinning if accessed just to check whether there is
a medium plugged in or not.

From now, the A: and B: drives are not checked anymore for removable
media. Now let's pray nobody maps an SD card or flash drive to A: or B:

Fixes
https://forum.prusaprinters.org/forum/prusaslicer/prusaslicer-trying-to-access-my-floppy-disk-a
2020-03-26 19:06:23 +01:00
bubnikv a1aee69c5a Fixed a logical error in substitution of the selected language with
the system language: System language returned by Windows for pt_BR
is pt_PT, and this language was then used incorrectly to select
the dictionary.

Now the selected language is stored into PrusaSlicer.ini and
if a substitution is to be performed to select locales (not the dictionary)
based on the system recommended locales, this substitution is being
done in runtime just before switching the locales.
Fixes PrusaSlicer 2.3.0 - Language Portuguese (Brazilian) dont work #3901

Also hopefully fixed
LANGUAGE environment variable not respected #2970
by calling
wxTranslations::Get()->GetBestTranslation()
on Unix systems as well, which reads the "LANGUAGE" environment.
2020-03-26 14:27:18 +01:00
bubnikv b3cebdb672 Fix after merge 2020-03-25 17:55:46 +01:00
bubnikv 750e704b37 Merge remote-tracking branch 'remotes/origin/et_slope_shader' 2020-03-25 16:09:04 +01:00
bubnikv 8d7f88b381 Imported error reporting when loading presets with option keys
or option values that our poor software does not understand.
This applies to configs added by some forks of slic3r, for example
slic3r++
PrusaSlicer has encountered an error: Failed loading the preset file: #3909
2020-03-25 16:04:11 +01:00
bubnikv faf8df7864 Show just a short build info at the application toolbar even on OSX. 2020-03-25 14:35:41 +01:00
bubnikv 4656102dba Compile with 32bit coord_t by default. 2020-03-25 14:35:41 +01:00
bubnikv c27297f6cc 64bit coord_t
Vec3i as a vertex index to TriangleMesh constructor
2020-03-25 14:35:41 +01:00
bubnikv c3a9915fa1 Added the order of the print parameter priorities when slicing
from command line to command line help.
Follow up on
PrusaSlicer Console --load my_config.ini doesnt overwrites the 3mf profiles or not used. #3893
2020-03-24 11:59:55 +01:00
bubnikv 015a4a37dc Fix of a wrong order of processing the config sources when slicing
from command line. Fixes
PrusaSlicer Console --load my_config.ini doesnt overwrites the 3mf profiles or not used. #3893

The priority of config values is now:

1) Config keys from command line, for example --fill-pattern=stars
   (highest priority, overwrites everything below)
2) Config files loaded with --load
3) Config from 3mf
   (lowest priority)
2020-03-24 11:52:43 +01:00
bubnikv ad5ae50933 Fix of Crash when trying to set up non-existent flashair (#3899)
fixed a typo in formatting text, throwing an exception.
2020-03-24 10:04:41 +01:00
bubnikv d5bcddeed3 Revert "Deps libdir for libcurl on linux to land to the same directory"
This reverts commit 38d06d57a0.
2020-03-21 11:55:51 +01:00
bubnikv bf64f0099b Bumped up the version number to final. 2020-03-21 11:28:15 +01:00
bubnikv 046f0dbfa2 Fixed a regression issue to PrusaSlicer 2.1.1
Custom printer with center of bed at 0,0 results in "toolpath outside print area" #3510
The G92 A0 B0 was incorrectly considered to be equal to just G92
to reset all axes.
2020-03-21 10:09:33 +01:00
bubnikv 1cbb822dd7 Enabled "clip multipart objects" by default, see discussion in
https://github.com/prusa3d/PrusaSlicer/issues/2803#issuecomment-524602137
2020-03-20 18:25:11 +01:00
bubnikv 92162d8fe5 Merge branch 'et_bug_fixes' 2020-03-20 17:19:46 +01:00
bubnikv 4938d5ab63 Fixed orientations of some 3D connexion axes when in the swapped YZ mode. 2020-03-20 17:19:20 +01:00
bubnikv a9fc39491e Fix of weird double extrusions with multiple regions and their
parameters being changed between slicing runs.
2020-03-20 13:37:13 +01:00
bubnikv 38d06d57a0 Deps libdir for libcurl on linux to land to the same directory
as openssl libraries.
Follow-up to 170650169c
2020-03-20 08:55:11 +01:00
bubnikv 170650169c Deps libdir for openssl on linux 2020-03-19 21:33:03 +01:00
bubnikv d5149275b0 Hopefully fixing missing OpenSSL dependency of libcurl on Linux 64bit. 2020-03-19 20:48:53 +01:00
bubnikv b1fbc2c59c Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-03-19 17:32:18 +01:00
bubnikv 20d33c19f4 Merge remote-tracking branch 'origin/et_gizmos_tooltip' 2020-03-19 17:31:25 +01:00
bubnikv be2fd7164c ImGUI characters for OSX keyboard keyboard modifiers are only contained
in the CJK fonts, not in the regular fonts. Load them from CJK fonts
even for non CJK languages.
2020-03-19 13:32:34 +01:00
bubnikv 966b2ce371 Fixing spurious deselection of objects when switching from 3d path
preview to plater using the bottom tool bar & left mouse click.
This is result of the recent commits refactoring the mouse focus
over toolbars handling. 739d8131ab
2020-03-19 12:39:25 +01:00
bubnikv 8f762168ba Adding special OS characters for keyboard shortcuts to ImGUI font map. 2020-03-19 09:52:24 +01:00
bubnikv a901b17d33 Merge branch 'et_gizmos_tooltip' of https://github.com/Prusa3d/PrusaSlicer into et_gizmos_tooltip 2020-03-18 14:28:54 +01:00
bubnikv 79951630ec Hiding the tooltip when the window gets deactivated and reactivated. 2020-03-18 14:28:43 +01:00
bubnikv 067e128651 Suppress tooltips when the mouse is processed by an ImGUI dialog. 2020-03-18 13:23:07 +01:00
bubnikv 98fb8b626f Fix of Wipe to Infill causes severe overextrusion (thicker walls & infill) (#3842)
Regressinon in regard to PrusaSlicer 2.2.1 due to Vojtech's refactorings
for efficiency.
2020-03-17 09:41:54 +01:00
bubnikv 6bace46be1 Revert "#3034 - Keyboard shortcuts for 'Delete selected' and 'Delete all' commands enabled also in Preview"
It is too late before 2.2.0-final.

This reverts commit 350a85cf43.
2020-03-16 14:25:05 +01:00
bubnikv c1e92a5759 Fix of
"Print settings reloaded with 0.05 layer and fill percentage changed
after click on modified profile #3755"

Combo box callback was not removing the "(modified)" suffix.
2020-03-16 09:57:20 +01:00
bubnikv 6bf56d5cb4 Updated the "Remove user profiles" message at the install wizard to
indicate that it does nothing to user profiles.
2020-03-15 12:19:56 +01:00
bubnikv 707bc09be5 Changed PrusaResearch extruder clearance 2020-03-15 09:04:00 +01:00
bubnikv 2e1aef87a1 The import of system profiles was improved to not inherit
the "renamed_from" field as it is specific to a concrete profile.

Prusa Research system profile was annotated with "renamed_from"
to indicate that the PETG profiles were renamed from PET somewhere
after PrusaSlicer 2.2.1 release.
2020-03-15 08:38:17 +01:00
bubnikv 7f3ac39757 Fixed conversion of installed presets from PrusaSlicer 2.1.1 to 2.2.0 2020-03-14 20:18:31 +01:00
bubnikv a3ded8fa95 Reworked filaments / SLA materials in installation wizard:
1) When the wizard is initialized, filament and SLA profile names
   are verified and current names of renamed profiles are resolved.
   Fixes "Add/Remove Filaments is not hiding all of the un-checked filaments #3835"
2) When adding a printer model, default materials are installed in case
   the printer model has no default material installed.
3) When leaving the Filaments or SLA materials page, and some printer models
   have no material installed, those Printer Models are listed
   in a message box and only for those printer models the default
   materials are installed.
2020-03-14 18:35:42 +01:00
bubnikv fcb04039e8 New shorcut _L() for _(L())
New shorcut _u8L() for _utf8(L())
2020-03-14 17:51:56 +01:00
bubnikv 7f376fa927 Fix of infill type update with vase mode enabled after change
of the number of bottom layers.
related to [2.2.1-RC] Vase mode prints base no matter what #3823
2020-03-14 11:59:50 +01:00
bubnikv bd1a128ef8 Bumped up version number to 2.2.0-rc4. 2020-03-14 09:56:49 +01:00
bubnikv dc1ffe15a8 Revert "Added "Filament spool weight" option to filament options"
This reverts commit 3d3e36ba8d.

The change is too risky just before the PrusaSlicer 2.2.0 final release
and the feature may need a bit of polishing before release.
2020-03-14 09:49:12 +01:00
bubnikv 99ff6763a1 Layer height editing: Fixed to satisfy the minimum layer heigth,
improved wording of the tooltips indicating why a new layer height range
cannot be inserted.
2020-03-14 09:44:29 +01:00
bubnikv af4a5c3f8a Synchronization of skirt input field enable / disable state
in the parameter tab.
An inconsistency between the slicing back-end and the parameter page
has been fixed, where the slicing back end only creates skirt for
non-zero number of skirt loops even if the minimum skirt extrusion is set.
2020-03-14 09:44:28 +01:00
bubnikv 6b58f67fb8 "inifinit_skirt" renamed to "draft_shield"
Polished the tooltip for the draft shield.
Legacy conversion from old skirt_heigth == -1 to draft_shield = 1
2020-03-14 07:46:39 +01:00
bubnikv b97a12da98 Documented the previous merge. 2020-03-14 07:14:45 +01:00
bubnikv 37b3780a72 Merge remote-tracking branch 'remotes/origin/et_free_camera' 2020-03-14 07:02:08 +01:00