Testing on Turkey Slices
To define the effectiveness of the CNC and discover possible faults, we test ARTS 2.0 on turkey slices.
Since Lightburn is not made for milling with spindle, the G-code has to be post-processed through a python code as per now.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
def post_process_gcode(input_file, output_file):
add_custom_command = True
add_M5_before_M9 = True
# Open the input file in read mode
with open(input_file, 'r') as f:
lines = f.readlines()
# Open the output file in write mode
with open(output_file, 'w') as f:
for line in lines:
# Check if the line is a rapid move command (G0) with Z10
if add_M5_before_M9 == False:
f.write(line)
elif line.startswith('G0') and 'Z10' in line:
# Change rapid move command to linear move (G1) with Z10
modified_line = line.replace('G0', 'G1')
if(add_custom_command==True):
for newline in lines:
if newline.startswith('G1'):
spindle_speed = "S" + newline.split('S', 1)[-1].strip() # Extracting all characters after "S" including "S"
print(spindle_speed)
break
#modified_line+=spindle_speed
modified_line = "M3" + "\n" + modified_line.strip() + spindle_speed + "\n"
print(modified_line)
f.write(modified_line)
add_custom_command = False
elif line.startswith('G1') and 'S' in line:
no_spindle_g1 = newline.split('S', 1)[0].strip() + "\n" # Extracting all characters after "S" including "S"
f.write(no_spindle_g1)
# Check if the line is a spindle stop command (M5) or spindle start command (M3)
elif line.startswith('M5') or line.startswith('M3'):
# Ignore these commands until M9
pass
# Check if the line is the spindle stop command (M9)
elif line.startswith('M9'):
# Add M5 before M9
if add_M5_before_M9:
f.write('M5\n')
add_M5_before_M9 = False
# Write the line as it is
f.write(line)
else:
# Write the line as it is
f.write(line)
# Example usage
if __name__ == "__main__":
input_file = 'Cutting_samples_2S_100p.gc'
output_file = 'PP_Cutting_samples_2S_100p.gc'
post_process_gcode(input_file, output_file)
print("G-code post-processing complete!")
|
Summary
Slice | Settings | Status | Comments | Future change |
---|---|---|---|---|
1 | Speed: 10mm/s Power: 100% | Failure | Too fast. | Slow down. |
2 | Speed: 2mm/s Power: 100% | Failure | Did not cut all the way through. | Lower the spindle. |
3 | Speed: 1mm/s Power: 100% | Success | Mill bit diameter too high | Change mill bit / Raise spindle. |
4 | Speed: 1mm/s Power: 100% | Failure | Freezer too warm, slice thawed and loosened | Let the freezer be cold enough before cutting. |
5 | Speed: 1mm/s Power: 100% | Success | A lot of spooning | Make a suction. |
6 | Speed: 1mm/s Power: 100% | Failure | Clamping was not able to keep slice suspended against downward force. | Make a baseplate with bigger hole. |
7 | Speed: 1mm/s Power: 100% | - | - | - |
8 | Speed: 1mm/s Power: 100% Layer height: 0.50 | Success | The last sample did not fall down | |
9 | Speed: 1mm/s Power: 100% Layer height: 0.50 | Success | The last sample did not fall down | Increase layer height for bigger last cut |
10 | Speed: 0.6mm/s Power: 100% Layer height: 0.75 | Success | The first sample did not fall down. Had to change mill bit to Ø1.0mm | |
Deck of Cards | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|