517 Commits

Author SHA1 Message Date
enricoturri1966
28346f78dd Fixed naming of metadata exported to gcode file in binary format 2023-08-04 08:33:28 +02:00
enricoturri1966
ec16420f11 Integrated library libbgcode 2023-08-03 12:57:55 +02:00
enricoturri1966
f02e8e3438 Renamed namespace 2023-07-27 09:04:44 +02:00
enricoturri1966
a11009c3e0 SPE-1784: New compressed (binary) gcode format integration
Populated printer metadata block

Small optimization for print metadata
2023-07-21 08:29:13 +02:00
enricoturri1966
3f5de75bae SPE-1784: New compressed (binary) gcode format integration
Added GCode Block save/load with no encoding

Changed blocks order to: File metadata|Printer metadata|Thumbnails[]|Print metadata|Slicer metadata|GCode[]
2023-07-20 14:20:00 +02:00
enricoturri1966
ecb1a23edd SPE-1784: New compressed (binary) gcode format integration
1st installment as part of tech ENABLE_BINARIZED_GCODE

Still missing GCode Block save/load
2023-07-19 13:18:04 +02:00
Lukas Matena
cc45644a25 Fix an incorrect extra travel when using the wipe tower with no ramming and with extruder offset applied #10801 2023-06-14 15:02:11 +02:00
Vojtech Bubnik
8806442f55 PlaceholderParser on G-code export:
1) added "num_extruders" placeholder
2) changed "is_extruder_used" vector to be always minimum 256 elements long
   with the non-existent extruder values set to zero.
   This is wasteful, but necessary until we change the PlaceholderParser
   handling of vector values to not substitute missing elements
   with the zero'th value.
2023-06-13 10:21:13 +02:00
enricoturri1966
578921257d SPE-1739: Fixed calculation of gcode preview sequential slider endpoints 2023-06-02 09:37:05 +02:00
Lukas Matena
cc71436aef Fixed several warnings 2023-06-01 16:10:33 +02:00
PavelMikus
da6b972a79 Smoothen the curled height estimations and slowdown 2023-04-21 10:04:45 +02:00
enricoturri1966
99f3a3d54f SPE-1649 - Fixed crash in G-code post processor calculating the preheat / cooldown positions 2023-04-19 12:55:21 +02:00
Vojtech Bubnik
fd3c41b4d3 Fix of #10257 SPE-1641
The object labeling likely never worked. Likely it was contributed,
but not reviewed sufficiently (by me I suppose).

Now the object ID is calculated as an index in the list of PrintObjects,
the order is arbitrary but stable, indices start with 0 and incremented
for every printed object with no gap in indices.

We are not quite sure how the indices are used by the OctoPrint
"Cancel Object" plugin, I suppose this change is sufficient.
2023-04-12 17:38:09 +02:00
PavelMikus
2b85615b31 Fix issue https://github.com/prusa3d/PrusaSlicer/issues/10269
Dynamic overhang speed could sometimes wrongly apply volumtric limits
Also, setting speed to zero will now cause the algorithm to use base external perim speed.
2023-04-06 16:20:56 +02:00
PavelMikus
eef077b6ff Fix issue 10229: When dynamic fan speed is enabled, sometimes the extrusion speed was not reset correctly after travel,
resulting in travel speeds used for printing.
https://github.com/prusa3d/PrusaSlicer/issues/10229
2023-04-04 16:06:50 +02:00
Lukas Matena
2ac964a676 XL specific temporary:
- only enable the temp backtracking for XL
- hardcode toolchange time to 4.5s
2023-03-31 16:39:46 +02:00
Lukas Matena
211b8cdc90 Added a marker for the ooze prevention cooldown commands 2023-03-31 16:37:52 +02:00
Vojtech Bubnik
2b7cf2d877 GCodeGenerator / custom G-codes: Added new read/only options providing
the amount of total extruded material and per extruder extruded material
up to the point the value is evaluated:
"extruded_volume", "extruded_weight",
"extruded_volume_total", "extruded_weight_total"
2023-03-30 10:36:36 +02:00
Vojtech Bubnik
7a5639f322 Fixed crash if toolchange G-code modifies final position,
because the extruder was not set yet.
2023-03-29 17:53:23 +02:00
Vojtech Bubnik
ab1813bdc8 PlaceholderParser: fixed access to "position" variable
Follow-up to 59552a8aee893316a74b9a6e012d164ff7643b44
2023-03-29 15:32:43 +02:00
Vojtech Bubnik
59552a8aee PlaceholderParser & G-code export: Exchange of position & extrusion status between custom G-codes and slicer, extension of script syntax.
Newly each custom G-code block may exchange the following values with slicer:

Position and Z-hop:
position (read/write)- 3 element vector (X, Y, Z) of current G-code position. Z element contains the current Z hop.
zhop (read only)- initial zhop value

Extruders: vector variables, one element per extruder:
e_position (read/write) - absolute E position, only available with absolute extruder addressing
e_retracted (read/write) - current retraction state
e_restart_extra (read/write) - current planned extra deretraction when starting printing

For readibility, script's if / elsif / else / endif syntax was modified:

{if cond then
	block
elsif cond then
	block
else
	block
endif}

Semicolon is not required after else or endif.
2023-03-28 12:47:32 +02:00
Lukas Matena
c9b15736da Fixed compilation errors and warnings 2023-03-24 09:56:40 +01:00
Lukas Matena
0a52ef8da7 Fix format of M204 emitted from machine limits for various fws 2023-03-24 09:29:53 +01:00
Lukas Matena
847a34c644 Do not clamp travel acceleration when current firmware flavor does not allow separate setting of print and travel acceleration 2023-03-24 09:29:53 +01:00
Lukas Matena
09122fb0d0 Added a new config option to disable automatic temperature commands around start gcode (autoemit_temperature_commands) 2023-03-24 09:29:53 +01:00
Lukas Matena
da714c7210 Removed M107 inserted automatically at the start of the G-Code 2023-03-24 09:29:53 +01:00
Lukas Matena
3ff600bed0 Separated travel and print acceleration control 2023-03-24 09:29:53 +01:00
YuSanka
19f2a1d9e9 Unified usage of localization macros in slic3r/libslic3r 2023-03-23 22:55:38 +01:00
Vojtech Bubnik
c28585ab7f WIP PlaceholderParser: Support for local and global variables.
Implements #4048 #7196

Syntax:

(global|local) variable_name =
	(scalar_expression|vector_variable|array_expr|initializer_list)

array_expr := array(repeat, value)
initializer_list := (value, value, value, ...)

The type of the newly created variable is defined by the type
of the right hand side intitializer.

Newly declared variable must not override an existing variable.
Variable may be assigned with global|local expression, but its type
must not be changed.

Newly the assignment operator also accepts the same right hand expressions
as the global|local variable definition.
2023-03-22 17:46:57 +01:00
Vojtech Bubnik
de3de3fd11 Fix of discrepancy between G-code placeholder parser current layer index
and total number of layers.
Fixed for non-sequential print only for now.
Partial fix of #9866
2023-03-06 10:47:38 +01:00
PavelMikus
c0165ec209 Fix dynamic fan speed colliding with detect bridging perimeters
Allow max fan speed override cooling max fan speed
2023-03-02 15:30:41 +01:00
Pavel Mikus
edec566d2c fix and integrate with CoolingBuffer 2023-03-02 15:30:41 +01:00
Pavel Mikus
7edd813fc8 fix bugs in ExtrusionEstimator 2023-03-02 15:30:41 +01:00
Pavel Mikus
10d04529d6 Implemented dynamic fan control. Cooling buffer does not yet relfect that 2023-03-02 15:30:41 +01:00
Pavel Mikus
a496444b7e make fixed overlap levels for dynamic overhang speed 2023-03-02 15:30:41 +01:00
Pavel Mikus
beabf46e87 Set cooling markers correctly - finally fix of cooperation between dynamic speed and pressure equalizer
Fixes the following issues: 9769, 9485 and maybe others where presusre equalier is used
with dynamic speeds
2023-02-22 11:01:12 +01:00
Pavel Mikus
5e550709ff fix issue 9800 - Avoid Crossing Curled Overhangs Not Respecting Printer Bed Size
Fix Avoid curled overhang functionality actually not working correctly, especially on multiple objects/instances
2023-02-20 21:14:34 +01:00
Lukas Matena
088fb22182 Fixed 'is_extruder_used' placeholder 2023-02-15 15:56:17 +01:00
Lukas Matena
e2045a60ee Separate acceleration control for external perimeters and (top) solid infill 2023-02-15 15:03:37 +01:00
Lukas Matena
026ca7b3c9 Fixed wipe tower with no sparse layers (layers were missing) #9592 #9703 2023-02-14 14:02:58 +01:00
Vojtech Bubnik
56c4cfb202 Fix of supports for soluble / non-soluble after refactoring
of extrusions into islands.
Fixes #9647
2023-02-08 14:40:50 +01:00
PavelMikus
dc1579df04 Apply volumetric speed limits to reference external perimeter speed when using percentage based speeds.
Otherwise it was possible to get higher speeds the extruder limit.
2023-02-08 10:52:06 +01:00
PavelMikus
a167d43c1d Fix bug in GCode markers when dynamic overhang speed is enabled
Should fix the following issues: #9594, #9485, #9563, #9588, #9610
Also fixed a problem with zero speed when dynamic speed was percentage based and speeds were set to 0 (auto)
2023-02-07 17:06:42 +01:00
Vojtech Bubnik
43dc3bfc42 Fix of a crash with sequential print and raft. Fixes #9464 2023-02-03 15:50:15 +01:00
Lukas Matena
ab4655aa40 Fix ooze prevention behaviour on first layer 2023-01-27 12:04:55 +01:00
Lukas Matena
fd3ab55197 MMU: Fixed missing travel to the wipe tower in one more case 2023-01-27 12:04:55 +01:00
PavelMikus
d0c86403a5 Fix lslices ordering - keep topological ordering from clipper, and separate print ordering into vector of indices 2023-01-26 15:50:18 +01:00
Lukas Matena
ae15032e0f Wipe tower: fixed missing travels to wipe tower on layers with no toolchanges 2023-01-26 07:28:37 +01:00
Lukas Matena
a067da6d53 Ooze prevention:
- remove the infinite skirt
- added 'idle_temperature' in Filament Settings as an optional parameter
- the logic is changed: if idle_temp is present, it is used,
  otherwise it uses the old delta value from Print Settings
- TODO: the optional parameter is not well supported in UI
2023-01-26 07:28:37 +01:00
Lukas Matena
98fea2f6ee Wipe tower: use GCode::set_extruder, allow ooze prevention:
this removes duplicated code and fixes toolchange retraction
The ooze prevention part needs further work, now it does not
work as advertised (the tall skirt)
2023-01-26 07:28:37 +01:00