Commit graph

64 commits

Author SHA1 Message Date
Vojtech Bubnik
cc44089440 New BuildVolume class was created, which detects build volume type (rectangular,
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.

GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.

Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.

Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.

Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().

New Circle constructing functions: circle_ransac() and circle_taubin_newton().

New polygon_is_convex() test with unit tests.
2021-11-16 10:15:51 +01:00
tamasmeszaros
e324643a04 Fix hanging status indication if a UI job gets started over another.. 2021-11-11 17:07:35 +01:00
tamasmeszaros
c4c8b7608e Fix some mesh errors in sl1 archive reconstruction 2021-11-05 15:43:40 +01:00
tamasmeszaros
1c940ef145 Do not reset sl1 import dialog settings between imports 2021-11-05 15:31:27 +01:00
Vojtech Bubnik
c7d6a95cb3 Slightly reworded error messages for
Cannot import .sl1 files into PrusaSlicer
2021-10-01 15:07:09 +02:00
tamasmeszaros
4d2bf8db0d Switch to current SLA profile if an imported archive doesn't contain it.
Send a warning notification if this happens. Also,if  there is no current SLA profile initialized, an error message will tell the user to switch to an SLA profile before importing.

fixes #6915
2021-09-27 10:00:21 +02:00
tamasmeszaros
63647f594e Add dedicated subclass NotificationProgressIndicator
to replace ProgressStatusBar and revert changes from b9dab754, keep UI jobs untouched
2021-09-21 12:34:40 +02:00
David Kocik
b9dab7540e Removes bottom status bar.
StatusBar class calls are commented out and replaced with notifications.
SlicicingProgress notification shows progress of slicing, ProgressIndicator notification handles other progress information, like arrange objects etc.
2021-09-10 14:35:13 +02:00
tamasmeszaros
a918314aab Fix UI glitches when "fill bed" fails to add any additional instances 2021-08-25 13:01:08 +02:00
tamasmeszaros
6efea25478 Change UI job's process() method to be protected, as it should have been
Also add some comments to the interface of Job class
2021-08-20 13:43:52 +02:00
tamasmeszaros
1672130d45 Remove code duplication, clarify naming of orientation searches 2021-08-18 16:48:51 +02:00
tamasmeszaros
74edeb147b Add min z height orientation search 2021-08-18 16:48:51 +02:00
tamasmeszaros
1a2e58e521 Add better defined names for orientation optimizer goals 2021-08-17 15:35:52 +02:00
tamasmeszaros
c37bb0cdd1 Extend tooltip texts 2021-08-16 16:42:56 +02:00
tamasmeszaros
900814ff47 Add tooltips for combo items in rotation optimization dialog 2021-08-16 16:03:20 +02:00
Vojtech Bubnik
d569789285 Fixes after merging 2.3.2/2.3.3 changes from stable to master. 2021-08-13 14:53:13 +02:00
Vojtech Bubnik
cfc0ae7ef3 Ammended the previous commit (SL1 / SL1S in file picker) 2021-08-13 13:40:25 +02:00
Vojtech Bubnik
a25d2d1de4 Support for SL1S printer:
Where SL1 is mentioned, mention it as SL1 / SL1S.
Support loading / saving of SL1S files in addition to SL1.
2021-08-13 13:40:13 +02:00
tamasmeszaros
0094d50d93 Move show_substitutions_info() call into UI thread 2021-08-13 13:39:33 +02:00
YuSanka
1e60acde12 Substitutions : Implemented InfoDialog 2021-08-13 13:30:50 +02:00
tamasmeszaros
c30ac4b66f Add notification if some objects are ignored after arrange 2021-07-08 13:35:40 +02:00
Vojtech Bubnik
0f3cabb5d9 Support for forward compatibility of configurations, user and system
config bundles, project files (3MFs, AMFs). When loading these files,
the caller may decide whether to substitute some of the configuration
values the current PrusaSlicer version does not understand with
some reasonable default value, and whether to report it. If substitution
is disabled, an exception is being thrown as before this commit.
If substitution is enabled, list of substitutions is returned by the
API to be presented to the user. This allows us to introduce for example
new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer
2.3.2 to fall back to some default and to report it to the user.

When slicing from command line, substutions are performed by default
and reported into the console, however substitutions may be either
disabled or made silent with the new "config-compatibility" command
line option.

Substitute enums and bools only.  Allow booleans to be parsed as
    true: "1", "enabled", "on" case insensitive
    false: "0", "disabled", "off" case insensitive
This will allow us in the future for example to switch the draft_shield
boolean to an enum with the following values: "disabled" / "enabled" / "limited".

Added "enum_bitmask.hpp" - support for type safe sets of options.
See for example PresetBundle::load_configbundle(...
LoadConfigBundleAttributes flags) for an example of intended usage.

WIP: GUI for reporting the list of config substitutions needs to be
implemented by @YuSanka.
2021-06-27 16:57:05 +02:00
tamasmeszaros
8fdb0fddc0 Get rid of Contour3D 2021-06-08 10:28:23 +02:00
tamasmeszaros
e892550cb0 Fix warning of ignored variable in structured binding 2021-05-19 10:08:41 +02:00
tamasmeszaros
e8af080346 Merge remote-tracking branch 'origin/tm_sl1_import_fix' 2021-04-07 13:56:14 +02:00
tamasmeszaros
1663787b96 Better naming of gui controls 2021-04-07 12:51:02 +02:00
tamasmeszaros
649dfca8d6 Allow rotation of multiple selected items. Disable auto positioning 2021-04-07 12:51:02 +02:00
tamasmeszaros
773116b777 Allow auto-rotation of objects not completely inside bed.
Don't use SLAPrintObject as the input for optimization. Use ModelObject and pass the print config to the optimization in RotoptimizeJob::prepare()
2021-04-07 12:51:02 +02:00
tamasmeszaros
4a9768cc7f Change configuration bank name for SLA auto rotation 2021-04-07 12:51:02 +02:00
tamasmeszaros
f3e3aabec7 Least supports optimization revived.
Fix missing include on Win32


Cleanup benchmarking code
2021-04-07 12:51:02 +02:00
tamasmeszaros
0194094afa Method selection implemented 2021-04-07 12:51:02 +02:00
tamasmeszaros
46fd722f3c Unite cancel callback and status function 2021-04-07 12:51:02 +02:00
tamasmeszaros
4293a68aaa Reverting to old rotation optimizer object-function.
Keep the performance optimizations though
2021-04-07 12:51:02 +02:00
tamasmeszaros
3135e47180 Fix duplicated error message dialog from GUI jobs. 2021-04-07 12:41:52 +02:00
tamasmeszaros
9aac1b6fa5 Fix issue with importing sl1 files with non-ascii filenames. 2021-04-07 12:41:38 +02: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
enricoturri1966
ba9025491b Refresh object manipulator fields in sidebar after arrange 2021-01-28 12:44:38 +01:00
tamasmeszaros
56e7d83513 Implement exception rethrow for ui jobs 2021-01-19 15:01:20 +01:00
tamasmeszaros
a629401916 Fix for "bed fill" discarding selected instance transformation.
fixes #5621
2021-01-04 20:33:17 +01:00
tamasmeszaros
598ac290a1 Fix for bad wipe tower handling in arrangement
fixes #5320
2020-12-07 18:00:10 +01:00
tamasmeszaros
4e9254ec5a Follow up fix for bed filling
fixes: 2813db8906
2020-12-02 18:08:30 +01:00
tamasmeszaros
2813db8906 Fix for bed filling with some existing items out of bed. 2020-12-02 17:52:40 +01:00
tamasmeszaros
4e90df1ea5 Fix status indication glitch for bed filling 2020-12-02 17:50:12 +01:00
tamasmeszaros
4f7f08d0de Further improvement on arrange settings handling 2020-12-02 14:04:39 +01:00
tamasmeszaros
8027f6608a Fix arrange distance with enabled sequential printing
fixes #5258
2020-12-01 14:08:07 +01:00
tamasmeszaros
982e6eb55b Don't apply result if fill bed was canceled. 2020-11-30 09:38:22 +01:00
tamasmeszaros
dfbf4cbab2 Fix bed filling with more existing instances than needed 2020-11-26 15:11:54 +01:00
tamasmeszaros
30693e29e4 Stop bed filling if enough instances are generated 2020-11-24 14:41:36 +01:00
tamasmeszaros
f1acde8024 Fix broken wipe tower arrangement
fixes #5207
fixes #5216
2020-11-23 16:05:24 +01:00
tamasmeszaros
adf81af6de Prototype feature: fill plater with instances of selected object
#fixes #1350
2020-11-20 09:58:52 +01:00