3410 Commits

Author SHA1 Message Date
Joseph Lenox
bc145c5c73 Use end_gcode, not start_code for determining to append bed cool command. 2018-04-24 19:03:56 -05:00
Joseph Lenox
44dc572bf7 Use heatbed config option to determine whether to auto-include M140 S0 at end. 2018-04-24 19:00:25 -05:00
Joseph Lenox
d8a743d177 If M190, M109, M104, or M140 commands are not present in end gcode, append commands to shut off all hotends and the bed (same as start gcode). 2018-04-24 18:35:29 -05:00
Oekn5w
72db3392c8 "Reload from disk" - UI function overhaul (#4388)
* C++ backend work to support reloading modifier files

* UI update preserving configs and volumes of modifiers (those are not reloaded)

* clarifying variable names

* Setting up variables in the GUI enviroment

* Implementation of added variables in (new ModelVolume(*)) funcion

* Implementation of new reload function

* Overhaul of the reload function, also renaming of some variables

* Rewriting the main loop of the reload function, explicitly differentiating between the original file and later added parts and modifiers pointing to other files

* Whitespace cleanup

* Added dialog to choose from different reload behaviors, added hide and default option in preferences, copied volumes are matched the new object's origin translation
2018-04-23 12:04:47 -05:00
Joseph Lenox
c206ae77a3 Checks to see if config option has been changed before going any further for several config options.
N of 1 testing indicates that it may help with latency.
2018-04-17 21:55:44 -05:00
Jaggz H
a46aa09755 Added max-support-layers (support_material_max_layers) (#4148)
* Added max-support-layers (support_material_max_layers)
* Revised tooltip text for support_material_max_layers
* Disable support_material_max_layers if no support.
2018-04-14 14:28:55 -05:00
Joseph Lenox
ea29a22cd6 Adds Printer config option to force the use of set-and-wait gcode semantics (if supported by firmware).
Fixes #3268
2018-04-12 21:15:23 -05:00
Joseph Lenox
c3cb01eb93 look for octoprint as a octoprint service, not http.
Reference:
https://github.com/foosel/OctoPrint/wiki/Plugin:-Discovery#zeroconf-service-_octoprint_tcp

Fixes #4375
2018-04-10 17:58:33 -05:00
DN
6454abfd5f Raft pattern angles (#3001) (#4334)
Fixes #3001
2018-04-04 22:43:58 -05:00
Benjamin Landers
331764431e Makes post process scripts able to pass args along with filename (#4363)
Any whitespace is the boundrary between the args/filename. Whitespace can be
escaped by putting a exxclamation point in front of it. And exclamation points
can be escaped by putting an exclamation point in front of the exclamation point
to be escaped.

I thought about adding another box for arguments, but I think that would make it
more confusing to use. The only worry I have with this method is peoples existing
scripts with whitespace in the name.
2018-04-04 22:39:37 -05:00
Gilbert
75302fffc1 Wrong colors in 2d platter and instance color missing (#4354) 2018-04-01 08:00:01 -05:00
Gilbert
ce6b7c8fc2 Solarized Color Scheme (#4322)
* Solarized Color Scheme

* Some color adjustments

* * huge cleanup
* put color scheme defs in seperate file

* Solarize

changed some more colors. more to come?

* save - more colors

* Better scheme handling. LAYERS-Tab still missing.

* More color adjustments.
2D-Plater:
 * Removed grid if no objects are present.
 * Bed has now different color than the background.

* reverted faded background color.

* Added comment to preferences to avoid merge issues.

* added comments

added and changed comments

* * LAYERS tab colorized.
* Better color for support.
* Added comments.

* * forgot to removed/undo comment about keys in 2D - are they documented somewhere?

* * adjusted lighing  - hopefully to the better.
2018-02-26 12:49:42 -06:00
Joseph Lenox
3849e1a0aa Set a sane default for support pillar diameter (1mm). 2018-02-24 23:39:57 -06:00
Joseph Lenox
245aac1172 Make SLAPrintOptions available to Projector through MainFrame. 2018-02-24 23:04:36 -06:00
Gilbert
d194dbbedc Added comments to avoid merge conflicts. (#4301) 2018-02-24 16:11:24 -06:00
Gilbert
ab89469494 Import Config from GCode File (#4316)
* Added comments to avoid merge conflicts.

* Import Config from GCode-File

* undo comments in prefs

* Update MainFrame.pm

* Update MainFrame.pm

consistent code
2018-02-22 18:26:58 -06:00
Joseph Lenox
5fd87dfab8
Update GCode.pm
Missed a call to process() when performing conditional gcode evaluation.
2018-02-20 14:02:31 -06:00
rockandsalt
5f28ee409b added point3 to UI and the required function (#4305) 2018-02-17 22:02:40 -06:00
Gilbert
fd7e71d836 Changed variable_layer_height-icon from cog.png to variable_layer_height.png (#4270) 2018-02-08 16:33:29 -06:00
Joseph Lenox
19ea7a596a
Long retract support in marlin and repetier for FW retract. (#4108)
* For reprap (really Marlin) or Repetier flavors and a toolchange retract, produce G10 S1 instead of G10.

Also refactored comments (were getting eaten by fw retract)

* Fixed tests to check for correct retract gcode output.

* Better reference to scalar.

* Added config checks for if fw tool retracts are in place and firmware is repetier/marlin, disable the advanced option.

* Disable z lift if firmware retraction is enabled.

* With gcode comments on, indicates which extruder Slic3r thinks it is retracting/unretracting.
2018-01-08 15:08:30 -06:00
Ahmed Samir
1190a74f4e Support moving objects using keyboard arrows in the 2d plater view. (#4104)
* * Add nudge_instance to 2D.pm to move the selected instance.
* Add menu items ->, -<, ^, v keyboards shortcuts.

* Add Set nudge value as a config option in Preferences.

* Add Move instance submenu to Plater menu.

* Add Move instance icon.

* Remove move instance menu item and use EVT_KEY_DOWN instead in 2D.pm.

* Fix selecting objects between 3D and 2D platers.

* Fix Ubuntu keyboard focus error in 2D plater.

* Correct the keycodes in 2D.pm keyboard event.

* Fix Windows keyboard focus error.

* Remove Todo line.

* Adding a minimum value for 2d plater nudege variable and improving keyboard focus in 2D plater.
2018-01-05 20:16:04 -06:00
Joseph Lenox
d8a331fda0 Re-added original on_change hook back onto the optgroup that
contained the extruders so that the state of has_heatbed is
correctly updated.

Fixes #4249
2018-01-02 14:03:21 -06:00
Giles Bathgate
966fd37ea7 Use statusbar to show warnings instead of obtrusive dialog box (#4220) 2017-12-29 19:17:13 -06:00
tmotl
dccb146b4a show close button for the first profile editor tab if controller tab is disabled (#4244) 2017-12-29 19:09:03 -06:00
platsch
93c898f4bc apply conditional gcode parser to tool change gcode (#4229)
* apply conditional gcode parser to tool change gcode

* provide [previous_retraction] and [next_retraction] in toolchange gcode and [current_retraction] in layer change gcode
2017-12-21 10:38:17 -06:00
Giles Bathgate
d0e2adea4e Ensure that modifiers are aligned to the center of the part. (#4170) 2017-12-21 10:36:50 -06:00
Giles Bathgate
54205b7df6 Fixes the GL_MULTISAMPLE and GL_ARRAY_BUFFER_ARB messages on failed launch (#4230) 2017-12-14 18:57:29 -06:00
Joseph Lenox
576a86d449 Consider filament start gcode when deciding whether or not to prepend heating gcode.
Fixes #4223.
2017-12-10 15:10:33 -06:00
Giles Bathgate
b5276e6e25 Auto align z preference (#4218)
* Add preference to disable auto alignment to the z plane

* Make it clear auto-center preference only effects x,y
2017-12-07 18:35:01 -06:00
Can Geliş
a553d6de3d New configuration for support material interface extrusion width (#4086)
* different configuration for support material interface extrusion width

* add test for support material interface extrusion width
2017-10-21 17:16:49 -05:00
Giles Bathgate
2675e697ef Provide warning when object(s) are outside print bed. (#4163) 2017-10-21 11:11:16 -05:00
Joseph Lenox
202a90ff90 Math evaluation in gcode (#4157)
* Prototype gcode infix math, very basic.

* Adding exprtk math parser library, header only.
@ArashPartow
https://github.com/ArashPartow/exprtk@4e1315a87dcc99a1ccad21fae1def0c2d4913c0f

* Now evaluating strings with exprtk, only support no variables in input
strings.

* Moved executable code to cpp file, stubbed out xsp and let the testing begin...

* Added conditional gcode parser into export path, added tests.

* Added one more test to ensure that {if0} only removes up to newlines.

* Test failure to parse

* Add some compiler flags to compile out stuff from exprtk

* Fix debug messages to be more specific, don't use deleted stringstream = method.

* Trade expression speed for apparently around 50MB of object size.

* Removed an extra trim that was breaking existing tests.

* fix test

Fixes #3390
2017-10-20 21:40:05 -05:00
Giles Bathgate
4f2250dc70 Fix to autocenter option. (#4156)
* Fix to autocenter option.

Ensure that with autocenter turned off the part is not positioned
in the center of the bed.

* Ensure object is aligned to Z=0 with autocentering off.
2017-10-19 23:35:39 -05:00
platsch
f302df3fb6 Renamed Layers Tab to Layer height table and updated description of this dialog (#4158) 2017-10-19 23:31:35 -05:00
Shien Yang Lee
dc6cfffae4 Added option to manually reorder sequentially printed objects via plater (#4153)
* Added option to tell Slic3r CLI to not arrange at all.

* Implement manual override to object printing order during sequential printing.

* Undo accidental merge of pull request #4146 from alexrj/Slic3r.git
2017-10-16 23:08:13 -05:00
Joseph Lenox
90f66ea9b9 Allows hiding of the Controller tab (controller tab still defaults to visible).
Fixes #3984
2017-09-28 07:49:09 -05:00
Can Geliş
5514c84f2e Fix generating supports for hovering slices (#4129) 2017-09-24 13:45:21 -05:00
Joseph Lenox
e6c715cad2 Merge branch 'adaptive-slicing' into merge-adaptive
# Conflicts:
#	xs/src/libslic3r/Model.cpp
#	xs/src/libslic3r/Model.hpp
2017-09-24 13:39:28 -05:00
Joseph Lenox
5ae6a7fe3e Corrected open() syntax. Fixes #4128, thanks to @rob-miller for the heads-up. 2017-09-24 12:56:10 -05:00
Ahmed Samir
1a2df5e491 Undo/Redo to rotate, miror, split, cut, etc (#4100)
* * Add UndoOperations package in Plater.pm
* Add undo/redo options to the plater menu with their icons.
* Add the 2 undo/redo stacks to Slic3r::GUI::Plater package.
* Add add_undo_operation, undo & redo sub routines to Slic3r::GUI::Plater.
* Add objet identifier variable to each newly created Slic3r::GUI::Plater::Object to keep track of objects referenced in the stacks of undo/redo.
* Add undo/redo to rotate, mirror, increase, remove.

* * Add undo/redo to cut operation.

* * Add undo/redo to split, decrease, change scale and reset.
* Fix pop and push error.a

* * Refactoring undo/redo functions.

* * Some fixes to undo/redo for  reset and decrease functions

* Some Fixes to undo/redo split, reset and cut operations.

* Improve undo/redo menu items sync.

* * limit the undo stack operations to save RAM.

* Remove debugging lines.

* Add undo/redo to Add models.

* Some Refactoring and some fixes.

* Some Refactoring.

Fixes #3265
2017-09-11 20:37:21 -05:00
Joseph Lenox
3e55603c1a Re-added the ability to move part meshes relative to another part mesh in the same object. (#4119) 2017-09-05 17:14:08 -05:00
Ahmed Samir
5cd9ecbe57 [GSoC 2017] Support 3MF Format Read/Write. (#4046)
* Include Miniz library in xs/src/miniz  and update CMakeLists.txt in /src

* Save porgress before merging from Slic3r upstream

* Add CLI --export-3mf option.

* Create the TMF Class.

* call IO::TMF:write function with the read model and the output file in slic3r.cpp
Fix miniz.c error:
 * Miniz source functions were included more than once (once during TMF.cpp and once during compiling miniz.c in /xs/src/miniz.
 * Miniz is a header file library.
 * Solution was to add #define MINIZ_HEADER_FILE_ONLY to include the header part of the single header library miniz.c.

* - Create a Zip archive contating a 3dmodel.model file conatining a basic string.
- Remove #define #define MINIZ_HEADER_FILE_ONLY in the previous commit ( It's not the solution)

* Write Model metadata element to the 3MF zip file.

* Renaming miniz.c to miniz.h,  if you want to include it in other file use #define MINIZ_HEADER_FILE_ONLY before including it.

* Adding zip lib as a wrapper

* Adding zip lib files

* Fix CMakeLists.txt zip library error:
Add zip lib to target_link_libraries.

* Add 3MF Read/Write Structure.
I think this makes TMF read/write more modular.

* Fix some errors in TMF.cpp

* Write ModelMaterial according to 3MF core specification.
fix some typos and variable names.

* Add 3MF Types and OPC relationships.
* Write types in "[Content_Types].xml" at /
* Create "_rels" folder at /

* Write for each Object its mesh vertices element in 3MF Document.

* Write Model Volumes of each object in the 3MF Document.
* write <triangles> element representing the volumes of each object.

* * Refactoring removed Camel Case style.
* Adding ModelObject part number attribute (Specific to the new 3MF format).

* Write 3MF Relationships in the zip archive.

* * Remove the first extension from the exported file name.

* Add partnumber to the constructor.

* Fix ContentTypes.xml file causing 3D Builder not to load the file.
* xmlns schema link added to < Types > element.

* * Write Slic3r metadata version.
* Write ModelMaterials custom config data.

* * Write ModelObject Slic3r custom configs data.
* Some Refactoring.

* * Write ModelVolume Sli3r custom configs to the 3MF Document.

* * Write ModelInstances to the 3MF Document and small refactoring

* * Fix ModelInstance transformation matrix in < build > element. The problem was that 3MF 3d matrices were row major matrices.

* Some Refactoring:
* Add namspaces as constant map<string, string> carrying name of namspace and the link to the namespace.

* *Fix std::map namespaces. I was using [] operator to access the map values but according to c++11 I must use .at(key) to compile.

* * Write colorgroup elements in Material Extension to 3MF core specs:
	* Created color_group attribute in Model class.
	* Created material_group attribute in ModelMaterial class. It's by default 0 whuch means basematerial or AMF read material.

* * Fix CMakeLists.txt zip target link libraries.

* Add data structure for 3MF Material Extension.

* Fix slic3r.cpp whitespace issues.

* Split TMFEditor class into TMF.hpp and TMF.cpp files

* Remove color groups attribute and put all material groups in the 3MF extension into one structure.

* Fix temprory Zip lib.
Modify TMFEditor class pivate and public memebers.

* Some Refactoring.
Make remove any extension not just the last one.

* Add a unit test case for write function.
Some refactoring

* Fix some issues found in the basic 3mf unit test case for TMF::write.

* Forget to change 2 lines in 23_3mf.t

* Some Refactoring

* Remove basename function in zip.c hoping the build pass.
Refactoring in the 23_3mf.t

* Add another test case for wrting a model containing  materials.

* Add SplitPyramid.amf test file in xs/t/amf

* Add basic TMFParserContext struct for reading 3MF XML model file.

* Add Expat handlers.

* Add member functions to TMFParserContext struc: startElement, endElement, characters and stop.

* Add 3mf extension to Model::read_from_file function
Ajust comments according to Doxygen syntax

* * ad model metadata
* Extract the 3dmodel.model file to disc.
* Read the extracted file using Expat XML er.

* Read basematerials found in the 3MF core specifications.
Fix some errors in reading metadata.
Add TMFEditor::read_model() function.

* Change material data structure to include all 3MF materials including (basematerials, m:colorgroups, etc)

* Read Object vertices.
Fix errors during reading basematerial.

* Read object mesh.

* Some Refactoring in TMFParserContext and TMF::Editor

* Read Objects (Objects with meshes, and objects containing other objects -components-)

* Read Build items (ModelInstances) without applying transformations yet.

* * Read scale and translations values from the transformation affine matrix found in the component tag.
* Some refactoring

* Get the rotaion Euler angles from the transformation matrix.

* Fix to get_transformation

* Fix metadata lost due to not copying them in the copy constructor.

* Read Slic3r custom config keys for ModelObjects.
Modify write Slic3r custom configs for ModelObject

* Read Slic3r custom configs of ModelVolumes.

* Refactor applying tranformation matri

* Fix in  reading 3mf format where wrong objects are deleted from the model

* Fix in 3MF read: When reading component tags.
When adding a component to the current object we first copy the object refered by objectid in component tag, then apply transformation to the copied object
then get the mesh of that object and finally delete this object copy and add that mesh to the current object.

* Write model metadata in descending order to make title appear first.

* Refactoring: Remove all assertions in 3MF read and replace it with TMFParserContext::stop() as if assertion fails the extracted 3dmodel.model file won't be deleted.

* Read basematerials in the original model materials map.
Remove the added model material groups.

* Fix fatal error in adding volume when reading 3MF model file.
The end offset should be equal to the size of facets minus one.

* Read color groups.

* some refactoring

* * Some fixes.

* Add model instance x, y rotations and (x,y,z) scaling.(Still working on them).

* Add translation z in the model instance.
Add x, y rotation to the model instance copy constructor.

* Fixes in writing slicer:volume tag

* Remove some todos.

* Improve write materials to adopt groups

* Some Fixes

* Some Fixes

* Read Slic3r materials custom print configs.

* Add basic test for 3mf read.

* Add another test for TMF::read().

* Revert change in slic3r.pl file and removed .DS_store files

* Use initialize list in TMFEditor constructor.
Add a new line in the end of slic3r.cpp

* Add partnumber to ModelObject::swap() function called by assignment operator.

* Deleted xs/t/3mf/.DS_Store

* Removed appling 3mf translation in the z_axis to the model instances.

* Add X&Y rotations, z_translation in 3D, 3D previews and layers plater. To be applied when duplicating objects, etc.

* Add the parent object part number to the split objects.

* Initialize Model metadata.
Add 2 STL test files.
Add all 3d model test files in xs/models folder.

* Add 3mf test (convert from/to STL).
Add partnumber in Model.xsp

* Changed material groups enum to scoped enums.
Fix a typo in 23_3mf.t

* Fix in 23_3mf.test.

* Include X&Y rotation angles, scaling vector in the transformation matrix in item tag.

* Add 3MF file extension to GUI.

* Fix reading slic3r:volume tag in 3mf document.

* Add X&Y rotations, scaling vecotr in the 2D platter. Those 3mf transformation parameters are applied in 2D, 3D, 3D preview and 2D toolpaths platters.

* Remove support for 3MF materials. The materials in 3mf are found at the object level and at the triangle level but not found at the volume level. They are not really useful in our case.

* Remove some warnings and add transformation matrix test.

* Remove headers included for IDE suggestions

* Some enhancements

* Some enhancements

* Fix a bug.

* Remove hardcoded Slic3r version & some enhancements.

* Add another test to 3mf and some enhancements.

* Remove models which became not used in 3mf tests.

* Small change in apply_transformation for model instance in tmf.cpp.

* Some Refactoring to TMF.cpp

* Remove size_t in for loops and use const auto ModelObject or ModelVolume in TMFEditor::write()
Some refactoring.

* Use nullptr instead of NULL in TMFEditor.

* Initialize  TMFParserContext data memebers instead of calling std::vector clear() function.

* Fix a typo caused by refactoring

* Add Export plate with modifiers as 3MF and Export object with modifiers as 3MF options to Slic3r GUI.

* * Remove zip library.
* Add Slic3r::ZipArchive class to handle creating zip files.

* Add extract_entry function to ZipArchive class

* * Modify TMF::write to adapt the new zip wrapper.
* Improvements in ZipArchive.

* * Improve TMFEditor:write by removing to_string template function aw we are using now ofstream.

* * Split ZipArchive class to .cpp and .hpp
* Add Doxygen documentation to ZipArchive class.
* Update MANIFEST file/
* Update CMakeLists.txt file

* * Some improvements to ZipArchive.

* Fix the failing 3MF test on windows.The problem was the end line is manipulated on windows as \r\n

* Add 3mf test files to MANIFEST file.
2017-09-04 21:40:50 +02:00
Florens Wasserfall
ebe4fe8016 Display layer height of currently highlighted layer in adaptive preview 2017-06-26 12:18:39 +02:00
Joseph Lenox
13f121e3d9 Fixed warning/error about missing parenthesis (added during change for duet support). 2017-06-24 13:16:42 -05:00
Florens Wasserfall
718adf211b merge-fix: min / max layer height settings not considered 2017-06-22 10:03:49 +02:00
Florens Wasserfall
546bc0f4d0 fixed merge problem 2017-06-21 17:18:49 +02:00
Florens Wasserfall
c0dfffe0ff Merge branch 'master' into adaptive-slicing 2017-06-21 15:49:24 +02:00
Florens Wasserfall
febe07d8e8 bugfix: better cache for raft height 2017-06-21 15:14:33 +02:00
Florens Wasserfall
6d063a4413 bugfix: cache raft height for z-indicator in preview to avoid segfault when reslicing 2017-06-20 10:45:29 +02:00
Alessandro Ranellucci
2ee32bb244 Added new option for additional overlap between regions printed with distinct extruders or settings 2017-06-19 11:25:11 +02:00