Commit Graph

906 Commits

Author SHA1 Message Date
Enrico Turri
ac3408a4ab Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-06-04 09:29:07 +02:00
Enrico Turri
7d56b38e40 Merge branch 'master' of https://github.com/prusa3d/Slic3r into opengl_to_cpp 2018-06-04 09:28:55 +02:00
Vojtech Kral
4df0b94b79 Beta bugfixes (#931)
* Fix: Function signature in avrdude

* Fix: Remove mockup vendor bundles

* Fix: Make ConfigWizard error handling more friendly

* Fix: Opening the datadir in AppImage-based Slic3r
2018-06-04 09:07:29 +02:00
Enrico Turri
364134515b Refactoring and cleanup 2018-06-01 15:54:41 +02:00
Enrico Turri
6bf009edee 3DScene mouse event handler partially moved to c++ - part 2 2018-05-31 16:04:59 +02:00
Enrico Turri
276533e236 3DScene mouse event handler partially moved to c++ 2018-05-31 13:51:50 +02:00
YuSanka
c857b68fbe Functions "Add/Delete" objects to/from list works correct now 2018-05-31 08:43:10 +02:00
Enrico Turri
30a3b2179b 3DScene timer and _variable_layer_thickness_action method moved to c++ 2018-05-30 15:18:45 +02:00
Enrico Turri
5a8d1ffdba Prototype for exporting estimated remaining time into gcode for default and silent mode 2018-05-30 12:08:03 +02:00
Enrico Turri
2f773a89df 3DScene set_viewport_from_scene method moved to c++ 2018-05-29 15:36:09 +02:00
Enrico Turri
df14a3c399 3DScene update_volumes_colors_by_extruder method moved to c++ 2018-05-29 15:07:06 +02:00
Enrico Turri
5ee5465f94 3DScene mark_volumes_for_layer_height method moved to c++ 2018-05-29 14:34:45 +02:00
Enrico Turri
363a964ebb 3DScene render method partially moved to c++ 2018-05-29 13:54:34 +02:00
Enrico Turri
db260a669c 3DScene mouse wheel event moved to c++ 2018-05-28 15:23:01 +02:00
Enrico Turri
aacdcd4add 3DScene layers editing mouse containment methods moved to c++ 2018-05-28 14:39:59 +02:00
Enrico Turri
994222c317 3DScene _first_selected_object_id_for_variable_layer_height_editing method moved to c++ 2018-05-28 14:10:02 +02:00
Enrico Turri
951e8528b4 3DScene layers editing parameters moved to c++ 2018-05-28 13:43:29 +02:00
YuSanka
d93a8aec3d New concept of the main IU.
* only 2 mode - Regular & Expert
* "Export Gcode" moved to bottom of the window (analogue to the PrusaControll)
* Experiments with layout of collapsible_pane [! not successful]
2018-05-27 22:12:01 +02:00
Enrico Turri
a8311bd1bd 3DScene layer_editing_allowed method moved to c++ 2018-05-25 16:28:24 +02:00
Enrico Turri
c51ce63b9b 3DScene layer editing overlay completely moved to c++ 2018-05-25 15:56:14 +02:00
Enrico Turri
455076231b Layers editing shader moved to c++ 2018-05-25 14:05:08 +02:00
Enrico Turri
bdbc86167c 3DScene volume selection methods moved to c++ 2018-05-25 09:03:55 +02:00
Enrico Turri
70664122af 3DScene layer height profile rendering moved to c++ 2018-05-24 15:17:01 +02:00
Enrico Turri
f31c55ceed 3DScene layer editing overlay textures rendering moved to c++ 2018-05-24 13:46:17 +02:00
Enrico Turri
751b41b94b 3DScene picking pass moved to c++ 2018-05-23 15:35:11 +02:00
Enrico Turri
90c50b281a 3DScene mouse variables moved to c++ 2018-05-23 13:56:54 +02:00
Enrico Turri
91b9b8aebf Fixed wrong layer height texture updates when using multiple objects 2018-05-23 12:49:56 +02:00
tamasmeszaros
a7298d9d89 Merge with latest master 2018-05-23 12:27:07 +02:00
Enrico Turri
b36243ba10 Objects rendering moved to c++ 2018-05-23 11:14:49 +02:00
Enrico Turri
b4beb7aae9 3DScene plain shader moved to c++ 2018-05-23 09:57:44 +02:00
YuSanka
83cec1a640 Merge remote-tracking branch 'origin/master' into new_main_page_ui 2018-05-23 08:30:27 +02:00
Enrico Turri
85b6784dcb Merge with master 2018-05-22 15:03:40 +02:00
bubnikv
306d77559e Merge remote-tracking branch 'remotes/origin/scene_manipulators' 2018-05-22 14:32:07 +02:00
YuSanka
2a8391dfbf Merge remote-tracking branch 'origin/master' into new_main_page_ui 2018-05-22 09:05:34 +02:00
Enrico Turri
451c58d58f 3DScene's enable_picking variable moved to c++ 2018-05-22 09:02:42 +02:00
Enrico Turri
59af3fb866 Merge branch 'master' of https://github.com/prusa3d/Slic3r into opengl_to_cpp 2018-05-22 08:33:23 +02:00
Enrico Turri
369d027544 Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-05-22 08:30:30 +02:00
bubnikv
7b4aeef40c Moved the "Flash firmware" menu to "Configuration",
removed the "Check for updates" from the "Configuration" menu,
added an "Open file explorer at the datadir" item to the Help menu.
2018-05-21 21:04:03 +02:00
bubnikv
33f21422e6 Added friendly names to serial ports, added automatic selection of Prusa's printers in the firmware updater dialog 2018-05-21 18:58:22 +02:00
Vojtech Kral
af360d7097 Firmware updater GUI 2018-05-21 18:58:22 +02:00
Enrico Turri
ae53c7cb2e Volumes rendering moved to c++ 2018-05-21 15:57:03 +02:00
Enrico Turri
0f035d0bae Background rendering moved to c++ 2018-05-21 15:24:52 +02:00
Enrico Turri
bf7b9eb3e7 Legend texture moved to c++ 2018-05-21 14:57:43 +02:00
YuSanka
622c613b41 Update of the view mode works correctly 2018-05-21 14:49:31 +02:00
Enrico Turri
3fdc5e20a7 Warning texture moved to c++ 2018-05-21 14:40:09 +02:00
Enrico Turri
7cff6ef6db Shaders loaded from files 2018-05-21 13:08:02 +02:00
Enrico Turri
a7fc57a176 3DScene reset_object method moved to c++ 2018-05-18 14:08:59 +02:00
Enrico Turri
5fc8fdee11 3DScene axes moved to c++ 2018-05-18 13:02:47 +02:00
YuSanka
876cf9aa8b Show/hide warning icon according to the view mode 2018-05-18 11:39:49 +02:00
Enrico Turri
1e0a8de5b1 3DScene cutting plane moved to c++ 2018-05-18 11:05:48 +02:00
Enrico Turri
0584990b65 Fixed z layers indices under 3D preview sliders 2018-05-18 10:14:47 +02:00
YuSanka
4e47f4973c Updating of the right column according selected view mode 2018-05-17 16:03:18 +02:00
YuSanka
d310668462 Added Regular view mode to the menu.
Right column objects send fron Perl to C++
2018-05-17 10:46:32 +02:00
tamasmeszaros
d9ff63c022 Basic svg export ported from perl to the point where actual svg is assembled. Empty PNG files are genereted for each sliced layer. 2018-05-15 18:01:47 +02:00
Enrico Turri
2b4829a4b9 3DScene bed variables moved to c++ 2018-05-15 15:38:25 +02:00
Enrico Turri
f0d1888ca9 3DScene select_view() function moved to c++ 2018-05-15 11:30:11 +02:00
Enrico Turri
75f1f832aa 3DScene bed origin moved to c++ 2018-05-15 11:07:32 +02:00
Enrico Turri
7519e34507 3DScene zoom functions moved to c++ 2018-05-15 10:32:38 +02:00
Enrico Turri
f4303ebdb8 1st attempt of perl callback from c++ for 3DScene 2018-05-15 09:50:01 +02:00
Enrico Turri
0c1655b884 3DScene::Resize() method moved to c++ 2018-05-14 14:14:19 +02:00
Enrico Turri
1fd59144c7 Camera data moved to c++ - WIP 2018-05-14 11:31:58 +02:00
Enrico Turri
5024fc4be7 OpenGL to c++ 1st installment - WIP 2018-05-09 10:47:04 +02:00
Enrico Turri
bd4061c3b0 Merge with master branch 2018-05-09 10:16:28 +02:00
Enrico Turri
8eb9ddc2eb Max count of auto assigned extruders when splitting object set as dependent of current printer 2018-05-07 16:13:58 +02:00
Enrico Turri
81636abaa9 Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-05-02 14:45:42 +02:00
Vojtech Kral
5624b8afd2 Add a new error dialog 2018-04-30 14:34:47 +02:00
Vojtech Kral
62d67d35ec Merge branch 'profile_changes_reset' into updating 2018-04-24 18:15:23 +02:00
Vojtech Kral
a50bde4267 Merge branch 'master' into updating 2018-04-24 18:11:34 +02:00
Vojtech Kral
fea5603409 PresetUpdater: Bundle incompatibility / Slic3r downgrade scnario 2018-04-24 18:06:42 +02:00
Enrico Turri
71d9500b2e More robust fix for 3D view and GUI buttons not in synch when object's size is almost identical to print volume's size 2018-04-24 09:00:33 +02:00
YuSanka
b8cb936973 Added effective update of ComboBoxes on Plater 2018-04-20 17:32:08 +02:00
bubnikv
8ab62d702c Fixed memory leak of TabIface.
Added documentation of the XS interface on how the Ref<> and Clone<>
wrappers work.
2018-04-18 18:06:07 +02:00
Vojtech Kral
df03b8e4e8 PresetUpdater: Notify about Slic3r updates 2018-04-17 16:59:53 +02:00
Vojtech Kral
214ad2925b Merge branch 'master' into updating 2018-04-16 17:32:58 +02:00
Vojtech Kral
7710b541da Merge branch 'config_snapshots' into updating 2018-04-16 17:00:31 +02:00
Vojtech Kral
c733e3151b Updating: Detect legacy datadir, remove conflicting presets 2018-04-16 16:55:24 +02:00
bubnikv
913cdef297 Merge remote-tracking branch 'origin/scene_manipulators' 2018-04-13 16:54:22 +02:00
bubnikv
c5af8bfe78 Merged with Vojtech's branch 2018-04-13 16:19:27 +02:00
Vojtech Kral
7dbb2ed6a3 Configuration updates downloading 2018-04-13 15:24:55 +02:00
bubnikv
82890ec815 Removed some obsolete Perl binding.
Added Version Index "version" method.
Implemented automatic selection of default_print_profile and
default_filament_profile, when the print / filament profiles are
not compatible with the selected printer profile.
Fixed selection of a printer profile, if the currently selected
printer profile becomes invisible.
2018-04-13 14:49:33 +02:00
Vojtech Kral
b49b59cbb2 Configuration update application at startup 2018-04-13 11:04:39 +02:00
Vojtech Kral
12b3132b1a Perform init_vendors at startup 2018-04-11 18:05:21 +02:00
Vojtech Kral
31ea03feb0 ConfigWizard: Make bundle installation more intelligent, fixes 2018-04-11 18:05:12 +02:00
bubnikv
da2878958b Wizard runs from the new Config menu,
snapshots could be rolled back / forward.
2018-04-11 12:21:15 +02:00
bubnikv
4275b15dcd Merge remote-tracking branch 'origin/updating' into config_snapshots 2018-04-10 16:46:15 +02:00
bubnikv
32c4cddb91 Ported the AboutDialog to C++, thanks @alexrj for the work.
New "configuration" menu over the snapshots, user preferences etc.
2018-04-09 17:03:37 +02:00
Vojtech Kral
90a8ef8e9f Cleanup 2018-04-06 15:17:02 +02:00
Vojtech Kral
9dcec6662e ConfigWizard: Other vendor sample data, minor fixes 2018-04-06 13:24:02 +02:00
Vojtech Kral
e53949f2c8 Apply printer model / variant preferences when loading presets 2018-04-06 13:24:02 +02:00
Vojtech Kral
57e47a3296 AppConfig: Support for vendor / model / variant enable state 2018-04-06 13:24:02 +02:00
Vojtech Kral
3fcf194e39 ConfigWizard: Basic structure / WIP 2018-04-06 13:23:49 +02:00
Lukas Matena
7253028d79 Merge branch 'master' into wipe_tower_improvements 2018-04-06 12:33:12 +02:00
Enrico Turri
b4efff1d95 Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-04-06 08:40:38 +02:00
bubnikv
e37cbdfcfc Merge remote-tracking branch 'remotes/origin/profile_changes_reset' 2018-04-05 19:53:53 +02:00
Enrico Turri
76beaa6421 Objects colored by extruder color 2018-04-05 12:52:29 +02:00
Lukas Matena
eb9917536c Merge branch 'master' into wipe_tower_improvements 2018-04-04 13:06:46 +02:00
Vojtech Kral
b0840065ed Octoprint (#804)
* Octoprint progress dialog

* Fix curl version on Windows
2018-04-04 11:18:22 +02:00
bubnikv
33e1108f65 Background processing in C++, WIP. 2018-03-28 17:05:31 +02:00
bubnikv
5063c15442 Fixed automatic tests. 2018-03-23 16:00:00 +01:00
bubnikv
e931f75010 Work in progress: Good bye, Perl Threads! 2018-03-23 11:41:20 +01:00
YuSanka
08a8fe84a4 Merge remote-tracking branch 'origin/master' into profile_changes_reset 2018-03-22 14:18:48 +01:00
Enrico Turri
4b8bd48663 AMF and 3MF export - Export of print config customizable by user in the select file dialog 2018-03-22 13:49:48 +01:00
Lukas Matena
e30405d672 Merge branch 'master' into wipe_tower_improvements 2018-03-21 11:33:37 +01:00
Chow Loong Jin
a32281c268 Fix format-security violations (#802)
croak() expects printf-style format strings. Calling croak(e.what()) directly
causes compilations to fail with -Werror=format-security
2018-03-21 08:38:33 +01:00
bubnikv
0bd9918643 Implements SPE-159 "substitute accented letters with non-accented ones" 2018-03-16 18:20:47 +01:00
Lukas Matena
3d6f6530c0 Merge branch 'master' into wipe_tower_improvements 2018-03-16 14:06:23 +01:00
Vojtech Kral
c88d2780ce Octoprint (#796)
* Octoprint: GUI for CA file, improvements

* Octoprint: Add GUI for Bonjour lookup, bugfixes

* Octoprint: Bonjour browser: Cleanup Perl interaction

* Octoprint: Bonjour: Perform several broadcast, UI fixes

* Octoprint: Add files to localization list

* Http: Disable CA File setting on SSL backends that don't support it
2018-03-15 18:06:26 +01:00
Lukas Matena
e864238609 Merge branch 'project_specific_config' into wipe_tower_improvements 2018-03-15 14:05:45 +01:00
YuSanka
d97a8f5740 Merge remote-tracking branch 'origin/master' into profile_changes_reset 2018-03-15 10:24:54 +01:00
YuSanka
a41e55a773 Merge remote-tracking branch 'origin/profile_inheritance' into profile_changes_reset 2018-03-14 16:34:51 +01:00
bubnikv
ab654f6319 Merge branch 'scene_manipulators' 2018-03-14 16:15:26 +01:00
bubnikv
e680658cf5 Fixed selection of sensible active print / filament / printer profile
after the initial wizard run.
2018-03-14 13:29:50 +01:00
bubnikv
5f28b89ae0 Added a project specific config to the PresetBundle class.
This project specific config will be stored into the config.ini,
into .3mf and .amf and .gcode,
and recover it from the same files.
2018-03-14 11:54:11 +01:00
YuSanka
e8adbd7303 First prototype of adding of UI for frequently changed parameters 2018-03-09 18:34:30 +01:00
YuSanka
d5e136a6d5 Fixed bug with updating of the value of "Wipe while retracting" CheckBox. 2018-03-09 17:17:51 +01:00
bubnikv
f55becd43c Introduced the system profiles.
The Config Wizard now just copies the Vendor's Config Bundle
into user_dir/vendor/ directory and Slic3r uses the configs
from the bundles found in user_dir/vendor directly.
2018-03-09 16:37:33 +01:00
Lukas Matena
1c6fa6660e Merge branch 'master' into wipe_tower_improvements 2018-03-09 15:10:15 +01:00
Enrico Turri
7a2df9f54f Out of bed detection - Volumes' layer texture rendering moved to cpp 2018-03-09 14:33:44 +01:00
Enrico Turri
bdd2d725c8 Out of bed detection - 1st installment 2018-03-09 10:40:42 +01:00
Vojtech Kral
7cfc5204c8 WIP: OctoPrint 2018-03-05 18:33:15 +01:00
bubnikv
69fc99edbb Merge remote-tracking branch 'remotes/origin/gui_translate_to_cpp' 2018-02-23 15:32:13 +01:00
YuSanka
3d805a0f43 PreferencesDialog moved to C++ part 2018-02-22 11:12:29 +01:00
Enrico Turri
81eff20ad1 GCode Preview - Added Custom extrusion role + extended layers range for GCode preview 2018-02-22 08:59:47 +01:00
Lukas Matena
de92f45eaf Merge with master 2018-02-21 13:22:51 +01:00
YuSanka
6ad38f80fb Language configuration is saved now in AppConfig instead of wxConfig. 2018-02-20 08:58:46 +01:00
Enrico Turri
7375f6a6f5 Fixed camera shifting after generating gcode 2018-02-19 11:28:56 +01:00
bubnikv
39100068c1 Removed the Perl Tab & BedDialog as they were replaced by their C++
counterparts.
2018-02-15 18:16:19 +01:00
bubnikv
f1840a52db Merged the C++ port of the GUI Tabs / OptionGroup / Option classes
by @YuSanka, thanks @lordofhyphens for the initial port
of the OptionGroup / Option.
2018-02-15 18:13:37 +01:00
bubnikv
b695089bc4 Merge remote-tracking branch 'remotes/origin/3mf_io' 2018-02-15 17:02:47 +01:00
bubnikv
f9cdda7bfd Delayed loading of the opengl texture for the G-code preview legend,
as the opengl context may not be ready on some platforms (Linux)
at the time the window gets its focus for the first time.

Changed the G-code preview invalidation to trigger when the print
gets invalidated. At that time the 3D path preview switches to the old
preview, if there is anything valid left.
2018-02-15 14:37:53 +01:00
bubnikv
ff3ae40aeb Fixed compilation issues caused by the previous commits 2018-02-14 21:57:46 +01:00
bubnikv
b1f5e7e8fa Removed the GCodePreviewData from the Print class, it does not belong here,
as the GCode is generated outside of the Print class.
Exported the GCodePreviewData as GCode::PreviewData to Perl.
When exporting the G-code with a command line Slic3r,
the GCodeAnalyzer is now supressed for performance reasons.
Removed obsolete Perl module Slic3r::GUI::Plater::3DToolpaths.
2018-02-14 20:35:59 +01:00
Enrico Turri
f5f27859e0 AMF I/O - Embedded config data + zip formatting 2018-02-14 14:30:03 +01:00
Enrico Turri
8885f5e344 3mf import/export of config data 2018-02-13 15:19:55 +01:00
bubnikv
030fc9c320 Merge branch 'master' into gcode_preview 2018-02-13 14:55:54 +01:00
Enrico Turri
f4522cd2fc GCode Preview - Customizable extrusion role colors by editing 3DPreview.pm 2018-02-13 13:16:23 +01:00
bubnikv
47d904a628 Changed the Slic3r coordinate type from long to int32 to match
the point type on Windows / Linux / OSX
to achieve the same behavior on all the 32 / 64bit systems.
(Windows always treats the long as 32bit int, while Linux treats
long as a 64bit int).
2018-02-12 18:16:10 +01:00
Enrico Turri
3f006dc11a GCode Preview - Added objects and wipe tower transparent shells 2018-02-12 09:04:05 +01:00
YuSanka
badeb2f64c Save language preset.
* Added global variable g_local_dir to get "localization" directory.
* Chage/Set language works correctly now.
* Probably, fixed work on Linux
2018-02-12 08:57:32 +01:00
YuSanka
abcfd5bad9 Implemented Application recreate after changing of language.
* Implementation of C++ to Perl callbacks from menu item Localization.
* Added global variable g_tabs_list to control existing Tabs.
2018-02-09 11:04:34 +01:00
Enrico Turri
33553e1c50 3mf Exporter - 1st installment 2018-02-08 13:26:50 +01:00
YuSanka
28115a847c First steps for implementing localization
* Created mo-files for Ukrainian and English languages
* For this moment it works only on BedShapeDialog.
2018-02-07 17:13:52 +01:00
Enrico Turri
0d6a013658 GCode Preview - Coloring by tool 2018-02-07 09:07:37 +01:00
YuSanka
407f50a66f Deleted on more EVT_NOTEBOOK_PAGE_CHANGE hangling of TabPanel 2018-02-06 14:53:38 +01:00
Enrico Turri
6ff9021e04 GCode Preview - Legend texture shown only when gcode is available 2018-02-06 12:43:25 +01:00
Enrico Turri
593d794655 Merge branch 'master' of https://github.com/prusa3d/Slic3r into gcode_preview 2018-02-05 13:28:10 +01:00
YuSanka
2d3c2dc595 Fix of #696 in cpp's Tabs,
using changes from commit 36bbd6a
2018-02-05 11:03:13 +01:00
Enrico Turri
787a5f1715 GCode Preview - New Layout 2018-02-02 12:38:35 +01:00
bubnikv
36bbd6a73f Fix of https://github.com/prusa3d/Slic3r/issues/696 2018-02-02 11:32:32 +01:00
YuSanka
4056978731 Implementation of C++ to Perl callbacks from Browse & Test buttons. 2018-01-26 01:44:34 +01:00
YuSanka
4d234e90ae Some modifications:
- Added no_controller to create_preset_tab().
- Small changes in Tab"Setting" constructor.
2018-01-25 21:45:39 +01:00
YuSanka
f0b035059a Merge with bibnikv.
Added some functions to TabIface.
Added BedShapeDialog & Bed2D classes.
Added new_scale to Polygon.
In class Field: Point renamed to PointCtrl and added set_value for PointCtrl, extended get_value for Choice.
2018-01-25 13:46:04 +01:00
bubnikv
91c7bc43d3 Added new files missing from the previous commit. 2018-01-23 11:37:45 +01:00
bubnikv
09c9f6bdc3 Added TabIface C++ wrapper for GUI::Tab C++ class,
exported the TabIface to Perl.
2018-01-23 11:37:19 +01:00
bubnikv
1d10a2293a Example implementation of C++ to Perl callbacks using wxWidgets command events. 2018-01-21 23:35:00 +01:00
Enrico Turri
a417cf955d GCode Preview - Code cleanup 2018-01-17 10:39:05 +01:00
Enrico Turri
c63e6b74fa GCode Preview - Added legend texture 2018-01-16 14:59:06 +01:00
YuSanka
8e0cd35c23 Merge remote-tracking branch 'origin/master' into gui_translate_to_cpp 2018-01-14 21:58:21 +01:00
Enrico Turri
6a744238b9 Added preview of retractions and unretractions 2018-01-08 16:05:01 +01:00
Enrico Turri
0f4bec8af0 gcode preview - first installment - wip 2018-01-08 13:44:10 +01:00
bubnikv
696d420dc8 New feature: Recommended object thin wall thickness hint. 2018-01-04 15:38:06 +01:00
YuSanka
f8a48f5c13 Start adding functions to work with presets 2018-01-03 10:12:42 +01:00
bubnikv
02256e900f Merged the branch time_estimate 2018-01-02 10:57:30 +01:00
YuSanka
61247fe8d3 Filling the Filament's and Printer's Tabs. Finished. It's need to adding functions to work with presets 2017-12-26 18:12:05 +01:00
bubnikv
48ba7e5f73 Removed dependency on Perl Encode::encode_utf8. 2017-12-21 20:11:19 +01:00
bubnikv
f5160b7a72 Fixed "Slic3r crashes when sending STLs with special characters to the printer"
https://github.com/prusa3d/Slic3r/issues/597
The "Send to OctoPrint" function will now send the file name encoded
in UTF-8, so the file name will not get mangled.

The C++ Slic3r::encode_path() function was returning a string to Perl,
which was marked as UTF-8. This has been fixed, now encode_path() returns
a plain Perl string.

Added path_to_filename, path_to_stem, path_to_extension, path_to_parent_path
Perl wrappers to boost::filesystem::path splitting functionality
to be able to split UTF-8 encoded files on Windows correctly.
2017-12-21 16:56:33 +01:00
Lukas Matena
4583d62edd Merge branch 'master' into wipe_tower_improvements 2017-12-21 13:47:33 +01:00
bubnikv
558a0753c1 Improved loading of the config wizard results.
Fixed some updates of the "compatible with printer" flags
at the print and filament presets.
2017-12-20 11:28:16 +01:00
bubnikv
0b6bd3cbde Implemented a "Reset user profile" on the first page of the configuration
wizard if the wizard is opened from the menu. This allows one
to reinstall the bundled printer profile cleanly.

Fixed a bug when loading a config bundle as a config: The config bundle
should not be unpacked into the user profile directory.
2017-12-19 19:51:22 +01:00
bubnikv
6b81f43206 First implementation of the "compatible_printers_condition"
for the print and filament profiles.
Added documentation for building the boost library for Slic3r on Linux.
2017-12-18 15:07:38 +01:00
bubnikv
bb61de8379 Fixed a regression error: The "current_extruder" identifier was not set
at the placeholder parser.
Implemented a new PlaceholderParser::evaluate_boolean_expression()
functionality to evaluate just a boolean expression using the full
expressive power of the macro processing syntax. This function
will now be used for deciding, which print or filament preset
is compatible with which printer preset.
2017-12-18 12:14:09 +01:00
Enrico Turri
0fe855cd6d Time estimate shown in GUI as formatted string / Write to file made by class GCode's private methods 2017-12-14 09:18:28 +01:00
bubnikv
21b4e62e6e Fixed handling of print and filament presets incompatible
with the newly selected print profile,
fixed loading of print and filament tab pages after the print or filament
preset has been changed to be compatible with a newly selected printer.
2017-12-13 14:00:14 +01:00
bubnikv
61e6f23ed2 Fix of
"Multimaterial printer switches filament at the wrong time during a print"
https://github.com/prusa3d/Slic3r/issues/607

There was a single layer between the raft top and the object first layer
missing on the wipe tower, and after this missing layer all the tool
changes were shifted by one layer, meaning two color print had the colors
switched.
2017-12-11 17:19:55 +01:00
Enrico Turri
50a45949d1 merge with master 2017-12-11 12:01:30 +01:00
Enrico Turri
bea9628be0 time estimation shown in GUI after gcode export 2017-12-11 11:11:54 +01:00
bubnikv
679aa2822c Moved the Slic3rPE/print,filament,printer folders to
Slic3rPE/presets/print,filament,printer
to separate the presets from further data stored into the Slic3rPE
directory.
2017-12-10 22:11:00 +01:00
bubnikv
657f2734f1 Extended the Config Wizard to offer a selection of config bundles
bundled with Slic3r installation, and install it into user's Slic3r profile.
These bundled config bundles will be contained in the Slic3r source
tree under Slic3r/resources/profiles.

Breaking change! The Slic3r user directory has been renamed to Slic3rPE
for the Prusa Edition. Also it is likely, that the Slic3rPE directory
will be reorganized before the final 1.38 release to reserve space
for temporary profiles downloaded from the Internet.
2017-12-10 13:19:44 +01:00
bubnikv
8746f84fa2 Improved error reporting of the PlaceholderParser.
The PlaceholderParser is currently used by the GCode.cpp
and by Printer.cpp to generate a new name for the exported G-code or SVG file.
The PlaceholderParser::process() will throw a runtime_error with
a comprehensive error message.
The G-code export will include these error messages into the G-code text
with !!!!!! separators, and the GUI will inform the user, that the G-code
export failed.
2017-12-05 15:54:24 +01:00
bubnikv
8af329e660 Added Perl to C++ interfaces for creating the preset editor pages
from C++ and to add debugging menus from C++. These lightweigth
interfaces should help new team members to hack the UI without
a Perl knowledge.
2017-12-04 10:48:40 +01:00
bubnikv
ca0626b168 Fixed regression bugs regarding print validation,
fixed crashes when loading a config.ini with "compatible_printers"
disabled export of "compatible_printers" into gcode and config.ini

Enabled compatibility of printing multiple objects with support / no support
with a wipe tower.
2017-12-01 18:55:57 +01:00
Lukas Matena
a733df8f37 Wipe tower rotation - preview box 2017-11-30 14:43:47 +01:00
bubnikv
3c0cd3cbc8 Improve error handling of loading Slic3r profiles. 2017-11-28 10:08:01 +01:00
bubnikv
47f193fe2d The PlaceholderParser has been rewritten to use
a real boost::spirit::qi parser, accessing the DynamicConfig repository
directly. This is a first step towards a full fledged expression
interpreter.
2017-11-17 11:15:46 +01:00
bubnikv
bfce6dba9b Integrated the "compatible printers" idea by @alexrj with Vojtech's twist:
The incompatible presets are hidden in the tabs if show_incompatible_presets
is false. If show_incompatible_presets is true, there is a button to
show / hide the incompatible presets from the tab selector.
2017-11-10 17:27:05 +01:00
bubnikv
b23b9ea1d2 Implemented volumetric flow rate hints,
removed some C++11 conditioned compilation. Slic3r now requires C++11.
2017-11-09 15:10:20 +01:00
bubnikv
9a0100d6de Initial definition of PresetHints C++ class and Perl binding, ported the cooling logic hints to C++.
Removed Perl Flow::new_from_spacing bindings.
Some Fill C++11 beautification.
Fix of a support_material_1st_layer_flow, brim_flow and skirt_flow logic to use the extrusion_width if both first_layer_extrusion_width and support_material_extrusion_width are undefined.
Documented the extrusion width logic in the config tooltips, including the default values.
2017-11-09 10:48:06 +01:00
bubnikv
b11d9708ed Updated Controller after the presets C++ port. 2017-11-02 21:51:06 +01:00
bubnikv
e8b6d92d4d Looks like the reworked C++ preferences start to work again. 2017-11-02 16:21:34 +01:00
bubnikv
95c284c764 Next step of Perl to C++ configuration layer conversion. 2017-11-01 19:30:05 +01:00
bubnikv
d564fc95df Split Preset.cpp,hpp to Preset.cpp,hpp and PresetBundle.cpp,hpp 2017-10-30 18:41:50 +01:00
bubnikv
1fee3633a0 New C++ class AppConfig for maintaining the config.ini
New helper function for generating a unified "generated by slic3r" header.
2017-10-30 18:15:41 +01:00
bubnikv
21633bc0ba throw std::invalid_argument instead of std::exception 2017-10-27 21:28:39 +02:00
bubnikv
2455aee97c Further reduction of Perl Config.pm methods. 2017-10-27 18:52:35 +02:00
bubnikv
3bc79e80d5 Fixed configuration & validate C++ ports. 2017-10-27 16:11:06 +02:00
bubnikv
5a99e694ce Another step towards the C++ presets. 2017-10-26 17:17:39 +02:00
bubnikv
ee645007f2 Another step towards C++ presets. 2017-10-25 12:53:31 +02:00
bubnikv
d9d6d996e9 Utility functions to pass wxWidgets pointers from Perl to C++ code.
C++ var_dir / set_var_dir() interface to access the UI resources
from the C++ code.
2017-10-17 20:00:15 +02:00
bubnikv
b9d57483d8 perglue.cpp - use static_cast instead of dynamic_cast if possible,
use switch instead of plenty of ifs,
export clone<DynamicPrintConfig> to Perl XS.
2017-10-17 19:19:41 +02:00
bubnikv
746afbd790 Yet another compilation fix? 2017-10-17 18:49:07 +02:00
bubnikv
9a7d1bb566 Another compilation fix. 2017-10-17 18:41:54 +02:00
bubnikv
3731820c48 Optimization of the configuration layer:
The values of StaticPrintConfig derived objects were searched by a name
walking through a huge chained if.
Now they are being mapped with a std::map.
Also initialization of StaticPrintConfig classes from their ConfigOptionDef
defaults is done by maintaining a single global definition of each
StaticPrintConfig derived class, and a new instance is initialized
from this static copy.

Also the ConfigOption instances are casted using static_cast
wherever possible, and their types are verified by a virtual type() method.
This approach avoids insiginificant performance penalty of a dynamic_cast.

Also the compare and clone methods were added to ConfigOption,
and the cloning & compare work on binary values, not by serialization.
2017-10-17 16:01:18 +02:00
bubnikv
84d4bf8fdb Load presets into the new C++ class. 2017-10-02 17:35:00 +02:00
bubnikv
b1e3b0cdf9 Further fixes of the previous commit. 2017-09-20 10:16:00 +02:00
bubnikv
473233019c Initial partial implementation of presets in C++. 2017-09-19 13:55:48 +02:00
bubnikv
cd084a33c6 Fixed a regression bug, which was made during the porting of
discover_horizontal_shells() fron Perl to C++, where
the already calculated bridge direction was being lost.

Improved constness of the debug methods
    void export_region_slices_to_svg(const char *path) const;
    void export_region_fill_surfaces_to_svg(const char *path) const;
2017-09-14 13:15:32 +02:00
bubnikv
247070cd82 Fixed a regression bug of Slic3r::encode() / decode() 2017-08-30 14:57:13 +02:00
bubnikv
ba1c0b0137 CMake build process - fixes of the previous check-ins to build
cleanly on Windows & Linux. There is still a work on OSX:
The XS module has to be linked without perl.lib and with
the following parameters to produce a bundle: -bundle -undefined dynamic_lookup
2017-08-18 21:09:53 +02:00
bubnikv
1385018724 Unicode handling:
Removed the Perl dependencies on Encode, Encode::Locale and Unicode::Normalize.
Added dependency on boost::locale.
Added encode_path, decode_path, normalize_utf8 functions to Slic3r.xs

Slic3r.xs has been made mostly utf8 safe by using the boost::nowide library,
thanks to @alexrj for the idea.

Simplified the encode_path / decode_path stuff:
wxWidgets are unicode already, so there is no need to decode_path() from it.
Perl / win32 interfacing is non-unicode, so decode_path() is executed
on ARGV just at the beginning of the perl scripts.
2017-08-03 17:31:31 +02:00
bubnikv
31085fb1d7 Ported some ModelObject methods from Perl to C++.
Added some utility functions to TriangleMesh, thanks to @alexrj
Some porting to C++ based on work by @alexrj.
2017-08-02 16:05:18 +02:00
bubnikv
777023c7a8 Ported PrintObject::prepare_infill & combine_infill from Perl to C++. 2017-08-02 14:24:32 +02:00
bubnikv
75c72bc59b Fix of "MM incorrect extruder temperature"
https://github.com/prusa3d/Slic3r/issues/443

Change of the PlaceholderParser:
All vector configuration values stored into the PlaceholderParser
are expected to be addressed by the extruder ID, therefore
if a vector configuration value is addressed without an index,
a current extruder ID is used.

Also a small fix of fan handling: The fan speed is set to zero
at the start of the G-code if the cooling for the initial extruder
is disabled.
2017-07-31 15:42:55 +02:00
bubnikv
81823fe7df Reduced the content of Geometry.pm, removed unused Perl subroutines.
Reduced the use Slic3r::Geometry and use Slic3r::Geometry::Clipper
clauses to only reference used subroutines.
2017-07-19 10:45:39 +02:00
bubnikv
41f50b246c Inlined Surface::any_internal_contains / any_bottom_contains 2017-07-10 13:15:36 +02:00
bubnikv
774c69e3c6 Fix of "Problem with larger brim overlapping "
https://github.com/prusa3d/Slic3r/issues/373
2017-07-07 16:40:23 +02:00
bubnikv
bf9027ff2d Fix of a cooling buffer over multiple extruders. 2017-06-30 19:07:14 +02:00
bubnikv
ab21a253e0 Hopefully finally fixed reordering of the multi-material parts. 2017-06-26 16:44:16 +02:00
bubnikv
32fa84c5a5 Fix of https://github.com/alexrj/Slic3r/issues/4043 , thanks to @lordofhyphens.
Further refactoring of the cooling logic to collect per extruder data.
2017-06-23 10:13:09 +02:00
bubnikv
0454cc95f9 Ported the cooling changes from @alexrj: Don't slow down the external
perimeters if not necessary, don't take the bridging time into account
when slowing down the print.

Removed Extruder & GCodeWriter Perl bindings.
Improved Extruder for constness.
Refactored GCode::m_elapsed_time to struct ElapsedTime.
2017-06-22 12:59:23 +02:00
bubnikv
b12e4689e8 Fix of changing the order of volumes of a multi-volume part:
The 3D preview scene was not updated properly.
2017-06-21 14:10:22 +02:00
bubnikv
b724d789fd New feature: Splitting an object into a multi-part volume. 2017-06-15 15:38:15 +02:00
bubnikv
2ac981e422 Improved error handling when importing configuration from a G-code. 2017-06-14 20:18:46 +02:00
bubnikv
93dce7a2d3 Ported config load / stored to C++, thanks @alexrj
Implemented import of config values from the G-code.
2017-06-14 17:51:14 +02:00
bubnikv
5cae4cc614 Fix of https://github.com/prusa3d/Slic3r/issues/285
Refactored Model.cpp/hpp to C++x11 loops,
simplified the mesh / bbox handling.
2017-06-13 11:35:24 +02:00
bubnikv
8b5f7f0fb2 Limit the object movement to the vincinity of the print bed. 2017-06-08 11:02:29 +02:00
bubnikv
102329c54d Further refactoring, C++11 conversion and code simplification. 2017-05-30 20:09:34 +02:00
bubnikv
e1ca1a82fb Fixed a regression bug from the last commit. Some more code simplification
and inlining.
2017-05-30 18:33:17 +02:00
bubnikv
efb1fd2066 Fixed order of loading the configs into Print / PrintObjects
and loading the 3d print path preview.
2017-05-30 17:24:50 +02:00
bubnikv
e000b22578 Implemented wipe tower print path preview. 2017-05-25 22:27:53 +02:00
bubnikv
7d64c465c0 New config field extruder_color for preview of extruder assignment. 2017-05-24 15:20:20 +02:00
bubnikv
ff9d565ba7 Implemented UI for ordering volumes
https://github.com/prusa3d/Slic3r/issues/277
2017-05-20 22:02:04 +02:00
bubnikv
70db88dd90 Improved retract handling on bowden extruders:
Separated deretract speed from a retract speed,
allowed a partial retract before wipe.
2017-05-19 19:24:21 +02:00
bubnikv
cb0a66b743 Initial implementation of a wipe tower preview UI. 2017-05-17 16:53:40 +02:00
bubnikv
e90279c513 Ported the G-code generator from Perl to C++.
Removed GCode.pm
Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe
Changed the std::set of extruder IDs to vector of IDs.
Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
2017-05-03 18:28:22 +02:00
bubnikv
72ae3585e4 Removed a broken Arc Fitting feature.
Removed the questionable Pressure Advance feature. It is better to use the Pressure Advance implemented into a firmware.
Added a C++ implementation of GCodeReader and SpiralVase, thanks to @alexrj
Added a C++ implementation of GCodeTimeEstimator, thanks to @lordofhyphens
2017-04-26 14:24:31 +02:00
bubnikv
ed2ee2f6f3 Merged support_fills with support_interface_fills.
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
bubnikv
36416d77b8 Fixes of VBO rendering on Linux with wxWidgets & GTK 2017-03-30 10:25:52 +02:00
bubnikv
045de596e2 Use OpenGL 2.0 shaders for the layer height rendering.
Use OpenGL 2.0 shaders for the print path rendering for performance reasons.
2017-03-20 12:05:20 +01:00
bubnikv
7f7d2da5fe Use Vertex Buffer Objects for rendering of 3D volumes if possible. 2017-03-16 14:02:28 +01:00
bubnikv
93cab990c7 Fixed some memory allocation issues of the new C++ 3d path preview
(reserved memory has to be shrank around the collected data).

Initial implementation of the vertex buffer objects for the 3d path preview.
2017-03-15 20:45:03 +01:00
bubnikv
d18e10c7c9 Rewrote the OpenGL object rendering to indexed triangle / quad sets
for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
2017-03-15 16:33:25 +01:00
bubnikv
e7a920fe16 Fixed some picking issues after porting GLVolumes to C++.
Initial interface for print paths visualization by VBOs.
2017-03-14 10:11:08 +01:00
bubnikv
e6fddd364d Volume rewritten from Perl to C++,
generation of vertex arrays from paths rewritten from Perl to C++,
parallelized.
2017-03-13 16:02:17 +01:00
bubnikv
52b76930aa Simplify_slices rewritten to C++, parallelized.
Added some move methods to Surface class.
2017-03-08 13:43:49 +01:00
bubnikv
4331f38912 Fixing of slicing errors ported to C++, parallelized. 2017-03-08 11:56:42 +01:00
bubnikv
4d00aa1800 More tracing of the slicing process. 2017-03-03 12:53:05 +01:00
Alessandro Ranellucci
6a90fceaaf Ported expanded_output_filepath() to C++/XS 2017-02-28 10:38:32 +01:00
AndylgTom
4528f35bc0 Update Config.xsp (#50)
For fix to display Unicode in category
2017-02-28 10:06:03 +01:00
bubnikv
4010dd71f6 Support Prusa Control project files (.PRUS) by the GUI. 2017-02-27 16:09:22 +01:00
bubnikv
ee619701d8 Got rid of the Perl Format::STL, Format::AMF, Format::OBJ for good. 2017-02-27 01:03:00 +01:00