mirror of
https://github.com/Ultimaker/Cura.git
synced 2026-02-14 04:39:27 -07:00
Print multiple copies from a single gcode file
This commit is contained in:
parent
4b3365d894
commit
25afc0b63f
2 changed files with 52 additions and 7 deletions
|
|
@ -128,9 +128,13 @@ class BlackBeltPlugin(Extension):
|
|||
global_stack = Application.getInstance().getGlobalContainerStack()
|
||||
|
||||
enable_secondary_fans = global_stack.getProperty("blackbelt_secondary_fans_enabled", "value")
|
||||
if not enable_secondary_fans:
|
||||
repetitions = global_stack.getProperty("blackbelt_repetitions", "value")
|
||||
if not (enable_secondary_fans or repetitions > 1):
|
||||
return
|
||||
|
||||
repetitions_distance = global_stack.getProperty("blackbelt_repetitions_distance", "value")
|
||||
repetitions_gcode = global_stack.getProperty("blackbelt_repetitions_gcode", "value")
|
||||
|
||||
scene = Application.getInstance().getController().getScene()
|
||||
gcode_dict = getattr(scene, "gcode_dict", {})
|
||||
if not gcode_dict: # this also checks for an empty dict
|
||||
|
|
@ -143,11 +147,21 @@ class BlackBeltPlugin(Extension):
|
|||
gcode_list = gcode_dict[plate_id]
|
||||
if gcode_list:
|
||||
if ";BLACKBELTPROCESSED" not in gcode_list[0]:
|
||||
search_regex = re.compile(r"M106 S(\d*\.?\d*?)")
|
||||
replace_pattern = r"M106 P1 S\1\nM106 S\1"
|
||||
if enable_secondary_fans:
|
||||
search_regex = re.compile(r"M106 S(\d*\.?\d*?)")
|
||||
replace_pattern = r"M106 P1 S\1\nM106 S\1"
|
||||
|
||||
for layer_number, layer in enumerate(gcode_list):
|
||||
gcode_list[layer_number] = re.sub(search_regex, replace_pattern, layer) #Replace all.
|
||||
for layer_number, layer in enumerate(gcode_list):
|
||||
gcode_list[layer_number] = re.sub(search_regex, replace_pattern, layer) #Replace all.
|
||||
|
||||
if repetitions > 1 and len(gcode_list) > 2:
|
||||
# gcode_list[0]: curaengine header
|
||||
# gcode_list[1]: start gcode
|
||||
# gcode_list[2] - gcode_list[n-1]: layers
|
||||
# gcode_list[n]: end gcode
|
||||
layers = gcode_list[2:-1]
|
||||
layers.append(repetitions_gcode.replace("{blackbelt_repetitions_distance}", str(repetitions_distance)))
|
||||
gcode_list[2:-1] = (layers * int(repetitions))[0:-1]
|
||||
|
||||
gcode_list[0] += ";BLACKBELTPROCESSED\n"
|
||||
gcode_dict[plate_id] = gcode_list
|
||||
|
|
|
|||
|
|
@ -115,6 +115,27 @@
|
|||
"enabled": "blackbelt_belt_wall_enabled",
|
||||
"settable_per_mesh": true,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"blackbelt_repetitions":
|
||||
{
|
||||
"label": "Copies",
|
||||
"description": "The number of times the objects on the build plate are printed. Note that the repetitions will not be visible in Layer View.",
|
||||
"type": "int",
|
||||
"minimum_value": "1",
|
||||
"default_value": 1,
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"blackbelt_repetitions_distance":
|
||||
{
|
||||
"label": "Distance Between Copies",
|
||||
"description": "The distance the belt moves between repetitions.",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"default_value": 15,
|
||||
"enabled": "blackbelt_repetitions > 1",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -150,6 +171,16 @@
|
|||
"maximum_value_warning": "machine_nozzle_size",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"blackbelt_repetitions_gcode":
|
||||
{
|
||||
"label": "Repetitions GCode",
|
||||
"description": "Gcode commands to be executed between repetitions - separated by \\n.",
|
||||
"type": "str",
|
||||
"default_value": "\nG92 E0 ; Set Extruder to zero\nG1 E-6 ; Retract 6mm\nG92 Z0 ; Set Belt to zero\nG1 Z{blackbelt_repetitions_distance} ; Advance belt between repetitions\nG92 Z0 ; Set Belt to zero again\n\n;˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄ - repetition - ˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄\n\nM107 ; Start with the fan off\n\n",
|
||||
"enabled": "blackbelt_repetitions > 1",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -160,10 +191,10 @@
|
|||
"default_value": "BLACKBELT 3D Printer"
|
||||
},
|
||||
"machine_start_gcode" : {
|
||||
"default_value": "G90 ; Set to Absolute Positioning\nM82 ; Set extruder to absolute mode\nG21 ; metric values\nM107 ; start with the fan off\nG92 X0 Y{blackbelt_z_offset} Z0 E0 ; Set all axis to 0. Set Y offset to the belt (Y0.1 = big gap, Y0.3 = small gap)\nG1 Y1 ; Move print head up 1mm\nG28 X0 F2000 ; Home X axis\nG1 E15 ; Extruder 15mm material (purge nozzle)\nG1 Z20 E30 F500 ; Move belt and keep extruding\nG1 Z30 E20 ; Stop extruding, move the belt a bit further\nG92 Z0 E-14 ; Zero Belt and Extuder\nG1 F1000 ; Move to the next point with a Speed of 1000mm per minute\nM117 BLACKBELT Printing...\n\n˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅ - copy from here / paste codes just under here - ˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅\n\nM107 ;start with the fan off"
|
||||
"default_value": "G90 ; Set to Absolute Positioning\nM82 ; Set extruder to absolute mode\nG21 ; Metric values\nM107 ; Start with the fan off\nG92 X0 Y{blackbelt_z_offset} Z0 E0 ; Set all axis to 0. Set Y offset to the belt (Y0.1 = big gap, Y0.3 = small gap)\nG1 Y1 ; Move print head up 1mm\nG28 X0 F2000 ; Home X axis\nG1 E15 ; Extruder 15mm material (purge nozzle)\nG1 Z20 E30 F500 ; Move belt and keep extruding\nG1 Z30 E20 ; Stop extruding, move the belt a bit further\nG92 Z0 E-14 ; Zero Belt and Extuder\nG1 F1000 ; Move to the next point with a Speed of 1000mm per minute\nM117 BLACKBELT Printing...\n\n;˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅ - copy from here / paste codes just under here - ˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅˅\n\nM107 ;start with the fan off"
|
||||
},
|
||||
"machine_end_gcode" : {
|
||||
"default_value": "G92 E0 ;set Extruder to zero\nG1 E-6 ;Retract 6mm\nG92 Z0 ;set Belt to zero\nG1 Z15 ;move Belt 10mm before starting up the next product\nG92 Z0 ;set Belt to zero again\n\n˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄ - copy up to here / paste codes just above here- ˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off\nG92 Z0\nG1 Z10 F1000\nG28 X0 F2000\nG1 Z20 F1000\nG1 X170 F2000\nG1 Y 1 F2000\nM18 ; Disable all stepper motors"
|
||||
"default_value": "G92 E0 ; Set Extruder to zero\nG1 E-6 ; Retract 6mm\nG92 Z0 ; Set Belt to zero\nG1 Z{blackbelt_repetitions_distance} ; Move Belt 15mm before starting up the next product\nG92 Z0 ; Set Belt to zero again\n\n;˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄ - copy up to here / paste codes just above here - ˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄˄\nM104 S0 ; Extruder heater off\nM140 S0 ; Heated bed heater off\nG92 Z0\nG1 Z10 F1000\nG28 X0 F2000\nG1 Z20 F1000\nG1 X170 F2000\nG1 Y 1 F2000\nM18 ; Disable all stepper motors"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 340
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue