Commit Graph
100 Commits
Author SHA1 Message Date
bubnikv 9b26f8a18b Updated dictionaries. 2020-03-13 14:39:26 +01:00
bubnikv 2f6326a2eb Windows specific refactoring of Mouse3DController and RemovableDriveManager.
PrusaSlicer newly registers by Windows operating system for HID USB
plug / unplug notifications and for Volume attach / detach notifications,
and the background threads of the two respective services are waken up
on these Windows notifications.
The RemovableDriveManager also wakes up every 30 seconds to cope with
the drives ejected from Windows Explorer or from another application,
for example Cura, for which Windows OS does not send out notifications.
2020-03-13 14:19:14 +01:00
bubnikv 45e0079356 Refactoring of suppress background process update for clarity. 2020-03-12 16:11:25 +01:00
bubnikv 1d5249f9b0 Fix of #3660 : Background processing restart and error messages
are suppressed while tracking a pop-up menu.
2020-03-12 16:05:39 +01:00
bubnikv 6866c2bdd4 Refreshed pot dictionaries. 2020-03-12 14:13:32 +01:00
bubnikv f71d3e63f2 Changed location of vendor specific thumbnail images of printers:
These images are newly stored inside the resources/profiles/VENDOR_NAME/,
they should be named by the printer_model identifier suffixed with
"_thumbnail.png"

All the existing printer thumbnails were moved and renamed,
thumbnails for the 3rd party printers were added, marked as Beta.
2020-03-12 14:13:08 +01:00
bubnikv b71161265f Follow-up on 550e5c2fbb3a5151e18b573f246fa78dcef8e964
Fixed some spurious moves of data that should have not been moved.
2020-03-12 12:57:52 +01:00
bubnikv e2274bfc83 Saving one enumeration of external drives when deciding whether
to verify the file saved or not.
2020-03-12 12:43:09 +01:00
bubnikv c145d60df4 Improvement in the RemovableDriveManager update function:
Don't call the update() if it is already running. Wait for the
other instance to finish instead.
2020-03-12 11:30:58 +01:00
bubnikv 84c9136e2d Fixed formatting error in preset update from the net. 2020-03-12 09:42:25 +01:00
bubnikv ccbf5379ab More detailed logging of hid_init() on unixes to detect why
loading of "libudev.so.1" or "libudev.so.0" failed.
2020-03-12 09:42:25 +01:00
bubnikv c73493eba5 Manual merge of @BoaImpressao3D Added_translation_pt_br 2020-03-12 09:42:25 +01:00
bubnikv 6664a548d6 Show busy cursor on eject, improves
2.2.0-RC Eject is very slow in Linux #3795
2020-03-11 18:25:05 +01:00
bubnikv bbf212d5f6 Fixes to the BIBO profile. 2020-03-11 18:13:13 +01:00
bubnikv 88fcdf4b97 num_extruders is now available from the output_file_name template. 2020-03-11 18:12:44 +01:00
bubnikv cd381d6b4f More robust vendor profile parsing. 2020-03-11 18:12:16 +01:00
bubnikv a4a6ef3c72 BIBO2 profile:
Removed compatible_printers_condition = printer_family=="BIBO2"
printer_family variable is not supported, though it is a good idea.
Fortunately it was not needed for the BIBO2 printer as of now.
2020-03-11 16:35:21 +01:00
bubnikv e6b0be918d Bumped up version number. 2020-03-11 15:39:06 +01:00
bubnikv 8603a1a7cc Merge branch 'ulsanether-master' 2020-03-11 15:33:44 +01:00
bubnikv f94d779621 Merge branch 'master' of https://github.com/ulsanether/PrusaSlicer into ulsanether-master 2020-03-11 15:33:31 +01:00
bubnikv 9d1fa809dd Updated pot file 2020-03-11 15:29:31 +01:00
bubnikv 04d1fc0633 BIBO2 Touch profile updates by @rtyr 2020-03-11 15:29:15 +01:00
bubnikv 1484d98997 Merge remote-tracking branch 'remotes/origin/vb_add_layer_range_osx' 2020-03-11 14:33:40 +01:00
bubnikv ed760ae932 Fixed a fishy null pointer reference bug reported by ASAN time to time. 2020-03-11 13:58:31 +01:00
bubnikv cbd80685c2 Fix of Print settings dropdown list messed up after deleting an entry (#3800) 2020-03-09 12:29:40 +01:00
bubnikv aac691c0e7 Forced SD card / USB drive eject now sends out the event immediately
on Windows as well as on Unix platforms including OSX.
2020-03-09 11:47:20 +01:00
bubnikv e83fb4582c Reworked the eject on unix systems to wait for the return of the
system call to the command line utility and send out the unmount
wxWidgets event immediately.
Hopefully improves 2.2.0-RC Eject is very slow in Linux (#3795)
2020-03-09 10:56:51 +01:00
bubnikv ec75b760b8 Fix of saving the 3DConnexion status on OSX.
Fixes 2.2.0 RC2 - 3Dconnexion settings not saved / Zoom digital (#3791)
2020-03-09 10:36:55 +01:00
bubnikv 6723b5f3cd Vojtech's adjustments to Lutzbot config, now it installs. 2020-03-07 16:33:03 +01:00
bubnikv cbf5459f5d Initial Lutzbot printer definition by Mikolas Zuza 2020-03-07 16:31:46 +01:00
bubnikv 76fecc91a5 Improved error reporting and error handling when loading
vendor config bundles into installation wizard.
2020-03-07 16:31:14 +01:00
bubnikv 93f2be7ac4 Fixed localization of "Save preset as" dialog message. 2020-03-07 14:21:05 +01:00
bubnikv d4ac4df21c Fixed crash on switching the application language.
This crash was caused by the RemovableDriveManager and 3DConnexion
detection services not being stopped correctly.
The fix executes all the tasks of the MainFrame at the language switch,
that are normally performed on application shut down.
2020-03-07 12:24:53 +01:00
bubnikv c5d2507dd4 Bumped up version number. 2020-03-07 10:36:06 +01:00
bubnikv b6ee1c1263 Updated dictionaries. 2020-03-07 10:34:54 +01:00
bubnikv 1efa21c882 Polished the new "detach preset from the system preset" messages. 2020-03-07 10:26:40 +01:00
bubnikv 5052ef88db Fixed crash on removable device plug in event due to recent
RemovableDriveManager refactoring.
2020-03-07 10:17:58 +01:00
bubnikv 42d4910c12 Merge branch 'ys_detach_btn' 2020-03-06 17:41:43 +01:00
bubnikv 2816b5a9fb WIP Detaching of system profiles and user profiles derived from system profiles. 2020-03-06 17:41:00 +01:00
bubnikv da9412705e Merge branch 'master' into ys_detach_btn 2020-03-06 15:12:54 +01:00
bubnikv 3baea9b458 Fixed uninitialized "Connected" flag of the Mouse3DController
after refactoring.
2020-03-06 15:12:39 +01:00
bubnikv 5396b7bb14 Merge branch 'master' into ys_detach_btn 2020-03-06 15:12:06 +01:00
bubnikv b3b800de65 Refactoring of RemovableDriveManager:
1) On Windows and Linux, the device enumeration now runs at a background
   thread, while it ran on the UI thread on idle, which may have been
   blocking on some rare Windows setups, see GH #3515 #3733 #3746 #3766
2) On OSX, the device enumeration now relies on OS callback, no
   polling is required.
3) Refactored for cleaner interface.
2020-03-06 15:10:58 +01:00
bubnikv baad542d15 Refactoring of RemovableDriveManager
1) On Windows and Linux, polling of removable drives is done at a background
   thread, not at a UI thread.
2) On OSX, there is no polling, but a OS notification callback.
3) Refactored for clarity of the RemovableDriveManager interface.
2020-03-06 14:49:21 +01:00
bubnikv fa00180170 Fixed uninitialized "Connected" flag of the Mouse3DController
after refactoring.
2020-03-06 14:44:06 +01:00
bubnikv 3834ab7ede Merge branch 'master' into ys_detach_btn 2020-03-06 14:40:28 +01:00
bubnikv a2b7c6945c Merge remote-tracking branch 'remotes/origin/vb_3dconnexion_refactoring' 2020-03-05 09:56:06 +01:00
bubnikv cab42b89ad Fixed some compilation warnings. 2020-03-04 13:06:21 +01:00
bubnikv ab7109568a WIP: Fixed some compilation issues on OSX, fixed some "override" vs. "virtual"
warnings.
2020-03-04 12:48:04 +01:00
bubnikv cbe9216d79 WIP 3Dconnexion refactoring: Fixing compilation on OSX 2020-03-04 12:18:59 +01:00
bubnikv c9df6e5cf8 Disabled the 3DConnexion mouse scroll wheel spurious events filtering
on other platforms than Windows.
2020-03-04 11:55:47 +01:00
bubnikv 0b96855c2e Reworked the 3DConnexion interfacing code to run the device
enumeration / connect / disconnect and read out at the background
thread only.
2020-03-04 11:36:36 +01:00
bubnikv a87ba5d6a6 Renormalization of the camera rotation quaternion after each change
fixes degeneration of the camera rotation on long rapid rotations.
2020-03-03 13:47:10 +01:00
bubnikv aaaeafcdeb When loading installed filaments and SLA materials from PrusaSlicer.ini,
the "renamed_from" property of current profiles was not taken into account.
This lead to a situation where there were no MMU or SLA materials installed
after upgrade from PrusaSlicer 2.2.1 to 2.2. This should work now.
2020-03-02 16:15:41 +01:00
bubnikv 11bd62a3e6 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-03-02 09:23:16 +01:00
bubnikv 3e722d82b2 Merge branch 'vb_camera_rotation_quaternion' 2020-03-02 09:23:00 +01:00
bubnikv c9a75bb70a Fixed localization issue of the "Removable media unmounted" message.
Generalized the Slic3r::show_info() function to std::strings and
const char*
2020-02-29 12:03:07 +01:00
bubnikv 192bdffb3f Updated printer profiles, bumped up version to 2.2.0-rc. 2020-02-29 10:53:18 +01:00
bubnikv 0a0219961b Free rotating camera reworked to rotate around the free rotation
axis in a single step.
2020-02-28 14:59:59 +01:00
bubnikv b6068b6278 Camera refactored to use quaternions primarily for processing
rotations due to numerical reasons (no need for normalization
and orthogonalization of the rotation matrix).
2020-02-28 13:29:05 +01:00
bubnikv 7c55674220 Disabled implicit conversion of wxString to std::string or const char*
and vice versa. Fixed one last implicit wxString conversion.
2020-02-27 17:02:08 +01:00
bubnikv b4d0d9610e Various changes in handling of profile compatiblilities
and the "show incompatible profiles" option.

It was not able to select the incompatible Print profile, which is
possible now.
(see Cannot select incompatible printer profile #3715)

When the Printer profile derived from the Prusa3D system profile was
active or a system Prusa3D profile was active, and when the Print profile
with the removed "inherits" field was active (or any other profile
derived from the "-- default --" profile was active), then the filament
selector offered just the profiles with the removed "inherits" field
(or any other profile derived from the "-- default--") profile.
This behavior has been now changed, so that in this scenario the Filament selector
will offer the Prusa3D vendor profiles compatible with the active Print
and Printer profile as well as the user profiles.

Slicer was also changed to keep an incompatible preset selected
at its respective tab if its respective "Red flag" is enabled.
For example, if an incompatible Print preset is selected and a Printer
profile is switched to another one which is not compatible with the active
Print preset that was red already, the active Print preset is
not switched if the Print "Red flag" is active. However, if the Print profile
was compatible before the Printer profile is switched and now the Print
profile becomes incompatible, another compatible Print profile is selected.

A likely bug in wxWidgets was worked around when switching a Print preset
on Plater, if the last item in the Print preset was active and incompatible,
and another Print preset was selected by the user. On Windows, an CBN_EDITCHANGE
is sent just after combo box selection change event and the CBN_EDITCHANGE
holds an index of the combo box item, which will be removed by the 1st event,
therefore leading to an assert in wxWidgets on CBN_EDITCHANGE. The workaround
is to disable processing of CBN_EDITCHANGE on Windows for the Plater
preset selection combo boxes.
2020-02-27 11:44:12 +01:00
bubnikv 5e10e5ae5f new hollowing icon 2020-02-26 15:00:23 +01:00
bubnikv d4d5076e49 Generalization of translate() / translate_utf8() to wxString arguments. 2020-02-24 15:23:43 +01:00
bubnikv d5bffd2816 Fixed crash on reading profiles with the "thumbnails" settings different
from the parent profile.
2020-02-24 10:41:20 +01:00
bubnikv 6ddb21fe06 Bumped up version to 2.2.0-beta
Changed the profile directory from PrusaSlicer-alpha to PrusaSlicer-beta
2020-02-21 18:44:53 +01:00
bubnikv a28c373d22 Updated bundled profiles. 2020-02-21 18:43:26 +01:00
bubnikv 29086aa00b Fix of a regression from e0811e4aa5
Due to refactoring of G-code export some "don't care" extrusions
were not extruded at all.
2020-02-21 18:18:17 +01:00
bubnikv a7ffd2a6fe GUI::show_error() is now generalized for std::string and const char*
Fixed return type of std::string translate_utf8() with context
(incorrectly returned wxString, should return std::string).
Fixed double translation of BackgroundSlicingProcess::validate() in Plater.
2020-02-21 13:38:06 +01:00
bubnikv aef93158ec Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-02-21 12:18:57 +01:00
bubnikv 377b9e4b45 ImGUI input_double wrapper for wxString label.
Possible fix of Fix encoding in Hollowing #3683
2020-02-21 12:17:46 +01:00
bubnikv 004b23e362 Fix of Bug: Changing print settings resets filament settings #3675
When switching a Print profile, the modifications of an active Filament
profile were incorrecly dropped even if the active Filament profile
was compatible with the newly selected Print profile.
2020-02-21 11:03:03 +01:00
bubnikv dfbae648bf Follow up on 6deb6a776d:
Fixed orientation of contours after Elephant Foot Compensation.
2020-02-19 12:58:03 +01:00
bubnikv ab72d5135b Fix of Placeholders do not respect filament overrides. #3649 2020-02-19 10:56:30 +01:00
bubnikv 0228375512 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-02-18 15:44:07 +01:00
bubnikv b47246f69b Fixed a bug, where the top or bottom solid layers were created even
if the number of top / bottom solid layers was set to zero while
the top / bottom minimum shell thickess was set nonzero.

With this commit, if the top / bottom solid layers is set to zero,
there are no top / bottom solid layers generated independent from
the minimum top / bottom shell thickness.
2020-02-18 15:44:01 +01:00
bubnikv 25d6818fc7 Fix of
Opening saved project removes Print Host settings #3655
Octoprint Settings when Opening a .3MF file #3244

When loading a configuration file (from AMF, 3MF, .ini or .gcode),
and if the host settings ("print_host", "printhost_apikey", "printhost_cafile")
in the configuration file is empty, then the config is considered to be anonymized,
and these anonymized keys are loaded from the referenced "derived from" profile,
if it exists in user's PrusaSlicer configuration directory.

We are aware that this is a patch work and a better long term solution
is to separate physical printer settings from logical printer settings,
but this is a good enough solution for PrusaSlicer 2.2.0 release.
2020-02-18 14:13:56 +01:00
bubnikv 43f2171446 Partial fix of v2.2.0 alpha2 Unhandled exception - extrusion width #3482
Exceptions thrown by Flow calculation were made explicit classes derived
from std::invalid_argument.

The PresetHints::recommended_thin_wall_thickness() newly catches these
exceptions and it shows the reason of why the hint is invalid.
2020-02-18 12:26:56 +01:00
bubnikv 1850685431 One more fix for Make compile and works for FreeBSD (#3556) 2020-02-18 10:15:41 +01:00
bubnikv 26a6a9b23f Fixed regression crashing when generating G-code with supports. 2020-02-10 16:37:38 +01:00
bubnikv 7655488639 Ammendment of
Reverted the time estimate number stored into the G-code from
    days/hours/minutes to days/hours/minutes/seconds, because who knows
    who is already parsing the file.
2020-02-10 15:53:11 +01:00
bubnikv 9f40e9e56e Reverted the time estimate number stored into the G-code from
days/hours/minutes to days/hours/minutes/seconds, because who knows
who is already parsing the file.
2020-02-10 15:46:08 +01:00
bubnikv a25f58731e Fix of d81f7d8465
(SlicedInfo: Removed secondes from estimated times):
GCodeTimeEstimator::_get_time_dhm() shall round to minutes, old
code rounded down to minutes, new code rounds to 1/2.
2020-02-10 14:40:21 +01:00
bubnikv bfbf3ac94d Follow up on the hot fix of #3637 53bfb6bed3
This is the correct solution, which maintains the optimization introduced
by 3e0690b37b
2020-02-10 14:24:28 +01:00
bubnikv 53bfb6bed3 Hot fix of Object disappears when wipe to object turned on #3637
which is a regression of an optimization 3e0690b37b

With the optimization disabled, the G-code generator will not be slower
than PrusaSlicer 2.1.1. I am leaving the code there to mark for
further optimization opportunities.
2020-02-10 08:24:39 +01:00
bubnikv 519a982fe9 Fix of #3632: Crash if a thin wall object is not printable, therefore
no extrusion is generated.

Now the situation is detected and an exception is thrown.
2020-02-09 18:34:06 +01:00
bubnikv 5eb1e7e886 Fixed a bug in the update of the backend when the Spiral Vase option
is enabled / disabled.

Spiral Vase forces different kind of slicing than the normal model:
In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
Therefore toggling the Spiral Vase on / off requires complete reslicing.

This commit moves the update to the correct location.
2020-02-09 13:56:42 +01:00
bubnikv 9ae0311434 bumped up the version number. 2020-02-09 11:01:15 +01:00
bubnikv e7d2fcf0be Fixed unit tests broken with the previous commit (Spiral Vase fix).
Fixed a crash in the previous commit.
2020-02-09 09:43:15 +01:00
bubnikv 76433da64c Printer profiles were updated by @rtyr 2020-02-08 22:11:44 +01:00
bubnikv 4e11552da9 Spiral vase improvements and bugfixes.
Fixes Connecting / expanding Bottom Layers to Vase Perimeter #253
Fixes Slicing error in vase mode #452
Fixes Slicing Issue (Vase Mode, 0.6mm dmr nozzle) #1887
Fixes Top fill pattern isn't used in spiral vase mode #2533
Fixes Cisar's vase doesn't slice correctly, creates artefacts #3595

When the model is sliced, all the contours are newly oriented
counter-clockwise (even holes), merged and then only the largest area
contour is retained. In perimeter generator, if the largest contour
splits into multiple perimeters, newly only the largest area perimeter
is retained in spiral vase mode. These two changes solve #3595 and similar.

The infill is newly calculated only for the bottom solid layers
if the spiral vase mode is active (removes various unwanted infill
along the vase walls), and the last bottom solid layer is switched
to a top solid pattern (solves #2533).

The thin walls are newly enforced to be disabled in spiral vase mode,
and the "ensure vertical shell wall" is enforced in spiral vase mode
to extend the bottom of the vase to the vase hull (fixes #253).
2020-02-08 21:36:43 +01:00
bubnikv 348bf39012 Fix of the previous commit: Fixed sequential print unit tests. 2020-02-07 14:43:13 +01:00
bubnikv b8c898bf40 Fixed a bug in validation of the FDM Print to check for extruder
collisions against already printed objects: Rotation of an object
was not being taken into account.
Fixes #2450 PrusaSlicer 2.0 Sequential printing vs rotate object
Fixes #3585 Always Sequential Printing Error (Regardless of setting, placement or object size)

Fixed some collisions in sequential print just after arrangement by
making the validation using a slightly lower extruder radius value
than the arrangement.

Refactored PrintObject coordinate system so that the PrintObject's
coordinate system is always centered in respect to its ModelObject's
geometries. This refactoring may improve path planning a bit and
it may lower the requirements on bits representing Clipper coordinates
by 1 bit.
2020-02-07 14:10:27 +01:00
bubnikv fb235cb675 Color change - handling Color Change data stored for different
printer configuration:

ss -> sm : Just apply the color changes of the original ss project at the active extruder.
ss -> mm : There are no tool changes stored. Ignore color changes, they are invalid because they are extruder non-specific.

sm -> ss : Apply tool changes as color changes (tool changes remember the target color), apply original color changes.
sm -> mm : Ignore both color changes and tool changes.

mm -> ss/sm : Ignore both color changes and tool changes.
2020-02-06 14:03:27 +01:00
bubnikv adf60d5931 Fix of the new top / bottom shell thickness hint. 2020-02-06 11:00:35 +01:00
bubnikv 34588f365d For the builds with a label assigned (no commit after the label),
show just the label in the application title. For Win32, add the
" 32 bit" indicator, so that we may see clearly if somebody is running
a 32bit build on 64bit windows by a mistake.
2020-02-06 10:17:22 +01:00
bubnikv 495a71ed00 Implemented top_solid_min_thickness / bottom_solid_min_thickness.
The two new config keys define a minimum vertical shell thickness.
The top shell thickness is calculated as a maximum of sum over
top_solid_layers * layer heights and top_solid_min_thickness,
the bottom shell thickness is calculated as a maximum of sum over
bottom_solid_layers * layer heights and bottom_solid_min_thickness.

The results of the formula above are shown at the Print parameter page
below the two new values to hint the user about the interaction
of the old versus new config values.

top_solid_min_thickness has no meaning if top_solid_layers is zero,
bottom_solid_min_thickness has no meaning if bottom_solid_layers is zero.
2020-02-05 16:53:48 +01:00
bubnikv bca3e86455 Fixed invalidation of FDM back end if a custom per layer
extruder change is added or removed.
2020-02-04 17:46:31 +01:00
bubnikv 450e21d457 Replaced unsafe use of dx_url.substr(0, 54) with boost::starts_with 2020-02-04 16:10:39 +01:00
bubnikv 059bdb4711 Implemented handling of complex ConfigOptionFloatOrPercent chains
by the PlaceholderParser.

Namely, all the options with the "ratio_over" reference are now handled
correctly by the PlaceholderParser with the exception
of the "first_layer_extrusion_width", which overrides speed of extrusions
by their respective extrusion type.

Also the various extrusion widths (extrusion_width, first_layer_extrusion_width,
external_perimeter_extrusion_width etc.) produce the same numbers
as if ran through the back-end, with the assumption of not overriding
layer height by the variable layer height editing tool or layer height
modifiers.
2020-02-04 15:27:38 +01:00