开源改变世界

G83 宏扩展请求 #110

推推 grbl 2年前 (2023-01-31) 194次浏览
关闭
antoniosap 打开了这个问题 2015 年 9 月 25 日 · 20条评论
关闭

G83 宏扩展请求#110

antoniosap 打开了这个问题 2015 年 9 月 25 日 · 20条评论

注释

G83 宏扩展请求 #110

您好,
G83 是 Peck Drilling Cycle 的常见 g-gode,
GRBL 由于空间不足没有此代码。

现在,我在 perl 中运行一个后处理器,用于在 G0/G1 的循环中进行扩展

我如何更改此增强功能的 python 代码?

G83 宏扩展请求 #110
所有者

您好,您必须
在 toolChange() 处理方法中修改 CNC.py 搜索的“def compile”方法,并且必须执行
类似的操作。如果你可以将你的 perl 转换
为 python,你可以发给我,我可以添加它

G83 宏扩展请求 #110

行。我正在研究这个。

G83 宏扩展请求 #110

你好,请多多支持。当前的 XYZ 在哪里?
CNC.vars[“wx”],CNC.vars[“wy”],CNC.vars[“wz”] ??

G83 宏扩展请求 #110
所有者

@antoniosap更正 wx、wy、tz 持有最后报告的位置与 ?
如果你想准确地知道当前位置你需要停止运动,%等待机器空闲然后使用 wx,wy,wz 位置

G83 宏扩展请求 #110

我只需要语法中的静态位置。不是实时位置。
例如:
N110 G90 Z0
N120 G0 G90 G54 X60.942 Y59.291
N130 S10000 M3
N140 G43.1 Z33。
N150 G98 G83 Z-1.202 R18。Q10。F50。(打开宏)
N160 Y84.691
N170 Y110.091
N180 Y135.491

G80(关闭宏)

G83 宏代码(在测试中)被注入为..(来自我的调试)
macroG8X 条目
[‘N150’, ‘G98’, ‘G83’, ‘Z-1.202’, ‘R18.’, ‘Q10.’, ‘ F50.’]
—>
[‘g0 x0 y0 z0’, ‘g0 z18’, ‘g1 z8 f50’, ‘g0 z18’, ‘g0 z8.01’, ‘g1 z-1.202 f50’, ‘g0 z18 ‘]
macroG8X 退出

结果:g0 x0 y0 z0(错误的初始坐标),G0 X60.942 Y59.291 Z33(正确的初始坐标)

我期待这个 espansion:
[‘g0 x60.942 y59.291 z33’, ‘g0 z18’, ‘g1 z8 f50’, ‘g0 z18’, ‘g0 z8.01’, ‘g1 z-1.202 f50’, ‘g0 z18’]

X,Y,Z 的最后一个静态位置在哪里?

作为参考,扩展的正确代码是:
N110 G90 Z0 (N110 G90 Z0)
N120 G0 G90 G54 X60.942 Y59.291 (N120 G0 G90 G54 X60.942 Y59.291)
N130 S10000 M3 (N130 S10000 M3)
N140 G43 .1 Z33。(N140 G43.1 Z33.)
N150 G0 X60.942 Y59.291 Z33
N151 G0 Z18
N152 G1 Z8 F50 N153
G0 Z18
N154 G0 Z8.01
N155 G1 Z-1.202 F50
N156 G0 Z18 (N150 G98 G83 Z-1.202 R18. Q10.F50 .)
N166 G0 X60.942 Y84.691 Z33
N167 G0 Z18
N168 G1 Z8 F50
N169 G0 Z18
N170 G0 Z8.01
N171 G1 Z-1.202 F50
N172 G0 Z18 (N160 Y84.691)
N182 G0 X60.942 Y110 .091 Z33
N183 G0 Z18
N184 G1 Z8 F50
N185 G0 Z18
N186 G0 Z8.01
N187 G1 Z-1.202 F50
N188 G0 Z18 (N170 Y110.091)
N198 G0 X60.942 Y135.491 Z33
N199 G0 Z18
N200 G1 Z8 F50
N201 G0 Z18
N202 G0 Z8.01
N203 G1 F-1.202

G83 宏扩展请求 #110
所有者

我误解了您需要最后解析的 x、y、z 坐标。通常代码在提交之前不会解析它们(只是为了节省时间)除非请求了自动级别。我可以修改代码来解析它们(或者你也可以这样做)。在没有自动调平(没有 motonPath)的情况下,您也可以调用 self.cnc.processPath(cmds) 和 cnc.motionPathEnd()。可能还有一个:会做这份工作。然后你可以从 self.cnc.x, self.cnc.y…

如果你愿意,我可以做到,但从明天下午开始

G83 宏扩展请求 #110

你好,x,y,y 保持在 0,0,0。附件是带有调试代码的 pre-alpha 代码。我采纳你的建议。保管箱文件位于:https ://www.dropbox.com/s/oser2x6kh71pdbs/CNC.py?dl=0

G83 宏扩展请求 #110
所有者

我将在晚上晚些时候上传一个新版本,它可以正确更新编译函数中的 x、y、z 变量

G83 宏扩展请求 #110
所有者

@antoniosap因为我为新的 toolChange() 例程修改了 CNC.py,所以我还不能上传它。但是,如果您进行以下更改,它应该会起作用。
在 GCode 类的“def compile”中,文件中的最后一个方法
找到“if autolevel:”并附加一个 else 分支,如下所示

self.cnc.processPath(cmds)
self.cnc.motionPathEnd()

G83 宏扩展请求 #110

像这样改变,始终显示 0,0,0。

            if autolevel:

            else:
                self.cnc.processPath(cmds)
                xyz = self.cnc.motionPath()
                self.cnc.motionPathEnd()
                print self.cnc.x
                print self.cnc.y
                print self.cnc.z
G83 宏扩展请求 #110
所有者

您可以查看适用于我的最新 CNC.py。另外,您提到的应该有效,如果不能,您可以将您的测试文件发送给我,以了解问题所在。

G83 宏扩展请求 #110

上次签出后 xyz = 0,0,0 这是 dropobox 文件:
*.NC G83 宏
*.out.nc G83 由 perl
CNC.py 扩展 prg 和调试消息

https://www.dropbox.com/sh/ndip27hxe96u0qu/AAANcAemd17Qw1tSm_pDpf9Aa?dl=0

G83 宏扩展请求 #110
所有者

谢谢@antoniosap. 我明白是什么问题了。在方法 processPath() 和 pathEnd() 中根本不处理 g83、g98。今天晚些时候我会做,首先我必须了解 g83 是如何工作的:)

G83 宏扩展请求 #110
所有者

好的,我已经上传了一个新版本,它应该负责更新 x、y、z 并返回 r、q、l … self.rval、self.qval 中的值…。
但是我是不确定它是否正确。

G83 宏扩展请求 #110
所有者

@antoniosap昨晚我阅读了有关钻孔循环的信息,并且我已经更正了 CNC.py 中的运动变量。所以现在它可以显示固定循环。
您需要的变量是以下
self.cnc.x、self.cnc.y、self.cnc.z 包含进入固定循环之前的最后一个 x、y、z 位置
self.cnc.dx、dy、dz 增量
self.cnc.gcode(当前的 gcode)
self.cnc.lval、self.cnc.rval、self.cnc.qval
请检查 motionPath 和 motionEnd 以正确使用变量
。对例程的调用应在compile(),就在 motionEnd() 调用之前。同样为了保持一致性,最好检查 motionEnd 是否正确返回 x、y、z,因为您的例程将在扩展后返回。

我已经用 linuxcnc 中的所有示例测试了绘图,它工作正常。

G83 宏扩展请求 #110

哇。今天我看这个更新

G83 宏扩展请求 #110
所有者

我刚刚又推送了一个更新来处理你的文件

G83 宏扩展请求 #110

我正在测试。我在“# Canned cycles should come here”上添加了一些调试打印,但是坐标处理至少延迟了 1 条指令行。显示正常。

完整的代码和示例在这里:https ://www.dropbox.com/sh/m21o1wmrnhswcil/AABu5gECP0tHj162oN724rbwa?dl=0

测试日志。

CMDS1: [‘N110’, ‘G90’, ‘Z0’]
gcode1 无
0
0
0
CMDS1: [‘N120’, ‘G0’, ‘G90’, ‘G54’, ‘X60.942’, ‘Y59.291’ ]
gcode1 54
0
0
0
CMDS1: [‘N130’, ‘S10000’, ‘M3’]
gcode1 无
0
0
0
CMDS1: [‘N140’, ‘G43.1’, ‘Z33.’]
gcode1 43
0
0
0
CMDS1 : [‘N150’, ‘G98’, ‘G83’, ‘Z-1.202’, ‘R18.’, ‘Q10.’, ‘F50.’]
gcode1 83
0
0
0
CMDS2: [‘N150’, ‘G98’ , ‘G83’, ‘Z-1.202’, ‘R18.’, ‘Q10.’, ‘F50.’]
gcode 83
0
0
0
CMDS1: [‘N160’, ‘Y84.691’]
gcode1 83
60.942
59.291
18.0
CMDS1: [‘N170’, ‘Y110.091’]
gcode1 83
60.942
84.691
18.0
CMDS1: [‘N180’, ‘Y135.491’]
gcode1 83
60.942
110.091
18.0
CMDS1: [‘N190’8, ‘N190.9Y1 ]
gcode1 83
60.942
135.491
18.0
CMDS1: [‘N200’, ‘Y186.291’]
gcode1 83
60.942
160.891
18.0 CMDS1
: [‘N210’, ‘Y211.691’]
gcode1 83
60.942 ‘186.292’ [
NCM20 ]
18
Y237.091′]
gcode1 83
60.942
211.691
18.0
CMDS1: [‘N230’, ‘Y262.491’]
gcode1 83
60.942
237.091
18.0
CMDS1: [‘N240’, ‘Y287.891’]
gcode1 83
60.942
262.491
18.0
CMDS1: [‘N250’, ‘Y313.291’]
gcode1 83
60.942
287.891
18.0
CMDS1: [‘N2360’, 9 ‘N2338’, 6 ]
gcode1 83
60.942
313.291
18.0
CMDS1: [‘N270’, ‘Y364.091’]
gcode1 83
60.942
338.691
18.0 CMDS1
: [‘N280’, ‘Y389.491’]
gcode1 83
60.942 ‘ 364.092’
NCM
18
Y414.891′]
gcode1 83
60.942
389.491
18.0
CMDS1: [‘N300’, ‘Y440.291’]
gcode1 83
60.942
414.891
18.0
…..

G83 宏扩展请求 #110
所有者

@antoniosap我已经推出了一项修改,该修改使用您的部分代码来扩展固定循环。我已经根据我在 linuxcnc 上发现的内容对其进行了测试,没问题,但是你能用你的输入来测试它吗?

G83 宏扩展请求 #110

行。G83测试通过。
这是对社区的好处