Commit Graph

3066 Commits

Author SHA1 Message Date
Alessandro Ranellucci
6649888d1c Support decimal scaling factors and rotation angles. #1617 2017-02-21 16:43:47 +01:00
Joseph Lenox
873161ea7c Only enable movers if modifier mesh. 2017-02-21 16:30:13 +01:00
Joseph Lenox
e2b56c4462 Repair the generic mesh so it can be exported. 2017-02-21 16:29:57 +01:00
Joseph Lenox
4f428fae40 Added UI options to make a slab, defaulting to the model object's bounding box * 1.5 2017-02-21 16:29:42 +01:00
Joseph Lenox
6aecae3121 UI: fixed naming sphere is not a cylinder. 2017-02-21 16:29:32 +01:00
Joseph Lenox
2971235299 UI code to generate a generic sphere. 2017-02-21 16:29:21 +01:00
Joseph Lenox
716dc2e650 Made cube and cylinder static functions of the package, not some specific TriangleMesh object. 2017-02-21 16:11:52 +01:00
Joseph Lenox
26b6e4c619 Disable sliders if a volume is not selected. 2017-02-21 16:11:41 +01:00
Joseph Lenox
2eea139731 UI now changes its options based on the object type selected. 2017-02-21 16:11:22 +01:00
Joseph Lenox
3ee32ef153 Menu now works to select cylinders (reusing the gui options) 2017-02-21 16:11:09 +01:00
Joseph Lenox
b91b98b21e Added prototype make_cylinder() 2017-02-21 16:10:38 +01:00
Joseph Lenox
ff33fbbb9a Use LambdaObjectDialog in GUI.pm to avoid crash on Windows. 2017-02-21 16:09:51 +01:00
Joseph Lenox
107c89d37b Removed commented code. 2017-02-21 16:04:45 +01:00
Joseph Lenox
a0548898f3 Added a cancel button, and rewrote initial option code to reuse OptionGroup. 2017-02-21 16:04:02 +01:00
Joseph Lenox
3109a9bc1f Update main plater view after moving mesh 2017-02-21 16:03:46 +01:00
Joseph Lenox
33f489bba9 Anonymous object supports. Initial implementation provides for a box of arbitrary size. 2017-02-21 16:03:19 +01:00
Joseph Lenox
e93cc13698 Permit sliding modifer meshes around in the Settings dialog. 2017-02-21 16:02:56 +01:00
Alessandro Ranellucci
a65c9ba083 Ported CoolingBuffer to C++/XS 2017-02-21 14:02:47 +01:00
Alessandro Ranellucci
c517b0d8f1 Bugfix: object disappeared from 2D plater when reloaded from disk. #3634 2017-02-21 13:57:40 +01:00
Sebastianv650
b8ece2af06 Pressure advance overrides print speeds patch (#3287)
* Fix PressureRegulation.pm

Check if a pressure advance is needed even if speed is unchanged, but a discharge happened before. Restore print speed after advance / discharge. Solves #3282
2017-02-21 13:09:12 +01:00
Joseph Lenox
27a1a6609f Fixed input to bed shape dialog to catch everything that resolves to 0. Fixes #3681 (#3683) 2017-02-21 13:07:15 +01:00
Joseph Lenox
b022e51d94 Don't reset speed on flush moves (avoid use of uninitialized variable). 2017-02-21 13:02:16 +01:00
bubnikv
8aae5bdb28 The variable layer editing shader was made OpenGL 2.0 compatible.
Fixed a bug in the scaling of colors for the variable layer editing.
2017-02-21 09:39:28 +01:00
bubnikv
8cfdc28f2b Implemented a level of detail on the variable layer height editing tool. 2017-02-20 21:54:53 +01:00
bubnikv
6e19921f98 Fix a warning on Linux / OSX. 2017-02-19 19:44:05 +01:00
bubnikv
a8eb217e4a System Info dialog made nicer.
Fixed a bug in reporting a software renderer on Windows.
2017-02-19 19:08:58 +01:00
bubnikv
898deb48c4 Error reporting on initialization of the Layer Editing OpenGL shaders.
The shaders are initialized when the layer editing button is pressed
for the first time. If the initialization fails, a message box
is shown and the layer editing will stay disabled.
2017-02-19 18:01:03 +01:00
bubnikv
70229be9bc Added SystemInfo dialog,
a new SLIC3R_BUILD define to be replaced by the build script,
a menu item to open the "New Issue" github page.
2017-02-19 16:04:57 +01:00
bubnikv
89702a5b4e Fixing an update of the "Export G-code, Send to printer" and similar buttons.
It is a bug, which was lingering around for a long time, only now
the buggy function is called at a time point, where it really hurts.
https://github.com/prusa3d/Slic3r/issues/137
2017-02-17 15:11:59 +01:00
bubnikv
31f213d6ca Hopefully fixes "Export G-Code" Disabled After First Export"
https://github.com/prusa3d/Slic3r/issues/137
2017-02-17 15:00:01 +01:00
bubnikv
2ddabe5fa8 Show the print statistics only if it has valid information to show.
The old behavior was confusing, leading to questions like the following:
https://github.com/prusa3d/Slic3r/issues/130
2017-02-15 16:02:54 +01:00
bubnikv
35490216a7 Fixes the order of a skirt, raft, support & object on the 1st layer. 2017-02-15 12:31:14 +01:00
bubnikv
3d11d1aebf make_skirt ported to C++ 2017-02-15 11:05:52 +01:00
bubnikv
420e387055 new feature: Clip multi-part objects one by the other.
This works the same way as if the XY compensation was set to a tiny value
before, but without the overhead of an offset.
2017-02-14 12:36:04 +01:00
bubnikv
ce8973b33a Fixed a bug in renaming a G-code at the end of a G-code export
from .tmp suffix to a non .tmp file on localized Windows.
2017-02-13 15:45:31 +01:00
bubnikv
fd54956d70 Hopefuly a fix of https://github.com/prusa3d/Slic3r/issues/116
Enabling / disabling of the layer editing button on OSX & linux did not work.
2017-02-13 12:40:12 +01:00
bubnikv
e2f8ea2809 When renaming the exported G-code (removing the .tmp suffix),
some other application (thank you, Windows Explorer) may keep the file locked.
Try to wait a bit and then rename the file again.
2017-02-13 12:36:46 +01:00
bubnikv
61f9414b09 Fixed a bug in manipulation of multi-component bodies. 2017-02-10 11:24:54 +01:00
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
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