Commit Graph

122 Commits

Author SHA1 Message Date
Lukas Matena
07282eb24d Fixed unit tests when run with range checks on std::vector
There was a bug in unit tests that led to generating the wipe tower with non-normalized preset.
This caused out-of-bounds access into max_layer_height vector in fill_wipe_tower_partitions.
The problem surfaced in https://github.com/prusa3d/PrusaSlicer/issues/2288.
I quickly patched additional normalization of the preset to prevent this from happening.

Also, an assert in the same function turned out to trip on one of the tests.
This one was commented out for now and will (hopefully) be looked into later.

Function Print::apply_config was renamed to apply_config_perl_tests_only so everyone
sees its current purpose and does not mistake it for the more important Print::apply.
2019-05-22 16:48:20 +02:00
Jason Tibbitts
58d78e8dbd Fix two errors with -Werror=format-security
Fedora (and, I supposed, most recent Linux distros) build everything
with -Werror=format-security.  If you attempt to build with
-DSLIC3R_PERL_XS (which we need in order to run the test suite), the
build fails because of two strings in the Perl XS code:

/usr/bin/perl -MExtUtils::XSpp::Cmd -e xspp -- -t "/builddir/build/BUILD/PrusaSlicer-version_2.0.0-rc2/xs/xsp/typemap.xspt" "/builddir/build/BUILD/PrusaSlicer-version_2.0.0-rc2/xs/xsp/Print.xsp":585:31: error: format not a string literal and no format arguments [-Werror=format-security]

Ths fixes up two instances of that.
2019-05-20 18:16:13 +02:00
bubnikv
90235ac386 Fixed layer height profile access from Perl XS 2019-01-23 15:29:18 +01:00
bubnikv
09c539a242 Trigger background processing update when switching to a preview tab.
Implements "Go Direct to the preview screen after slicing #152"
2018-12-11 17:49:31 +01:00
bubnikv
d46d0dc365 Implemented naming of the SLA export file based on the output file name
template.

Reworked naming of the plater exports to not use the output file name
template, but to derive the file name from the first printable object's name.

Fixed error handling: Reimpemented the Perl's "eval" blocks
as try / catch blocks.
2018-12-03 13:14:28 +01:00
bubnikv
c2e46350f2 Separated Print / PrintObject into PrintBase.cpp/h to support SLAPrint 2018-11-08 14:23:17 +01:00
bubnikv
3eea327ef0 WIP: When iterating over PrintObject's regions, use the region count
by PrintObject::region_volumes. This is due to the way Print::apply()
works, it does not invalidate an existing PrintObject if a new region
is added to the print.
2018-11-06 15:31:26 +01:00
bubnikv
56633c7449 Reverted Print::export_png() for the Perl unit tests. 2018-10-24 13:59:24 +02:00
bubnikv
bded28f888 WIP: Reconstruction of background processing. 2018-10-23 15:27:31 +02:00
bubnikv
fe3b92870f Merged with dev 2018-09-17 15:12:13 +02:00
bubnikv
d934b63424 Removed Print.pm,
ported execution of post processing scripts into C++ (WIP, waits for
update of boost::system module on our build server)
Removed other mention of the "Controller".
2018-09-17 12:01:02 +02:00
bubnikv
36faa090fc Removed the Controller, Layer View, System Info, ObjectCutDialog,
removed unused Perl modules.
2018-09-14 10:25:20 +02:00
bubnikv
0235f1a821 Merged with dev 2018-09-12 11:59:02 +02:00
bubnikv
41ce69f327 Improved constness of the Print / PrintObject / Layer ...
Split the wipe tower and time statistics data into separate objects.
Initial work in synchronizing the Model with the Print.
2018-09-11 14:04:47 +02:00
tamasmeszaros
d749080261 Merge remote-tracking branch 'origin/dev' into sla_base_pool 2018-08-27 09:53:52 +02:00
bubnikv
ac72cd779f Replaced Point3 with Eigen Vec3crd, removed Point3 from the Perl binding. 2018-08-21 22:14:47 +02:00
bubnikv
0b5b02e002 Eradicated the Pointf class, replaced with Eigen Vector3d 2018-08-21 21:05:24 +02:00
tamasmeszaros
6e77307880 Merge remote-tracking branch 'origin/eigenize' into sla_base_pool 2018-08-21 13:50:09 +02:00
bubnikv
1ba64da3fe Removed Point::scale(),translate(),coincides_with(),distance_to(),
distance_to_squared(),perp_distance_to(),negative(),vector_to(),
translate(), distance_to() etc,
replaced with the Eigen equivalents.
2018-08-17 14:14:24 +02:00
tamasmeszaros
9559ad77e5 Merge remote-tracking branch 'origin/master' into feature_slice_to_png 2018-07-18 10:14:28 +02:00
tamasmeszaros
ac9d81cfa0 Refactor and extensions to png export dialog. 2018-06-27 17:43:54 +02:00
Enrico Turri
7ff22b9413 Time estimate emitted to gcode at requested interval 2018-06-27 15:35:47 +02:00
tamasmeszaros
f26cb9ebd6 Merge remote-tracking branch 'origin/master' into feature_slice_to_png
# Conflicts:
#	lib/Slic3r/GUI/MainFrame.pm
2018-06-25 13:24:37 +02:00
Enrico Turri
f8982c0ca1 Merge branch 'machine-limits-config' of https://github.com/prusa3d/Slic3r into time_estimate 2018-06-22 12:30:15 +02:00
bubnikv
6b2b970b9a Added machine evelope configuration parameters
(the MachineEnvelopeConfig class).
Added localization support for libslic3r through a callback
(the callback is not registered yet, so the localization does nothing).
Localized the Print::validate() error messages.
2018-06-20 13:57:37 +02:00
Enrico Turri
fa9014fc8e Merge branch 'master' of https://github.com/prusa3d/Slic3r into time_estimate 2018-06-20 08:32:27 +02:00
bubnikv
6fef5a07ab Merge remote-tracking branch 'remotes/origin/scene_manipulators'
Disabled the gizmos.
2018-06-19 16:12:36 +02:00
Enrico Turri
52a7d7ed09 Partial perl code cleanup 2018-06-14 16:09:36 +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
951e8528b4 3DScene layers editing parameters moved to c++ 2018-05-28 13:43:29 +02:00
Enrico Turri
91b9b8aebf Fixed wrong layer height texture updates when using multiple objects 2018-05-23 12:49:56 +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
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
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
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
f4522cd2fc GCode Preview - Customizable extrusion role colors by editing 3DPreview.pm 2018-02-13 13:16:23 +01:00
Enrico Turri
3f006dc11a GCode Preview - Added objects and wipe tower transparent shells 2018-02-12 09:04:05 +01:00
Enrico Turri
a417cf955d GCode Preview - Code cleanup 2018-01-17 10:39:05 +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
02256e900f Merged the branch time_estimate 2018-01-02 10:57:30 +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
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
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
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