UltiMaker uses functional, analytical and tracking cookies. Tracking cookies enhance your experience on our website and may also collect your personal data outside of Ultimaker websites. If you agree with the use of tracking cookies, click “I agree, continue browsing”. You can withdraw your consent at any time. If you do not consent with the use of tracking cookies, click “Refuse”. You can find more information about cookies on our Privacy and Cookie Policy page.
I am trying to write a python script to play subsequent beeps at the end of a print so i can hear when it's done. I have already got it to show up in Cura (a feat on its own), and now I'm trying to make the script run like I want it to. Here is the script:
# SEEKMSMSMSM
# Script to play beeps
from typing import List, Dict
from ..Script import Script
import re
class Soundy(Script):
version = "1.0.0"
def getSettingDataString(self):
return """{
"name": "Soundy",
"key": "Soundy",
"metadata": {},
"version": 2,
"settings":
{
"startFreq":
{
"label": "Start Frequency",
"description": "The starting value of the sound.",
"type": "int",
"default_value": 300
},
"endFreq":
{
"label": "End Frequency",
"description": "The ending value of the sound.",
"type": "int",
"default_value": 800
},
"individualDuration":
{
"label": "Individual Sample Duration",
"description": "How long should each frequency between the range play?",
"type": "int",
"default_value": 1,
"minimum_value": 0.2,
"maximum_value": 20,
"maximum_value_warning": 15
}
}
}"""
def __init__(self):
super().__init__()
def execute(self, data):
StartFreq = self.getSettingValueByKey("startFreq")
EndFreq = self.getSettingValueByKey("endFreq")
ID = self.getSettingValueByKey("individualDuration")
sound = range(StartFreq,EndFreq)
Command = "M300"
for n in sound:
SoundCode = str(Command," P",ID," S",n,sep='')
for layer in data:
index = data.index(layer)
layer = layer + "\n" + SoundCode
data[index] = layer
return data
break
return data
The script shows up, shows the values I can edit, then when I check the Gcode, there's non of the commands I want (M300 P1 S500, for example)
Post Processing Script to add sound to Gcode
in UltiMaker Cura
Posted
I am trying to write a python script to play subsequent beeps at the end of a print so i can hear when it's done. I have already got it to show up in Cura (a feat on its own), and now I'm trying to make the script run like I want it to. Here is the script:
# SEEKMSMSMSM
# Script to play beeps
from typing import List, Dict
from ..Script import Script
import re
class Soundy(Script):
version = "1.0.0"
def getSettingDataString(self):
return """{
"name": "Soundy",
"key": "Soundy",
"metadata": {},
"version": 2,
"settings":
{
"startFreq":
{
"label": "Start Frequency",
"description": "The starting value of the sound.",
"type": "int",
"default_value": 300
},
"endFreq":
{
"label": "End Frequency",
"description": "The ending value of the sound.",
"type": "int",
"default_value": 800
},
"individualDuration":
{
"label": "Individual Sample Duration",
"description": "How long should each frequency between the range play?",
"type": "int",
"default_value": 1,
"minimum_value": 0.2,
"maximum_value": 20,
"maximum_value_warning": 15
}
}
}"""
def __init__(self):
super().__init__()
def execute(self, data):
StartFreq = self.getSettingValueByKey("startFreq")
EndFreq = self.getSettingValueByKey("endFreq")
ID = self.getSettingValueByKey("individualDuration")
sound = range(StartFreq,EndFreq)
Command = "M300"
for n in sound:
SoundCode = str(Command," P",ID," S",n,sep='')
for layer in data:
index = data.index(layer)
layer = layer + "\n" + SoundCode
data[index] = layer
return data
break
return data
The script shows up, shows the values I can edit, then when I check the Gcode, there's non of the commands I want (M300 P1 S500, for example)