Commit Graph
100 Commits
Author SHA1 Message Date
Lukas Matena 79ce691d58 Don't calculate the AABB tree in FDM mode 2020-02-08 17:17:51 +01:00
Lukas Matena 6dd79d4923 Added a missing include
Suggested in #3621
2020-02-08 11:42:45 +01:00
Lukas Matena 808e45f5b3 Force backend update when hollowing gizmo is closed
Otherwise, moving holes will not invalidate the drilled mesh
One cannot do it immediately though, because that would also hide the hollowed mesh
2020-02-07 14:17:14 +01:00
Lukas Matena e66632a595 Hollowing parameters should be labeled the same in the gizmo and in presets 2020-02-07 14:03:55 +01:00
Lukas Matena 665bc9e960 Hollowing: allow to place drain holes on the inner surface of a hollowed cavity
Drain holes are not allowed to be placed on its own inner surface. This was recently (0e3ebb3)
done by forcing invalidation of the slaposDrillHoles, which also invalidates and therefore
hides the drilled mesh. However, that also hides the hollowed mesh and it is not possible
to place holes inside the cavity.

This change does not dump the drilled mesh, but checks that no raycast hit ends up in a hole.
2020-02-06 17:58:26 +01:00
Lukas Matena 3c23917e9e SLA gizmos: make sure that the clipping plane is properly reset to zero when the shown meshes are exchanged 2020-02-06 14:46:02 +01:00
Lukas Matena f902fc3445 Don't forget to copy drain holes when an object is copied 2020-02-06 14:23:03 +01:00
Lukas Matena 617912ecc1 Fixed a crash on deleting object with SLA gizmo active
Rephrased text informing about hidden objects in both SLA gizmos
2020-02-04 15:03:10 +01:00
Lukas Matena 0e3ebb3e07 Hollowing gizmo: Invalidate drilled mesh in case a hole is manipulated
This way the holes cannot be placed on its own walls
Downside is that AABB trees have to be recalculated
2020-02-04 15:03:10 +01:00
Lukas Matena 808cf2e38a Hollowing: merge meshes of holes with igl (intersecting holes) 2020-02-04 15:03:10 +01:00
Lukas Matena 58b5e75a9c SlaSupports gizmo - show holes position even when user did not Preview the drilled mesh 2020-02-04 15:03:10 +01:00
Lukas Matena d0f21dda4a Make sure that when drill holes are manipulated with, all data are invalidated properly
It is needed to regenerate hollow_mesh_with_holes completely, it may contain holes that were deleted by the user in the meantime
2020-02-03 17:31:18 +01:00
Lukas Matena 6a2604cfe0 Merge branch 'lm_drilling_backend_rebased' 2020-02-03 15:46:02 +01:00
Lukas Matena 227cc4dc33 Fixed conflicts after merge
slaposHollowing was divided into slaposHollowing and slaposDrillHoles on master
This commit takes this into account on the code that was merged from lm_drilling_backend_rebased
2020-02-03 15:42:54 +01:00
Lukas Matena a1d4dab999 Merge branch 'master' into lm_drilling_backend_rebased 2020-02-03 15:20:16 +01:00
Lukas Matena d407fda433 Hollowing gizmo - controls layout improvements 2020-02-03 15:17:18 +01:00
Lukas Matena 79da3a95e1 Clipping plane is now common for Hollowing and SLA supports gizmos 2020-02-03 15:17:18 +01:00
Lukas Matena 378321231f Fix of tripping glAssert after switching to Preview on Linux/GTK2
(fix suggested and thus approved by @enricoturri1966)
2020-01-31 14:50:37 +01:00
Lukas Matena 4bc4e347fb Fixed a crash during cut (typo introduced in 645f13a) 2020-01-31 08:54:41 +01:00
Lukas Matena a6f7fc93f4 Gizmo updates - forget everything about the loaded mesh when an object is deselected 2020-01-30 15:26:23 +01:00
Lukas Matena 4f43c6d3f8 SlaSupports gizmo - most of updating now assumes that common data struct is updated properly 2020-01-30 14:31:52 +01:00
Lukas Matena 08dcbd0271 Hollowing gizmo - most of updating now assumes that common data struct is updated properly 2020-01-30 14:31:39 +01:00
Lukas Matena b0aa937215 Trying to improve drilling stability by handling CGAL exceptions 2020-01-29 15:57:49 +01:00
Lukas Matena b41c6d7d64 Refuse to drill a broken mesh
Hole parameters defaults and limits changed a bit
2020-01-29 14:07:12 +01:00
Lukas Matena 3f73261fdb Fixed transformation of the hollowed mesh to be used at frontend
Common gizmos data update is called from GLGizmoManager
2020-01-29 10:08:26 +01:00
Lukas Matena 46fdce1169 SLA gizmos can now fetch hollowed and drilled mesh from the backend 2020-01-29 10:08:26 +01:00
Lukas Matena 76927ce399 REVERT LATER: TEMPORARILY MANGLED reload_scene FUNCTION
This commit horribly cripples reload_scene function just to update volumes in scene so that Hollowing and SLASupport gizmos can be updated to the new logic
    It should be later reverted and the same be achieved in a better way
2020-01-29 10:07:59 +01:00
Lukas Matena 5ae2f8a467 Function sla_trafo made accessible from outside SLAPrint.cpp unit 2020-01-29 10:07:10 +01:00
Lukas Matena cf391383a8 Merge branch 'lm_drilling_backend' 2020-01-24 10:56:40 +01:00
Lukas Matena 1c0aedbbe5 Hollowing gizmo can now trigger the backend calculation 2020-01-24 10:53:40 +01:00
Lukas Matena d58ee47e4d Fixed incorrect hole normal transformation when the object is anisotropically scaled 2020-01-24 10:53:40 +01:00
Lukas Matena 022cc0871a Allowed to do drilling without hollowing 2020-01-24 10:53:40 +01:00
Lukas Matena 63b0eec5a9 Merge branch 'master' into lm_tm_hollowing 2020-01-21 13:00:07 +01:00
Lukas Matena d8f2c8cdab Fixed a bug in the hole-aware raycaster 2020-01-17 16:02:23 +01:00
Lukas Matena 79e546816d Fixed unit test (sla_print_tests - random number generator seeding) 2020-01-16 14:03:43 +01:00
Lukas Matena 43fefd1c43 Merge branch 'lm_hollowing' into lm_tm_hollowing 2020-01-16 13:19:10 +01:00
Lukas Matena d9786f2bcd Fixed SLA gizmos picking problem - hollowed mesh was not rendered for picking 2020-01-16 13:18:43 +01:00
Lukas Matena 822f9ff4a6 Fixed issues in SLA gizmos related to showing/hiding of the model/support structures 2020-01-16 13:18:43 +01:00
Lukas Matena 902d3bb904 Fixed loading of hole_height when a hole is selected (hollowing gizmo) 2020-01-16 13:18:43 +01:00
Lukas Matena 6e8bdb2c86 Fixed update of clipping plane when a gizmo was turned off 2020-01-16 13:18:43 +01:00
Lukas Matena 8c8256c6a2 Fixed diameter/radius mismatch in gizmo UI 2020-01-16 13:18:43 +01:00
Lukas Matena a3f3c868eb Removed needless calls to instance_bounding_box 2020-01-16 13:18:43 +01:00
Lukas Matena fd6c9582d5 Refactoring fix: making sure that mark_wiping_extrusions doesn't report it wiped something it didn't 2020-01-14 15:43:43 +01:00
Lukas Matena d0d73e6109 Hollowing config values contain min/max values, these are respected when setting through the gizmo
Rendering and hole transformation fixes (still WIP, though)
2020-01-14 10:33:10 +01:00
Lukas Matena f22961edae Fixed a raycaster problem with handling duplicate hits from igl
The duplicate hits confused winding number calculations in the raycaster, which in turn returned incorrect hit.
2020-01-09 14:09:26 +01:00
Lukas Matena e9d340c87f Fixed transformations of the hollowed GLVolume 2020-01-09 14:09:26 +01:00
Lukas Matena ff065aa9ba Switched order of hollowing and support points gizmos 2020-01-09 10:01:21 +01:00
Lukas Matena 6a870ef8bb Fixed incorrect z-shift when showing hollowed object 2020-01-06 16:02:55 +01:00
Lukas Matena 0551411c48 Merge branch 'master' into lm_tm_hollowing 2020-01-06 12:41:29 +01:00
Lukas Matena 68d0f5b4ef Corrected description of --loglevel parameter on command line output 2020-01-06 12:07:23 +01:00
Lukas Matena b08a315a46 Fix of #3359: Ender icon case was not matching profile name
Also added an icon to show when the correct one is not found
2020-01-06 10:39:33 +01:00
Lukas Matena 37c64b1a62 Hopefully a fix for #3342 - dark mode icons lookup 2019-12-21 14:43:22 +01:00
Lukas Matena 13f1bb2e43 An attempt to fix missing renaming from .gcode.tmp to .gcode
Added a missing include
2019-12-21 12:31:32 +01:00
Lukas Matena 4d182a5748 Fixed scaling of the holes and instance showing/hiding 2019-12-20 11:33:14 +01:00
Lukas Matena b3f15b1c98 Merge branch 'master' into lm_tm_hollowing 2019-12-20 10:33:53 +01:00
Lukas Matena cfd0fa9ae5 Merge branch 'lm_common_gizmos_data' into lm_tm_hollowing 2019-12-20 10:24:37 +01:00
Lukas Matena d1f86e0a80 SLA supports gizmo now uses hollowed mesh when available
Bugfix: SLA support tree is is now given the hollowed mesh, not the original
Added ImGui separators and change background alpha in hollowing gizmo dialog (to match the other gizmos)
2019-12-20 10:17:59 +01:00
Lukas Matena 57cf3d17e2 First steps on SLA and Hollowing gizmo data sharing 2019-12-17 15:57:24 +01:00
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