Commit Graph
100 Commits
Author SHA1 Message Date
Lukas Matena f60ff1c7ce Fixup of previous commit: actually adding new source files 2019-12-13 15:08:44 +01:00
Lukas Matena 2cb30f3641 First prototype of CGAL hole-drilling 2019-12-13 13:42:10 +01:00
Lukas Matena 9805b02a25 Removed an obsolete variable from MeshRaycaster 2019-12-12 13:19:16 +01:00
Lukas Matena 537260494d Merge branch 'master' into lm_tm_hollowing 2019-12-12 11:37:33 +01:00
Lukas Matena c284a65caa Warning fix: removed needless tautological check 2019-12-12 10:45:30 +01:00
Lukas Matena 135660decf SLA gizmos fix: clipping of points/holes always used coords from the first instance
Few warnings fixed
2019-12-12 10:40:28 +01:00
Lukas Matena e747577271 Added a validation check to reject wipe tower in sequential prints
This scenario was never supported (#3283)
2019-12-11 08:12:19 +01:00
Lukas Matena f6e217171a Added comments in MeshUtils.hpp
PIMPL in MeshRaycaster now uses std::unique_ptr instead of raw pointer
2019-12-10 09:53:34 +01:00
Lukas Matena 4ba7cb7ede Fix of the wipe tower starting point
see issues #2968, #3234 and #3248
2019-12-04 13:47:02 +01:00
Lukas Matena 3ef34848c7 Fix of skirt: wipe tower was not correctly processed when rotated 2019-12-04 13:45:42 +01:00
Lukas Matena a6e737f05a Various small changes in hollowing gizmo:
- changed layout of controls
- fixed supports appearing when they shouldn't
- fixed clipping plane (holes were hidden at a bit different position of the plane then appropriate)
- when hollowing is done, clipping plane is automatically moved to show the cavity
- the dialog should no longed overlap bottom-left corner controls
- gizmo controls now correspond to config values in ObjectSettings box and both update each other
- added undo/redo support when manipulating holes
2019-12-03 10:45:49 +01:00
Lukas Matena 14d56929e7 SLA drain holes can be removed by right click, Ctrl+A selects all holes 2019-11-29 14:12:31 +01:00
Lukas Matena 735f82c019 Hollowing gizmo has now its own shortcut [H], fixed a situation with supports showed in editing mode 2019-11-29 13:56:39 +01:00
Lukas Matena 53976de250 Merge branch 'master' into lm_hollow_gizmo 2019-11-29 10:20:37 +01:00
Lukas Matena f2a810f335 Merge branch 'lm_tm_hollowing' into lm_hollow_gizmo 2019-11-29 10:20:32 +01:00
Lukas Matena 73af7c64b8 SLATreeSupports generator now takes account for holes and can build supports through them 2019-11-29 10:19:02 +01:00
Lukas Matena bc0db7dc91 Quickly added a hole height setting 2019-11-22 15:45:48 +01:00
Lukas Matena c6e112a060 Merge branch 'lm_tm_hollowing' into lm_hollow_gizmo 2019-11-22 12:04:54 +01:00
Lukas Matena 2c1d256b0c EigenMesh3D raycaster should now be able to pick a correct intersection on the object or inside a hole 2019-11-22 11:14:38 +01:00
Lukas Matena 9dd18a8d6d Started work on extending EigenMesh3D to account for possible drain holes when raycasting 2019-11-19 11:33:49 +01:00
Lukas Matena bbb519ad0e Fixed a typo in MeshUtils.hpp 2019-11-16 08:22:39 +01:00
Lukas Matena 88514eeb0e Merge branch 'lm_low_wipe_tower' 2019-11-14 10:37:04 +01:00
Lukas Matena 53cdb8ef53 No sparse layers option marked as EXPERIMENTAL 2019-11-14 10:05:02 +01:00
Lukas Matena 73ae733484 New icon for the hollowing gizmo 2019-11-12 15:04:40 +01:00
Lukas Matena b6edd5ddb9 SLA support points gizmo renders the holes and does not allow to place a support point in them 2019-11-12 11:48:12 +01:00
Lukas Matena b4795e1292 Unified igl calls in MeshRaycaster and EigenMesh3D
MeshRaycaster is still aware of the clipping plane but it now uses EigenMesh3D internally
Public interface of both classes is unchanged
2019-11-08 20:18:14 +01:00
Lukas Matena 645f13a0ae Drain holes are now saved in ModelObject
Internal changes in GLGizmoHollow.cpp
2019-11-08 14:05:56 +01:00
Lukas Matena 9836533cb3 Hollowing task triggered by the gizmo now spawns a UI job to not block the UI thread
The AABB tree calculation is still done in the UI thread, so it gets blocked for some time
2019-11-07 14:25:03 +01:00
Lukas Matena eaf815ca4b Merge branch 'lm_hollow_gizmo' into lm_tm_hollowing 2019-11-05 14:41:06 +01:00
Lukas Matena 013e613221 Hollowing gizmo can now actually trigger the hollowing and render result 2019-11-05 14:40:22 +01:00
Lukas Matena 7542580ac1 Merge branch 'tm_openvdb_integration' into lm_hollow_gizmo 2019-11-05 11:16:51 +01:00
Lukas Matena 3fe160e60a Added possibility to change hole height and taper
The parameters are yet not saved in ModelObject and they are common for all holes
2019-11-05 10:17:30 +01:00
Lukas Matena 04bcdff110 Added new hollowing gizmo
Basically just copied SLA support gizmo and removed all functionality that will not be needed
2019-11-05 10:17:27 +01:00
Lukas Matena d632d91e79 WipeTower.cpp: The M220 B/R gcode is only emitted for Marlin firmware flavor
The extended gcode is now only supported by Prusa (https://github.com/prusa3d/PrusaSlicer/issues/3114)
A pull request https://github.com/MarlinFirmware/Marlin/pull/15739 aims to extend the gcode in upstream Marlin as well
2019-10-31 15:08:20 +01:00
Lukas Matena 8b5561aec7 Fixed several warnings 2019-10-29 10:40:34 +01:00
Lukas Matena 62c90abbc0 Fix of SPE-1041: set_state function for gizmos is called even if they are turned on/off by the undo/redo action 2019-10-25 13:10:33 +02:00
Lukas Matena fb7bba2b5a CMakeLists.txt: turning off -W-ignored-attributes, there are loads of those with newer GCC, originating from Eigen (https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221) 2019-10-17 09:56:38 +02:00
Lukas Matena 605f0ecd54 Revert "CMakeLists.txt: turning off Wno-ignored-attributes on GCC and Clang again"
That change breaks compilation on the old buildserver (gcc 5.4). We'll deal with the warning later somehow.

This reverts commit 50448bf4dd.
2019-10-16 12:53:25 +02:00
Lukas Matena 50448bf4dd CMakeLists.txt: turning off Wno-ignored-attributes on GCC and Clang again
Eigen still produces tons of those warnings on newer gcc
2019-10-15 15:10:52 +02:00
Lukas Matena 0dfbfa62df wxExtensions.cpp: BitmapChoiceRenderer now updates config immediately after its combobox closes
This was needed because for some reason, the combobox would not lose focus when mouse left the ObjectList on Linux (KILL_FOCUS forces the update).
The update could be bypassed on Win too by changing extruder and hitting shortcut to reslice.
2019-10-10 11:03:55 +02:00
Lukas Matena 7b45014721 GCode.cpp: Removed a failing assert that was no longer needed
The situation it checked happens when the wipe tower is lower than the tallest print object.
The function processes that correctly.
2019-10-10 09:54:27 +02:00
Lukas Matena 59a6318931 Merge branch 'lm_wipe_tower_in_skirt' 2019-10-08 14:13:07 +02:00
Lukas Matena cf030e8958 Simplified inclusion of the wipe tower into skirt calculation 2019-10-08 14:12:40 +02:00
Lukas Matena fdf9272fbe Wipe tower brim width is now part of WipeTowerData class, so it can be used wherever needed 2019-10-08 13:50:51 +02:00
Lukas Matena 9a9c3bac39 Fixup of 47a8b49 2019-10-08 11:05:59 +02:00
Lukas Matena 61cee54dd3 Merge branch 'master' into lm_low_wipe_tower 2019-10-01 13:24:25 +02:00
Lukas Matena 38d8854a48 Print::validate() - check for empty print has been moved at the beginning of the function
This prevents a crash when the print is empty and the wipe tower enabled - validation of the wipe tower attempted to access extruders().front(), which was empty.
No other checks need to be done with the empty print anyway.
2019-10-01 12:48:58 +02:00
Lukas Matena b5e3899267 Wipe tower: Sparse layers are not included in filament consumption in case that the 'no sparse layers' option is set 2019-10-01 11:41:37 +02:00
Lukas Matena 5ded376fe2 An attempt to fix #2997
More fixes might be needed on the other platforms
2019-09-28 09:57:26 +02:00
Lukas Matena d57a09558e Several fixes of previous commits related to KDTreeIndirect.hpp and ShortestPath.cpp/.hpp 2019-09-27 13:30:07 +02:00
Lukas Matena 5123673b3a CMakeLists: filename fix so everything works on case-sensitive filesystems 2019-09-27 11:42:52 +02:00
Lukas Matena 661c91a821 Fixing Linux build
GCC 4.8 does not fully support C++11 and in-class char array initialization
2019-09-27 11:31:16 +02:00
Lukas Matena dbc51a140d Fixed erroneous use of logical OR where bitwise OR was meant
Also, PrintBase::SlicingStatus enum had two entries assigned to 0 - removed the one that was never used
2019-09-25 12:18:30 +02:00
Lukas Matena 1d18339e62 PRUS.cpp: Fixed an always-true condition in extract_model_from_archive
SupportMaterial.cpp: Simplified one condition (also solves a -Wmaybe-uninitialized warning on gcc)
2019-09-24 18:09:48 +02:00
Lukas Matena b67d8c1614 Fixed memsetting non-trivially-copyable types
Types stl_stats, stl_normal and SurfaceFillParams should not be zeroed by memset
This is not correct and also triggered warnings on gcc
2019-09-24 17:09:07 +02:00
Lukas Matena 7861fa5086 Whitespace changes to supress misleading indentation warnings
These appear in newer gcc when spaces and tabs are mixed
2019-09-24 16:01:01 +02:00
Lukas Matena c1e3be9b27 MeshUtils.cpp: MeshRaycaster is now aware of the clipping plane 2019-09-24 12:58:12 +02:00
Lukas Matena 656569b0e9 Fix of https://github.com/prusa3d/PrusaSlicer/issues/2953
printf-like function argument mismatch: num was long, which was obfuscated by the auto keyword
2019-09-20 16:47:10 +02:00
Lukas Matena abaebb489a Added a config option to not print sparse layers on the wipe tower 2019-09-20 10:54:20 +02:00
Lukas Matena 04f051ff61 Wipe tower now doesn't print sparse layers, it is instead lower than the object 2019-09-20 10:54:20 +02:00
Lukas Matena b241ba16ed Fixed layer profile equality check for wipe tower validation (fixup of b43003d) 2019-09-20 10:53:50 +02:00
Lukas Matena 76a657ce52 Plater.cpp - better added a range-check when selecting filament color in purging volumes dialog 2019-09-18 12:54:21 +02:00
Lukas Matena 741e98804c Purging volumes dialog now uses filament colour in case extruder color is undefined 2019-09-18 11:47:19 +02:00
Lukas Matena dd7eb0b186 Merge branch 'lm_raycasting_refactoring' into dev 2019-09-17 14:59:14 +02:00
Lukas Matena 6bcafd7c83 SLA gizmo no more uses IGL code directly, all was moved to the new MeshRaycaster class 2019-09-17 14:57:57 +02:00
Lukas Matena 1dfd8a0e62 MeshRaycaster class is now used in SLA gizmo when selecting by rectangle 2019-09-17 14:57:54 +02:00
Lukas Matena 3694bf3da9 Added functions get_hit_pos, get_hit_normal, ready to implement intersect_ray 2019-09-17 14:57:49 +02:00
Lukas Matena b6292247e8 Unproject on mesh in the SLA gizmo is now performed by the MeshRaycaster class 2019-09-17 14:57:45 +02:00
Lukas Matena ee7132a23d Fixup of 4f89672 + allowing negative support_contact_z 2019-09-13 15:47:00 +02:00
Lukas Matena 2c0b5e6a0a Merge branch 'lm_clipping_plane_refactoring' into dev 2019-09-13 12:13:22 +02:00
Lukas Matena 70c0c87598 Renamed MeshClipper.cpp/.hpp to MeshUtils.cpp/.hpp
More helper classes like the MeshClipper could live here
Moved ClippingPlane class in here to start
2019-09-13 12:03:53 +02:00
Lukas Matena 9782701dd4 Calculating the transformations is now only performed by the MeshClipper
Attempted to get mirroring right (that never worked correctly with the clipping plane in the sla gizmo)
The transformation of the support mesh is kind of a mystery to me, hopefully it is right
Also cleaned the code a bit (removed commented-out code, unused variables, etc)
2019-09-13 12:03:53 +02:00
Lukas Matena 546917830b Initial implementation of MeshClipper class
So far the work is shared between the old code in GLGizmoSlaSupports.cpp and the new class
2019-09-13 12:03:53 +02:00
Lukas Matena cf23146ee3 Refactoring the SLA clipping plane
The plane is now internally stored as a plane in world coordinates
2019-09-13 12:03:53 +02:00
Lukas Matena 2fef16c39a Fix of #1266 and #2258
In case there were empty object layers supposed to be floating on supports which were set to use a specific extruder, wipe tower was missing layer required to do the toolchange, leading to a crash
Such cases are now detected and layers that need it are additionally assigned as wipe tower layers

Also tracked as SPE-526
2019-09-10 13:13:21 +02:00
Lukas Matena 4fc20090c8 GUI_ObjectList.cpp: Max layer height defaults to 0.75*nozzle_diameter as it should (#2892) 2019-09-10 12:34:03 +02:00
Lukas Matena c5f78dd6e2 Some more warnings fixed (WipeTower.cpp/.hpp) 2019-09-10 12:08:43 +02:00
Lukas Matena 86b258f727 Fixed many warnings in following files:
src/slic3r/Config/Snapshot.cpp
src/slic3r/GUI/Field.cpp
src/slic3r/GUI/GLToolbar.cpp
src/slic3r/GUI/GUI_ObjectList.cpp
src/slic3r/GUI/GUI_ObjectList.hpp
src/slic3r/GUI/Plater.cpp
src/slic3r/GUI/Plater.hpp
src/slic3r/GUI/PresetBundle.cpp
src/slic3r/GUI/Tab.cpp
src/slic3r/GUI/wxExtensions.cpp
2019-09-10 12:08:43 +02:00
Lukas Matena a62bba2508 CoolingBuffer.cpp: Fixed a crash when encountering an invalid toolchange
This can happen if the user enters invalid toolchange through the custom gcodes
Such toolchange is now simply ignored by the CoolingBuffer, exporting gcode is NOT stopped, a log error is emitted
2019-09-10 11:46:18 +02:00
Lukas Matena 4dbc8b22a5 Updated tooltip 2019-09-09 16:39:26 +02:00
Lukas Matena 97a02f4412 Merge branch 'lm_custom_toolchange' 2019-09-09 16:12:09 +02:00
Lukas Matena 822bc7a91c Fix of previous commit, tooltip update 2019-09-09 16:02:39 +02:00
Lukas Matena 499fdeddd1 Custom toolchange gcode is searched for tool-changing command
If the custom toolchange gcode switches extruder to the one that is expected, PrusaSlicer does not issue its own T command
Otherwise, this command is inserted just after the custom gcode, even in case it is not empty
This should prevent issues such as #2884 and #2886 from being reported
2019-09-09 13:05:18 +02:00
Lukas Matena a985a2720f Fixed some more warnings, moved function to get ExtrusionRole name into ExtrusionEntity.hpp
So it can be called from wherever it may be needed
2019-09-06 15:55:07 +02:00
Lukas Matena 3f988b314c Fixed several warnings (Config.hpp and few other files) 2019-09-06 15:55:07 +02:00
Lukas Matena 6cc29c308c Fill.cpp: Fixed a typo 2019-09-05 16:03:44 +02:00
Lukas Matena 09e4ac42ba Fixed some more warnings (mostly GLGizmoSlaSupports.cpp) 2019-09-04 16:05:32 +02:00
Lukas Matena 570bec299f Merge branch 'master' into dev 2019-09-04 15:50:18 +02:00
Lukas Matena 326eb5e343 GUI_ObjectList.cpp: Fixed a crash when deleting instances.
Deleting second-but-last instance deletes the whole Instances node, we must select object node in that case.
2019-09-04 15:15:35 +02:00
Lukas Matena 805a5d22a1 Fixed couple of warnings in WipeTower.cpp, ToolOrdering.cpp and GCode.cpp 2019-09-04 14:56:35 +02:00
Lukas Matena fd47891793 GLGizmoSlaSupports.cpp: Snapshot label now differs for turning the gizmo on/off
This behaviour was broken by recent merge
2019-09-03 10:16:06 +02:00
Lukas Matena b89d9c7aff Merge branch 'lm_gizmomanagerrefactoring' into dev 2019-09-03 08:29:31 +02:00
Lukas Matena 66d74bc591 Merge branch 'lm_layer_height_validation' into dev 2019-09-02 16:31:59 +02:00
Lukas Matena 7d54b04699 Merge branch 'lm_wiping_dialog_colors' into dev 2019-09-02 16:31:22 +02:00
Lukas Matena 9ac6909d30 Fixed couple of warnings in GUI_ObjectList.cpp and GUI_ObjectSettings.cpp 2019-09-02 16:27:48 +02:00
Lukas Matena 942f959e87 Fixed couple of warnings
Turned several includes into forward declarations
Removed several sprintf calls in favor of std::to_string
2019-09-02 16:27:48 +02:00
Lukas Matena 19ab746a38 Merge branch 'master' into lm_gizmomanagerrefactoring 2019-09-02 14:31:03 +02:00
Lukas Matena d8a274c5ab Nearly finished refactoring of GLGizmoManager 2019-09-02 14:30:15 +02:00
Lukas Matena 409a7c7734 SLA gizmo open/close should be saved on undo/redo stack 2019-09-02 14:30:15 +02:00
Lukas Matena b6d35c9840 Started an attempt to refactor GLGizmoManager 2019-09-02 14:30:12 +02:00