Commit Graph

3129 Commits

Author SHA1 Message Date
bubnikv
152026fa08 Disable variable layer height editing on the UI when a printer
profile is switched to one with the layer height editing disabled.
2017-02-10 10:21:50 +01:00
bubnikv
43757df016 Merge branch 'master' of https://github.com/prusa3d/Slic3r 2017-02-10 09:41:16 +01:00
Joseph Lenox
abda054720 Cherry-picked Repetier acceleration fixes, thanks to @lordofhyphens
e0d8101627
885f27b8ae

Added a printer settings to enable / disable variable layer height editing.
2017-02-10 09:39:19 +01:00
Klim
98edb4f854 fix for issue #57 (#63) 2017-02-09 21:59:57 +01:00
bubnikv
db30cee6a9 Fixed the 'iso' camera orientation. 2017-02-09 21:40:07 +01:00
bubnikv
adb218e605 Changed layer leight limits label on the UI. 2017-02-09 16:21:48 +01:00
bubnikv
88e34ff5de Store / retrieve layer height profile from the AMF file.
Reset the layer height profile when changing a print profile to an incompatible one.
Reset button on the layer height bar.
Fixed an update issue on zooming by a scroll wheel.
Fixed an issue when loading an AMF file: Object names are now retained.
2017-02-09 14:56:13 +01:00
Joseph Lenox
61c0ae4e94 Changed filament density to use g/cm^3. Extended tooltip to indicate calculation methods. 2017-02-08 11:40:52 +01:00
Joseph Lenox
90d3535520 Added second information box that populates after exporting gcode for sliced statistics. 2017-02-08 11:40:36 +01:00
Joseph Lenox
203a965b3d added total cost/weight to Extruder statistics, mocked up addendum to status bar change. 2017-02-08 11:40:01 +01:00
Joseph Lenox
3846d9e734 Add weight/cost output to gcode. On the way to #647 2017-02-08 11:39:45 +01:00
Alessandro Ranellucci
bbd63616b1 Write to a temporary file before renaming with the final name. #1844 2017-02-08 11:27:15 +01:00
bubnikv
6b1a72aac9 Fix of Post processing scripst not working:
https://github.com/alexrj/Slic3r/issues/3698

This is really a patch as it does not let the user to use the semicolon
inside a script invocation line.
2017-02-08 10:35:21 +01:00
bubnikv
e7718b385f Added a "variable layer height" icon, active on OSX initially. 2017-02-07 19:01:58 +01:00
bubnikv
957803e60c Added min_layer_height, max_layer_height per nozzle settings
for controlling the support layer height & variable layer height.
Added an experimental "rear" seam option.
2017-02-07 18:46:02 +01:00
bubnikv
64c752ff9d Extended the Slic3r::GUI::Tab::XXX::_update mechanism to deliver
a set of updated config keys.
2017-02-07 18:41:09 +01:00
bubnikv
e386a2bf72 Documentation of the UI config update functions,
documented missing AMF support for the variable layer thickness.
2017-02-07 18:28:53 +01:00
bubnikv
43ac693900 Added a tooltip overlay for the variable layer height edit tool.
Short methods of PrintState made inline.
Added layer height profile to a Model class.
2017-02-07 18:17:12 +01:00
bubnikv
aceb87d188 Change of defaults. Background processing disabled by default,
default mode set to expert.
2017-02-07 13:21:09 +01:00
bubnikv
8474f77db4 Enabled the variable layer height in the builds by default. 2017-02-03 15:53:31 +01:00
bubnikv
c2ddf537c6 Fixed a newly introduced bug in the multi material UI dialog. 2017-01-31 11:38:07 +01:00
bubnikv
4ab972b87a When the support extruders are set to 0, support is printed with the current material without a tool change.
A fix of support path generator.
2017-01-30 19:56:46 +01:00
bubnikv
081c1d681c Fixed preview of ExtrusionMultiPath instances. 2017-01-20 20:20:41 +01:00
bubnikv
c0b3de6248 Hopefully fixes https://github.com/prusa3d/Slic3r/issues/90
Latest master segfaults with perl 5.24.1 #90
The fix achives similar goal to https://github.com/alexrj/Slic3r/pull/3575
but it is simpler.
2017-01-20 16:56:37 +01:00
bubnikv
08351b5e48 Fix of ExtrusionMultiPath binding to Perl & G-code generator. 2017-01-20 15:17:32 +01:00
bubnikv
e016c4e423 New extrusion class: ExtrusionMultiPath
This is similar to an ExtrusionLoop, but it is open.
It may contain multiple chained paths with differing parameters.
This allows one to have a hierarchy of paths, where the ExtrusionEntityCollection
will be chained by the G-code generator, but ExtrusionMultiPath will not.
2017-01-19 13:35:55 +01:00
slicer-builder
bb22f1dc8a prototyping tweakable XY supports;
option should be present now in advanced support menu.
Can't figure out what's going on atm; support should be moving but isn't
2017-01-03 11:46:52 +01:00
Joseph Lenox
f63c21f0f3 Added a feature to increase gap between object in XY and generated supports.
Advanced feature, may not generate supports that are printable.
2017-01-03 11:43:18 +01:00
Joseph Lenox
4b2bc29b14 set support spacing option if support is off 2017-01-03 11:40:45 +01:00
bubnikv
07dd06c53c Merge remote-tracking branch 'origin/supports-synchronize-layers' 2017-01-03 10:51:23 +01:00
bubnikv
479f716625 Improvements in the manual layer width editor. 2016-12-21 16:00:41 +01:00
bubnikv
955bc957ba New supports now do rafts at least to the extent the test cases run through.
New supports enabled, old supports will go away soon.
2016-12-20 12:19:13 +01:00
bubnikv
ff0a8956ee Fixed previous checkin. 2016-12-14 15:42:38 +01:00
bubnikv
c79e1cc89b Fixed UI bug on OSX, experimental features made switchable through
environment.
2016-12-14 15:36:18 +01:00
bubnikv
79ff013ea7 Fixed crashes on shader destruction on OSX. 2016-12-14 15:09:12 +01:00
bubnikv
6582182e0c Adapted to the new ClipperUtils.hpp interface by @alexrj 2016-12-13 19:22:23 +01:00
bubnikv
46b44fc141 User interface of the variable layer thickness. Certainly not finished yet,
but sufficient for evaluation of the prints.
2016-12-12 18:02:24 +01:00
bubnikv
2d030f3a3c Most of the slicing code rewritten to C++. 2016-12-12 17:56:37 +01:00
Alessandro Ranellucci
9c0c05631c Ignore failure to call SetAutoPop when not available. #3596 @alexrj 2e82fb01a65deb4e0872de9219f47e58b7000ebf 2016-12-08 14:55:48 +01:00
Alessandro Ranellucci
5dc8a0808e Maybe the Travis CI server has more than 16 cores? 2016-12-08 14:52:42 +01:00
Alessandro Ranellucci
d8082b9db4 Try to fix compilation error about the new threads default 2016-12-08 14:52:15 +01:00
Alessandro Ranellucci
9e8dae817d Fixes and improvements to the view selection menu, cherry picked from @alexrj a7693c4719c0e0e0129aea7461706d2ed53a52cc 2016-12-08 14:51:35 +01:00
Alessandro Ranellucci
86c8207d31 Ported make_perimeters() and infill() to C++/XS, use pure C++ threads, cherry picked from @alexrj 66591bcc556c01572ec7519b1f8cb4ee2d430685 2016-12-08 14:24:40 +01:00
bubnikv
330ffed87e Adjusted copyright header of the Perl GLShader module. 2016-12-02 11:19:27 +01:00
bubnikv
7e1af658b6 Initial experiments with vertex / fragment shaders,
prototype to visualize layer thickness.
2016-12-02 11:14:24 +01:00
bubnikv
bd618569e1 Print the supports before the object layer at the same height. 2016-11-30 18:54:19 +01:00
bubnikv
26a8017e99 Made the support interface contact loops configurable. 2016-11-30 17:33:55 +01:00
bubnikv
38cb2842ac support_material_synchronize_layers implementation 2016-11-30 16:06:12 +01:00
bubnikv
556204fddc support_material_synchronize_layers configuration value
for synchronization of object layers with print layers.
2016-11-30 16:04:15 +01:00
bubnikv
695c92fb00 CLIPPER_OFFSET_SCALE was made a power of two, the scaling functions
inside ClipperUtils are now using bit shifts instead of multiplication
by doubles, which makes the scaling precise.

Removed the scale parameter from all offset functions.

Modified the safety offset to calculate offset per polygon instead
of over all polygons at once. The old way was not safe and very slow,
sometimes this meant a kiss of death for supports for example.
2016-11-28 17:33:17 +01:00
bubnikv
0d20a81354 Log support through boost::log 2016-11-24 13:44:51 +01:00
bubnikv
a069c41b20 On Windows, load the icon either from the exe, or fron the ico file. 2016-11-20 14:22:26 +01:00
bubnikv
79f5a16536 Reverted the perimeter generator to not save the perimeter areas.
These could be calculated from the fill areas if needed.
On the other side, the non-classified (non-split) fill areas are stored
now for use in the "ensure vertical wall thickness" feature,
also the non-split fill areas are re-used when recalculating the infills.
This is safer than trying to stitch the fill region together from the
classified fragments.

Modified the "ensure vertical wall thickness" feature to use the non-split
fill areas instead of perimeter areas for the calculation
of non-supported regions. This is cheaper as the fill areas contain
roughly half the edges.
2016-11-17 23:22:59 +01:00
bubnikv
50f06a0fe8 Increased the gimbal lock threshold to 170 degrees from 150 degrees.
This makes it possible to look at the bottom of an object.
2016-11-16 09:24:27 +01:00
bubnikv
7f1704b2ac Disabled live preview by default as it is not stable and/or the calculation takes too long for interactive usage. 2016-11-13 23:35:56 +01:00
bubnikv
1070f0c0af New feature: Propose to enable "detect bridging perimeters"
when the supports are first enabled. Don't check keep asking,
if the user does not want the bridging perimeters to be enabled.
2016-11-11 15:05:39 +01:00
bubnikv
f4ee87ba24 Fixed https://github.com/prusa3d/Slic3r/issues/27 2016-11-11 12:00:40 +01:00
bubnikv
4460b5ce50 re-wrote PrintObject::detect_surfaces_type() to C++,
Fixed some cracks in the fill surfaces created by rounding all surfaces inside detect_surface_type().

Fixed https://github.com/prusa3d/Slic3r/issues/12
Bridging-Angle not optimal

Extended the "Ensure veritcal wall thickness" mode (merged with the original discover_horizontal_shells function), but this a work in progress. Already Slic3r with "ensure vertical wall thickness" produces less spurious infills inside solids.
2016-11-10 19:23:01 +01:00
bubnikv
eb0ab38618 Fixes https://github.com/prusa3d/Slic3r/issues/26
Strange behavior of Extra perimeters and ensure wall thickness
Old behavior is re-enabled when ensure vertical wall thickness is off.
2016-11-09 10:24:45 +01:00
bubnikv
e15b5f4587 Fix of https://github.com/prusa3d/Slic3r/issues/16
Crashes while switching in preview through layers with arrow keys

Also added a check box to visualize a single layer only
in the 3D path view. The check box may be toggled with a 'S' key.

Added shift+U / shift+D buttons in the 3D path view to show a single
layer only.
2016-11-08 17:13:16 +01:00
bubnikv
b8590180d8 Fix of https://github.com/prusa3d/Slic3r/issues/20
Slicing preview incorrect in terms of visible solid layers
2016-11-08 15:33:13 +01:00
bubnikv
bfb336df0c Refactored Print::validate() method to not throw an exception, but
to return a string with an error message instead. This was necessary
to avoid a hang-up on some Strawberry Perl distributions, when
a perl "croak" function is called after a C++ exception is caught.
2016-11-05 02:23:46 +01:00
bubnikv
6217622865 Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/11
Replaced eval { die } construct with a bool return value indicating
success or failure of an automatic arrangement of parts on the print bed.

Don't know exactly what is happening here, but throwing a "die" inside
a XS function and then catching it inside an eval {} block is suspcious.
2016-11-04 15:03:51 +01:00
bubnikv
12b7818caa Only call wxWidgets method wxApp::SetAppDisplayName for wxWidgets 3.0
and newer.
2016-11-03 09:15:30 +01:00
bubnikv
95ede7c4b8 Rewrote Fill2.pm to C++, deleted Perl infills for good.
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
bubnikv
3d3654707b Added "Notes" page to the filament configuration.
Added "filament_max_volumetric_speed", a cap on the maximum volumetric
extrusion role, filament specific. This is very useful when mixing
rigid filament with a soft filament.

Extended the import / export of multi-string values into configuration
values, including the test cases. Multi-line strings will be enclosed
into quotes, quotes escaped using a C-style escape sequences. Single
word strings could still be stored without quotes.
2016-11-01 13:41:24 +01:00
bubnikv
34fab1566f "Background slice now" function, initial implementation by @lordofhyphens
https://github.com/alexrj/Slic3r/pull/3501
2016-10-25 13:24:42 +02:00
bubnikv
34248c2fbf On Windows use the Slic3r.ico instead of the PNG file
for the application icon.
2016-10-24 18:05:26 +02:00
bubnikv
51c8d73b11 Fixed a division by zero in 3D scene, if there is nothing to show.
Improved Prusa3D icon.
2016-10-24 17:32:22 +02:00
bubnikv
741a85187c Suppress the '- default -' selection of Print/Filament/Printer settings
if there is any valid option available. This feature has been asked for
by the Prusa3D customers as the '- default -' option has nothing to do
with the actual printer and when selected accidentally, it could even
lead to a printer damage.
2016-10-24 16:07:36 +02:00
bubnikv
250ff451ba by alexrj: Fixes in GCodeSender to reset the connection after it breaks.
by alexrj: Fix in mouse handling of 2DBed.
by alexrj: ClipperUtils for ExPolygon vs. ExPolygon
2016-10-24 14:07:38 +02:00
bubnikv
1fb57e439e Defined the +-* operators on Pointf.
Removed the deprecated VibrationLimit feature.
Added triangle infill.
The Prusa3D fork of Slic3r has been marked as "Slic3r Prusa Edition"
with menus pointing to the prusa3d/slic3r github release page
and Prusa3D drivers downloads page.
2016-10-21 16:53:42 +02:00
bubnikv
15d3e94a66 Unified the creation of paths of debugging output files
pointing to a predefined output directory.
2016-10-21 10:18:01 +02:00
bubnikv
9e4edcd8ec Enabled the C++ fillers for all infills, not just the supports.
Made sure the C++ fillers are instantiated at the worker threads,
where there are being released.
Extended the FillRectilinear2 to calculate the contour / line intersection
with exact arithmetics, improved robustness and added error handling
and error reporting, if the contours to be filled are not correct.
2016-10-20 17:44:46 +02:00
bubnikv
53907a9cfe Fix of a crash when setting a viewport over an empty platter.
Exported bounding box 'empty' method to perl.
2016-10-18 16:44:05 +02:00
bubnikv
c0956dbd34 Disable debugging output from the Filler2.pm 2016-10-17 17:16:02 +02:00
bubnikv
47cc9687a0 Added a new switch: ensure_vertical_shell_thickness
This enables a zig-zag infill similar to Cura or Simplify3D
on overhangs.
2016-10-16 22:11:19 +02:00
bubnikv
7d7f093120 C++ supports sketched, but not finalized yet. Slic3r is still using
the old Perl supports, but this time with the C++ fillers.
2016-10-16 16:30:56 +02:00
bubnikv
ee4b9ab82f Select standard camera views (left / right / top / bottom / front / rear / default)
by menu.
2016-10-05 14:13:07 +02:00
bubnikv
5268574ade Made the sheath around the base support configurable. Without the sheath
it is easier to remove the support, but the support is more fragile.
2016-10-04 14:38:13 +02:00
bubnikv
5bb37ad2c4 A new feature "support_material_buildplate_only" implemented.
Also a bug has been fixed for zero interface layers. Before
slic3r would put infinite number of interface layers over top surfaces,
if the number of interface layers was set to zero.
2016-10-04 13:54:10 +02:00
bubnikv
ae2bae137a Added a low layer slider into the 3D preview window.
This is to limit the preview to a span of layers.
2016-10-03 17:01:29 +02:00
bubnikv
b7af7276c9 Instantiate the new C++ filler. It will be used for the supports first. 2016-10-03 16:59:00 +02:00
bubnikv
403329db49 Misc bugfixes. 2016-09-26 13:58:47 +02:00
bubnikv
790b640521 Visualization of fill surfaces. 2016-09-26 13:56:24 +02:00
bubnikv
8f04f5d5f6 Don't adjust width of infill. It produces dangerously wide fills.
If the infill flow adjustment is enabled, report cases,
where the infill flow grows over the limits.
Make the internal bridging infill 50% sparse.
2016-09-26 13:38:37 +02:00
bubnikv
6950ce3bcf Report when the threading is disabled and when the debugging output
is enabled.

Two new environment variables are respected:
SLIC3R_SINGLETHREADED and SLIC3R_DEBUGOUT.
2016-09-26 12:57:15 +02:00
bubnikv
a506030082 Draft of a 3D toolpaths preview. 2016-09-26 12:38:29 +02:00
bubnikv
565146d9d1 Fix of a spiral vase with realtive extruder distances enabled.
The clone function is used by the SpiralVase.pm only, so the change
is safe.
2016-09-23 12:59:20 +02:00
bubnikv
6e97b9bb73 Optimization of the layer offsets in 3D visualization. 2016-09-15 12:26:53 +02:00
bubnikv
a53bd3dfe9 Generate multiple vertex lists rather than requesting a single huge
memory block.
2016-09-15 00:06:42 +02:00
bubnikv
2a5095a1ea OpenGL support through GLEW. Only active if compiled with SLIC3R_GUI=1. 2016-09-14 16:31:26 +02:00
bubnikv
4c67230436 Documented the purpose of various perl modules. 2016-09-14 11:22:41 +02:00
bubnikv
55218c8c4d Documented.
Fixed rough Z buffer quantization issues with ortographic camera.
Initial implementation of a perspective camera.
2016-09-14 09:38:59 +02:00
bubnikv
15c1edd552 Configurable volumetric extrusion rate slope. 2016-09-13 15:02:28 +02:00
bubnikv
b2a6f43923 Documented perl modules. 2016-09-13 11:24:55 +02:00
bubnikv
6dfe4c0b96 Debugging code: Storing the test STLs inlined in the Perl code into a file. 2016-09-13 09:48:29 +02:00
bubnikv
f518e0675c Initial commit of the new Pressure Equalizer, the EdgeGrid
signed distance field structure.
The EdgeGrid is used to avoid placing the seams on overhangs.
2016-09-12 16:25:15 +02:00
bubnikv
9a83d4e8d5 Reverted some now unnecessary changes. Reverted the infill to the original perl implementation. 2016-09-12 13:26:17 +02:00
bubnikv
9fcc8fe9ae Meged with release_candidate_1_3 2016-09-12 11:29:39 +02:00