我正在努力编写一个 python 软件,将 Fusion 360 的“xyz”后处理器正确转换为我的老式机器人可以理解的格式。
目前一共有三个脚本:
binbash.py(执行以下两个脚本的简单命令脚本)。
convert.py(将分号更改为逗号)打开一个名为 x.csv 的文件并重命名为“one”
go.py(添加额外的组件 - 例如:x,y,z 变成:
moves trans (x,y,z,0,180,180) 这现在将被机器人理解为移动到列出的 x,y,z 位置的命令。
这在 99.9% 的情况下都有效,但无论出于何种原因,我的第二个脚本经常从我的十进制数中删除数字。
例如:
236.727,207.489,35
运行我的脚本后,它返回的行为:
236.727,207.489,3
为什么在应该是 35 的地方少了 5?
这是个大问题,因为我的数控路由器的 Z 轴会向下倾斜超过一英寸,破坏工作。
我也把它变成 41.08 到 41。没什么大不了的,但仍然没有创建准确的刀具路径。
我不是软件工程师,只是想让一个工具工作。如果这里有人认为这很容易解决,请告诉我,也许我可以朝着正确的方向前进?
import csv
reader = csv.reader(open("x.csv", "rU"), delimiter=';')
writer = csv.writer(open("one.csv", 'w', newline=''), delimiter=',')
writer.writerows(reader)
file = open("one.csv", "r")
text = file.readlines()
file.close()
text2 = []
for x in text:
if x[-1] == '\n':
text2.append('moves trans (' + x[:-2] + ',0,180,180)')
for x in text2:
print(x)
file = open("one.csv", "w")
for x in text2:
file.write(x + '\n')
file.close()
我真的不知道接下来要尝试什么。我不清楚为什么 python 会更改我列表中的一些数字而不是其他数字。我知道必须有无数种不同的方式来使用这个软件来表示数字,但我不确定如何让它保持原样。
我应该补充一点,我们正在谈论一长串数字。有时有几十万行。