用于将plt文件转换为具有特定格式的gcode的Python代码

时间:2018-04-17 22:40:39

标签: python python-2.7 g-code

我想将一组坐标从一种文件格式转换为另一种文件格式。它适用于绘图机,如绘图仪。 第一个文件是一个plt文件,如下所示:

PU-3410,7784; PD-3373,-2281; PU16705,7978; PD16435,5325; (继续数以千计的坐标)

我想把它转换成另一个文本文件:

G01 X-3410 Y7784 Z1000
G01 X-3373 Y-2281 Z0
G01 X16705 Y7978 Z1000
G01 X-16435 Y5325 Z0

PU表示Pen Up(在Gcode中= Z1000),PD表示下笔(Z0)。 我是python的新手,我所知道的是如何为Arduino编写代码。 这段代码非常有用。我试图了解如何打开和写入文件,但我对这个项目也太新手,所以我想我会寻求帮助而不是放弃。 非常感谢任何帮助! 干杯, 皮尔

1 个答案:

答案 0 :(得分:1)

免责声明:这可能不完美,但我认为我已经解决了。

# Uncomment this to read the file... remember to change your variable names too
# with open('input_filename', 'r') as file:
#    file_text = file.read()

sample_text = 'PU-3410,7784;PD-3373,-2281;PU16705,7978;PD16435,5325;'

coordinates = sample_text.split(';') # Splits the overall text into smaller easier chunks

with open('output_filename', 'a+') as output_file: # Create file handler for output file
    for c in coordinates:
        if c[:2] == 'PU': # Checks the value of the first two characters, and if it is PU, use Z1000
            g_code = 'Z1000'
        else: # Use Z0 otherwise 
            g_code = 'Z0'
        c = c[2:] # chop off either PU or PD
        tokens = c.split(',') # Get the numbers
        if len(tokens) < 2: # if something isn't formatted right, exit.
            break
        output_file.write("G01 X{0} Y{1} {2}\n".format(tokens[0], tokens[1], g_code))

我做了几个关键的假设:

1)输入文件中没有格式错误 2)所有行都将以G01开头 3)我不知道完整的规格,所以其他的东西可能会关闭