Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修改Gcode_Python_G Code - Fatal编程技术网

Python 修改Gcode

Python 修改Gcode,python,g-code,Python,G Code,我正在尝试打开一个.gcode文件,读取它,并根据它读取的内容向附加到任何包含“Z”的字符串的数字添加一个特定的数字 以下是gcode的示例: G1 Z0.3 G1 F6000 E0 G1 F900 X-14.561 Y14.562 E2.27024 G1 X-14.561 Y-14.561 E4.54048 G1 X14.562 Y-14.561 E6.81071 G1 Z0.8 G0 F12000 X-9.687 Y9.688 Z1.05 G1 Z0.3 G1 F6000 E0 G1 F90

我正在尝试打开一个.gcode文件,读取它,并根据它读取的内容向附加到任何包含“Z”的字符串的数字添加一个特定的数字

以下是gcode的示例:

G1 Z0.3
G1 F6000 E0
G1 F900 X-14.561 Y14.562 E2.27024
G1 X-14.561 Y-14.561 E4.54048
G1 X14.562 Y-14.561 E6.81071
G1 Z0.8
G0 F12000 X-9.687 Y9.688 Z1.05
G1 Z0.3
G1 F6000 E0
G1 F900 X-14.561 Y14.562 E2.27024
G1 X-14.561 Y-14.561 E4.54048 Z1.50
例如,它需要读取每一行,每次遇到包含“Z”的字符串时,取与之相关联的数字,加上1.5,然后用新值替换它

到目前为止,我只有这些:

part_path = input(' Enter Directory for Part Number: ')  # Asks user to input directory of part number folder
part_path = part_path.replace(('\\'), '/')  # Converts \ to / in path to avoid escape characters
file_name = input('Enter the file name: ')
file_path = part_path + '/' + file_name + '.gcode'

gc = open(file_path)
gc_content = gc.readlines()
for l in gc_content:
    if 'Z' in l:
        print(l)
我只是把这张照片作为占位符,看看发生了什么。我不明白如何只取每行的ZXXX部分,将其从字母中拆分(因此将“Z0.3”拆分为['Z',0.3']),以便将“0.3”转换为浮点,然后向其添加特定数字,然后用新值替换旧的ZXXX字符串


任何帮助都将不胜感激,谢谢

我认为这会奏效:

从字符串导入*
part_path=input('Enter Directory for part Number:')#要求用户输入part Number文件夹的目录
part\U path=part\U path.replace(“\\\”、“/”)\将\转换为路径中的/以避免转义字符
file_name=input('输入文件名:')
文件路径=部分路径+'/'+文件名+'.gcode'
gc=打开(文件路径)
gc_content=gc.readlines()
对于gc_内容中的l:
如果l中的“Z”:
l、 rstrip()
指数=l.指数('Z')
num=float(l[dex+1:]
newnum=num+1.0
替换(l,str(num),str(newnum))

现在,你可以用num做任何你想做的事情,num是一个浮点数。这只是找到Z的位置,并取行的其余部分,它始终是浮点数。它也会从右边去掉任何空格(否则我们可能会用空格而不是“0.3”得到0.3以转换为浮点。现在,我们将1.0添加到num,将此值分配给newnum。使用字符串.replace()方法,我们用newnum替换num。

是的,谢谢!所以不,我在后面加上num=num+1.00,但是我该如何在gcode的每一行中替换它呢?在这种情况下,变量l是g代码的每一行,我会对变量l执行Z命令的索引的.replace()吗?@Bkal05现在可以了吗