Commit Graph

3179 Commits

Author SHA1 Message Date
bubnikv
a2b876e261 Fixing a crash on pressing +/- with no object active.
https://github.com/prusa3d/Slic3r/issues/467
2017-08-14 12:50:35 +02:00
bubnikv
3b54b68b59 Merged new methods for handling menus with icons,
merged "Use submenus for listing options in dropdown menu." #3905
thanks @alexrj
Adapted the "Use submenus" code to sort the menus in the same order
as they appear in the parameter tabs.
2017-08-04 16:28:01 +02:00
bubnikv
632bf56f29 merged save_window_pos / restore_window_pos from @alexrj Slic3r. 2017-08-04 15:54:12 +02:00
Alessandro Ranellucci
38e713c23c Remember object settings dialog size and position. #3943 2017-08-04 15:45:10 +02:00
bubnikv
ed46cfa19d Simplified the code base by requiring wxWidgets >= 3.0 2017-08-03 17:47:18 +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
933d5b261a Fix of a "Scale to Size" dialog, where a bed size is shown scaled. 2017-08-01 14:42:59 +02:00
bubnikv
71f99423c5 New feature: Bridging angle override through a bridge_angle config
variable. When set to zero, the usual automatic bridge detection applies.
The bridging angle override may be set at the Infill->Advanced settings,
or through a modifier mesh.
2017-07-31 16:23:52 +02:00
bubnikv
3b51f64411 Fixing https://github.com/prusa3d/Slic3r/issues/432
Slic3r GUI not starting, error when using --gui (on linux)

Implements https://github.com/prusa3d/Slic3r/issues/407
Shortcuts: Movement in 3D Space
Assignment of the camera shortcuts is clear from the menu accelerators.

Implements https://github.com/prusa3d/Slic3r/issues/406
Shortcuts: Rotate +/- 45 degrees
l/r keys rotate the object

Also changed the accelerators for adding / removing duplicates from
Ctrl++/- to plain +/-, from Ctrl-Del to plain Del,
and added an 's' key accelerator for uniform scaling.
2017-07-21 16:29:40 +02:00
bubnikv
7103fa78ff Reverted back width of the tree control on the Tab panels.
Fixes https://github.com/prusa3d/Slic3r/issues/428
2017-07-20 13:09:02 +02:00
bubnikv
afd5d9eff3 Fixed issues with undefined filament color preview values. 2017-07-20 13:02:12 +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
c9325338a8 Fixed "upscaled objects cannot be cut above original height"
https://github.com/prusa3d/Slic3r/issues/419
2017-07-12 23:28:11 +02:00
bubnikv
3a813aaef6 Implemented "Suggestion for Preview View Change"
https://github.com/prusa3d/Slic3r/issues/415

Use left / right keys to switch between the low / high layer scroll bars
on the 3d preview screen.
2017-07-11 18:21:25 +02:00
bubnikv
6f28818f87 Fix of
"Unicode char like for example "ł" crush app when used in profile name"
https://github.com/prusa3d/Slic3r/issues/388

The Prusa3D binary builds are missing the UTF8 libraries.
To avoid having to bundle them, the case sensitive regexes testing
file suffixes were replaced with explicit enumeration of lower / upper
case letters. While crude, it avoids triggering the UTF8 library.
2017-07-11 17:15:34 +02:00
bubnikv
32213ce679 Implements loading of multi-part objects as a bunch of STLs
for a multi-material printer.
Also only a single pop-up dialog is open when loading multiple files.
2017-07-11 13:55:55 +02:00
bubnikv
a7153c67e6 Changed layout of the Tab page to accomodate a wider profile selection
combo box.
https://github.com/prusa3d/Slic3r/issues/194
https://github.com/prusa3d/Slic3r/issues/377
2017-07-11 12:02:44 +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
8160db23cc Implementation of "XY size Compensation for first layer"
https://github.com/prusa3d/Slic3r/issues/190
2017-06-26 16:28:10 +02:00
bubnikv
f0325575c2 Slic3r has been modified to propagate the following filament specific
values to GCode generator, one per active extruder:

bed_temperature
bridge_fan_speed
cooling
disable_fan_first_layers
fan_always_on
fan_below_layer_time
first_layer_bed_temperature
max_fan_speed
min_fan_speed
min_print_speed
slowdown_below_layer_time

Now it remains to extend Slic3r to correctly apply these values.
2017-06-21 16:15:39 +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
7ca02bda0f Fix of a "split" function issue.
1) Load a multi-part stl
2) Rotate it by 90 degrees
3) Split it.

Before this fix, the split object jumped away from the print bed.

This sound similar to
https://github.com/prusa3d/Slic3r/issues/309
2017-06-19 14:26:19 +02:00
bubnikv
c33ed9144c Fixed the objects jumping 2017-06-19 11:47:43 +02:00
bubnikv
aa54c3402b Disable the "split" button when there is no volume selected. 2017-06-15 18:11:36 +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
3e82eb7010 Extended the tooltpis for quick slice functions. 2017-06-14 12:52:50 +02:00
bubnikv
a73a1a3f09 Removed the DLP projector dialog as it is confusing to our customers
and we doubt anybody is using it.
2017-06-14 12:05:23 +02:00
bubnikv
82bde51c27 Removed the 'simple' mode. 2017-06-14 11:48:08 +02:00
bubnikv
fdb5ed1fcb Fix for "Crash when deleting all objects"
https://github.com/prusa3d/Slic3r/issues/193
2017-06-13 13:42:38 +02:00
bubnikv
f7831240e1 Fixed compilation on OSX 2017-06-13 12:09:49 +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
f408f08850 Disabled the new Slic3r version check until we have a server set up
for the Slic3r Prusa Edition.

Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/258
by moving the 2D thumbnail generation to the main thread and
forcing the simple 2D convex hull for even the small objects.
2017-06-12 14:25:35 +02:00
bubnikv
02ab92ea65 Little improvements of the 3D manipulation usablility:
Limit zoom out to 3x the "scene fit" amount.
Disable wheel scrolling when the middle button is pressed.
2017-06-09 15:02:11 +02:00
bubnikv
881a5c531b Fix of the last commits:
1) FLT_MAX replaced with limits,
2) apply_config is called by the test case harness to update layer height profile.
2017-06-09 14:24:00 +02:00
bubnikv
958c6553e7 Hopefully a fix of
"Layer editing does not trigger reslicing with Background Processing enabled"
https://github.com/prusa3d/Slic3r/issues/293
2017-06-09 13:27:35 +02:00
bubnikv
6ce832e439 The OpenGL Z-bufer has low precision, therefore a bounding box test
had to be relaxed.
2017-06-08 20:50:24 +02:00
bubnikv
66f1ae003f A little simplification of the Perl side threading:
Only single level Perl worker threads are allowed.
2017-06-08 18:53:33 +02:00
bubnikv
e0a24f94c0 Removed Object.pm support_material_flow method. 2017-06-08 18:13:12 +02:00
bubnikv
27003dc0fd Possible fix of
https://github.com/prusa3d/Slic3r/issues/260
https://github.com/prusa3d/Slic3r/issues/272
by disabling opengl blending when picking.

Also the limiting region for object movement has been rounded smoothly.
2017-06-08 12:23:50 +02:00
bubnikv
a15e6127cf Relaxed the requirements on the layer height for the Wipe Tower to
the span of 0.15mm to 0.35mm.
2017-06-08 12:10:34 +02:00
bubnikv
fe409a76a6 Fixed panning issues when the camera is parallel to the bed plane. 2017-06-08 12:01:35 +02:00
bubnikv
8b5f7f0fb2 Limit the object movement to the vincinity of the print bed. 2017-06-08 11:02:29 +02:00
bubnikv
dabcff1c07 When testing for a key press, rather check for the modifier keys
(alt, ctrl) always. Also if a key event is not processed, pass it
for further processing.
2017-06-06 19:14:52 +02:00
bubnikv
0816c995a7 Implements "Fewer" button should not remove last copy from build platform
https://github.com/prusa3d/Slic3r/issues/301
2017-06-06 15:38:27 +02:00
bubnikv
35acd799cf Fixed a superflous "Dirty" multi-extruder printer profile after
the introduction of new extruder parameters
(deretract_speed extruder_colour retract_before_wipe).
https://github.com/prusa3d/Slic3r/issues/325
2017-06-06 12:52:15 +02:00
bubnikv
3e764ada0c For the wipe tower to work, verify that all objects are sliced
with the same layer heights.
Also enforce layer synchronization for soluble supports.
2017-06-06 11:40:35 +02:00
bubnikv
72f348658f Testing for the required parameter combinations before enabling the wipe tower.
The wipe tower needs to be made more general in the future to overcome
these limitations.
2017-06-06 10:36:14 +02:00
bubnikv
88c9ae6ca6 Fix of
https://github.com/prusa3d/Slic3r/issues/315
a crash if the max_layer_height is left to a default value of zero.
2017-06-05 12:02:26 +02:00
bubnikv
ad3be1a69e Implemented filament start / g-codes.
https://github.com/prusa3d/Slic3r/issues/265
https://github.com/prusa3d/Slic3r/issues/319
Based on the implementation by @lordofhyphens
19eea19d91
2017-06-05 11:30:57 +02:00
bubnikv
02592378e2 Improved "ensure vertical wall thickness" feature for multi material:
If the "interface_shells" feature is disabled, the "ensure vertical wall thickness"
feature will not add full infill over internal shells.

Fixed some issues with delayed loading of 3d scenes.
2017-06-01 16:31:29 +02:00
bubnikv
ee5ee5f432 Performance improvements in reloading the 3D scene.
Now the 3D scene loading is postponed until the page is visible.
2017-05-31 17:05:11 +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
7884fa3d7c Implemented Multipart object list window resize #278 2017-05-20 19:44:55 +02:00
bubnikv
a99b006b98 Implemented https://github.com/prusa3d/Slic3r/issues/199
by merging the work by @lordofhyphens done on https://github.com/alexrj/Slic3r/issues/3268
2017-05-20 15:29:25 +02:00
bubnikv
6fa280be0b Finished the wipe tower UI. 2017-05-19 21:48:32 +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
c22b6edeeb Initial integration of the Prusa MultiMatrial Wipe Tower. 2017-05-16 13:45:28 +02:00
Xoan Sampaiño
281a9c45eb Remove hardcoded font size for wxGTK
When in wxGTK (GNU/Linux), some widgets has a hardcoded point size font that not fit with normal GUI font and therefore this widgets doesn't inherit changes in system font size.

This commit only affect this platform, changing `!&Wx::wxMSW` to `&Wx::wxMAC`.
2017-05-12 11:31:54 +02:00
bubnikv
2f57ee60d1 Improved G-code generator for multi-material prints
to minimize tool switches.
2017-05-10 11:25:57 +02:00
bubnikv
18bb3c3244 Added Notes Tab to Printer Settings #210 2017-05-05 11:59:51 +02:00
bubnikv
8a628c451c Fixed a newly introduced G-code issue on Windows
when exporting into a localized directory.
2017-05-04 09:24:34 +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
e918ea9c65 Fixes Variable Layer Height issue when max_layer_height at its default of zero
https://github.com/prusa3d/Slic3r/issues/267
2017-04-24 09:51:24 +02:00
bubnikv
8040ef8efb Fixing a bug in the layer editor for high diameter nozzles.
https://github.com/prusa3d/Slic3r/issues/247
2017-04-11 11:16:47 +02:00
bubnikv
23be6233c8 Finalized the experimental "synchronize support layers with object layers"
feature (the support_material_synchronize_layers settings).
The feature is now enabled for the soluble supports only
(with support_material_contact_distance > 0).

Fixes https://github.com/prusa3d/Slic3r/issues/197
2017-04-10 12:00:07 +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
c40de7e424 Fix of https://github.com/prusa3d/Slic3r/issues/218
Cut function bug in accepting a numerical value
2017-04-05 15:55:02 +02:00
bubnikv
7ffb3590c4 Finalized the Prusa Control project file format import. 2017-04-05 14:45:43 +02:00
bubnikv
b66bfb41aa Validate the height values entered into the layer height table.
Clamp these values between the minimum of min_layer_height per nozzle
and the maximum of max_layer_height per nozzle.
Don't allow entering zero layer height to trim an object,
the cut dialog should be used instead.

Fixes https://github.com/prusa3d/Slic3r/issues/235
2017-04-05 13:27:00 +02:00
bubnikv
9d9a6feb96 Disable ensure_vertical_shell_thickness for spiral vase mode. 2017-04-03 11:19:32 +02:00
Joseph Lenox
7b5158f5f2 Permit firmware retraction when firmware is Repetier (repetier-firmware supports it). Fixes #3821 2017-03-30 16:47:06 +02:00
bubnikv
36416d77b8 Fixes of VBO rendering on Linux with wxWidgets & GTK 2017-03-30 10:25:52 +02:00
bubnikv
2da3388aa5 Only print "Generating perimeters" once. 2017-03-28 17:27:05 +02:00
bubnikv
95b45da57c Fixed 3D view of the Cut dialog. 2017-03-28 14:18:13 +02:00
bubnikv
6162670bbd Fixing Window selections wrong
https://github.com/prusa3d/Slic3r/issues/191
Thanks @uclaros
94f60db114
2017-03-23 18:02:35 +01:00
bubnikv
a7838cac07 Fixed the rotation and scaling inputs allowing decimal numbers with
both the dot and comma as a decimal separator.

Fixes 6649888d1c
2017-03-23 14:32:19 +01:00
bubnikv
1770d031b4 Fixed rotations, allow both dot and dash as decimal separators,
correctly report invalid numeric values for rotation.
2017-03-23 11:53:59 +01:00
bubnikv
6b99cbdc02 Had the vertex buffer objects disabled for debugging purposes by mistake. 2017-03-21 08:59:48 +01:00
bubnikv
d8f0c0bdff Fixed bug in variable layer height editing: Make the OpenGL context
current.
2017-03-20 15:55:22 +01: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
b5e45bccf9 Fixed a typo after porting _simplify_slices to C++. 2017-03-08 15:08:40 +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
bubnikv
f8a2087fc6 Fixed a bug after merge.
https://github.com/prusa3d/Slic3r/issues/163
2017-03-01 13:16:33 +01:00
bubnikv
46fc4a0a8e Correctly rename g-code file once it is generated. 2017-02-28 10:44:44 +01:00