我正在为我的自制笔式绘图仪生成 GCODE 的 python 脚本的输出进行后处理。
后处理器在我的 GCODE 中紧跟关键信息位之后(在每个 X 和 Y 坐标值之后)添加了一个空格,导致 GCODE 变得无效。
它的外观示例:
我的输出外观示例:
我试图从可疑的代码片段中删除 \s 运算符,我尝试在各个区域使用 .lstrip() 来删除空格,但无济于事。我还删除了代码中存在的所有双空格,到目前为止没有任何帮助。
我怀疑这段代码正在这样做:
def round_coordinates(self,parameters) :
try:
round_ = int(parameters)
except :
self.error("Bad parameters for round. Round should be an integer! \n(Parameters: '%s')"%(parameters), "error")
gcode = ""
for s in self.gcode.split("\n"):
for a in "xyzijkaf" :
r = re.search(r"(?i)("+a+r")\s*(-?\s*(\d*\.?\d*))", s)
if r :
if r.group(2)!="":
s = re.sub(
r"(?i)("+a+r")\s*(-?)\s*(\d*\.?\d*)",
(r"\1 %0."+str(round_)+"f" if round_>0 else r"\1 %d")%round(float(r.group(2)),round_),
s)
gcode += s + "\n"
self.gcode = gcode
我希望能够找出空白的来源,我可能没有显示正确的代码,所以我已经链接了源文件。它出现在第 2648 行和第 5440 行,还有一个似乎相关的圆形函数。
这是完整代码的pastebin: https ://pastebin.com/s8J1H8r6