Contact me: hankecnc@gmail.com

添加对宏/子程序 M98-M99 的支持 #733

推推 grbl 3年前 (2023-02-06) 421次浏览
关闭
Kenzu 打开了这个问题 2014 年 1 月 31 日 · 19条评论
关闭

添加对宏/子程序 M98-M99 的支持#733

Kenzu 打开了这个问题 2014 年 1 月 31 日 · 19条评论

评论

添加对宏/子程序 M98-M99 的支持 #733

我正在尝试尽可能远离切片机。(所以你不必记住不同切片器之间的设置)
为此我需要宏支持。假设我的 sdcard 上有一个 start.gcode 文件,我使用切片器中的 M98 start.gcode 作为唯一的起始代码运行它。
启动代码可以设置最大速度、归位、启动等。
它也可能是一个 filament.gcode,其中包含我机器上活动灯丝的 esteps 和 temps。根据http://reprap.org/wiki/Triffid_Hunter’s_Calibration_Guide#Optional:_Switch_to_volumetric_E_units将其与固件缩回和体积 e 步相结合我可以在我的所有机器上使用相同的 gcode 而无需考虑温度、灯丝倍增器、不同的启动代码,撤回等。

谢谢

杰斯帕

添加对宏/子程序 M98-M99 的支持 #733
贡献者

对我来说听起来是个不错的目标。你看过M32吗?听起来它已经可以做你想做的事了:

// M32 – 选择文件并开始 SD 打印(可在SD 卡文件打印时使用):
// 语法“M32 /path/filename#”,或“M32 S !filename#”
// 调用 gcode 文件:“M32 P !filename#” 并在完成后返回到调用者文件(类似于#include)。
// 当从 sd 文件中调用时,’#’ 是必需的,因为它停止缓冲区预读

顺便说一句,我刚刚完成了 M200 的实现,以使用 E 的体积单位而不为 e_steps 设置无意义的值。我想在提交拉取请求之前先睡一觉,因为已经晚了,我想确保我没有做任何太愚蠢的事情,但你可以在这里看到提交:whosawhatsis@ d24df7a

在 2014 年 1 月 31 日星期五中午 12:33,Kenzu 写道:


,我正在尝试尽可能远离切片机。(所以你不必记住不同切片器之间的设置)
为此我需要宏支持。假设我的 sdcard 上有一个 start.gcode 文件,我使用切片器中的 M98 start.gcode 作为唯一的起始代码运行它。
启动代码可以设置最大速度、归位、启动等。
它也可能是一个 filament.gcode,其中包含我机器上活动灯丝的 esteps 和 temps。根据http://reprap.org/wiki/Triffid_Hunter’s_Calibration_Guide#Optional:_Switch_to_volumetric_E_units将其与固件缩回和体积 e 步相结合我可以在我的所有机器上使用相同的 gcode 而无需考虑温度、灯丝倍增器、不同的启动代码,撤回等。
谢谢
杰斯帕


直接回复此电子邮件或在 GitHub ( https://github.com/ErikZalm/Marlin/issues/733 ) 上查看。

添加对宏/子程序 M98-M99 的支持 #733

M200…

在我的 1.75
机器(切成 3 毫米)打印失败后,我今天早上就有这个想法

说得通

2014 年 1 月 31 日星期五上午 11:11,whosawhatsis notifications@github.com写道:

对我来说听起来是个不错的目标。你看过M32吗?听起来它
已经可以做你想做的事了:

// M32 – 选择文件并开始 SD 打印(可在SD
卡文件打印时使用):
// 语法“M32 /path/filename#”,或“M32 S !filename#”
// 调用 gcode 文件:“M32 P !filename#” 并在
完成后返回到调用者文件(类似于#include)。
// 当从 sd 文件中调用时,’#’ 是必需的,因为它停止
缓冲区预读

顺便说一句,我刚刚完成了 M200 的实现,以使用
E 的体积单位而不为 e_steps 设置无意义的值。我想
在提交拉取请求之前先睡一觉,因为已经晚了,我想
确保我没有做任何太愚蠢的事情,但你可以在这里看到提交:
whosawhatsis@ d24df7a

在 2014 年 1 月 31 日星期五中午 12:33,Kenzu 写道:


,我正在尝试尽可能远离切片机。(所以你
不必记住不同切片器之间的设置)
为此我需要宏支持。假设我的
sdcard 上有一个 start.gcode 文件,我使用切片器中的 M98 start.gcode 作为唯一的起始
代码运行它。
启动代码可以设置最大速度、归位、启动等。 它也可能是一个 filament.gcode,其中包含我机器
上活动灯丝的 esteps 和 temps 。 根据http://reprap.org/wiki/Triffid_Hunter’s_Calibration_Guide#Optional:_Switch_to_volumetric_E_units
将其与固件缩回和体积 e 步相结合我可以在我所有的机器上使用相同的 gcode 而无需考虑临时工,

灯丝倍增器、不同的起始码、回缩等。
谢谢杰斯帕
_

直接回复此电子邮件或在 GitHub (
https://github.com/ErikZalm/Marlin/issues/733 ) 上查看它。

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/733#issuecomment-33770927

添加对宏/子程序 M98-M99 的支持 #733
作者

不,不是关于 M32 :-) 稍后会用它玩。
关于你的 M200,对我来说听起来像是完美的时机 nad 如果在固件中支持 :-) 会很好 :-) 但是它需要“5。乘以你所有与 E 相关的速度和加速度(特别是固件配置中的最大值!),并按步骤 2 中的值缩回距离。” 来自 Triffid 指南中的帐户?

添加对宏/子程序 M98-M99 的支持 #733
贡献者

如果有人可以在真实
环境中测试我的宏内容,那就太好了。
Daid 告诉我, 由于 sd 卡库中的问题,
在非常大的 gcode 文件中,它从宏返回的索引位置可能不正确。 但我只测试了相当短的文件。它似乎在那里工作。 然而,我不建议在 打印头的平稳移动中使用它,因为它需要清空缓冲区,并且每次 调用宏时,您可能会有一点过度沉积,因为打印 头可能会休息并且等到新文件打开。

伯恩哈德

2014 年 1 月 31 日星期五上午 10:11,whosawhatsis notifications@github.com写道:

对我来说听起来是个不错的目标。你看过M32吗?听起来它
已经可以做你想做的事了:

// M32 – 选择文件并开始 SD 打印(可在SD
卡文件打印时使用):
// 语法“M32 /path/filename#”,或“M32 S !filename#”
// 调用 gcode 文件:“M32 P !filename#” 并在
完成后返回到调用者文件(类似于#include)。
// 当从 sd 文件中调用时,’#’ 是必需的,因为它停止
缓冲区预读

顺便说一句,我刚刚完成了 M200 的实现,以使用
E 的体积单位而不为 e_steps 设置无意义的值。我想
在提交拉取请求之前先睡一觉,因为已经晚了,我想
确保我没有做任何太愚蠢的事情,但你可以在这里看到提交:
whosawhatsis@ d24df7a

在 2014 年 1 月 31 日星期五中午 12:33,Kenzu 写道:


,我正在尝试尽可能远离切片机。(所以你
不必记住不同切片器之间的设置)
为此我需要宏支持。假设我的
sdcard 上有一个 start.gcode 文件,我使用切片器中的 M98 start.gcode 作为唯一的起始
代码运行它。
启动代码可以设置最大速度、归位、启动等。 它也可能是一个 filament.gcode,其中包含我机器
上活动灯丝的 esteps 和 temps 。 根据http://reprap.org/wiki/Triffid_Hunter’s_Calibration_Guide#Optional:_Switch_to_volumetric_E_units
将其与固件缩回和体积 e 步相结合我可以在我所有的机器上使用相同的 gcode 而无需考虑临时工,

灯丝倍增器、不同的起始码、回缩等。
谢谢杰斯帕
_

直接回复此电子邮件或在 GitHub (
https://github.com/ErikZalm/Marlin/issues/733 ) 上查看它。

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/733#issuecomment-33770927

添加对宏/子程序 M98-M99 的支持 #733
作者

有没有办法通过 LCD 和 click_encoder 从一个文件夹复制/移动到另一个文件?

添加对宏/子程序 M98-M99 的支持 #733
贡献者

不,为什么这会有用(严肃的问题)?

伯恩哈德

在 2014 年 1 月 31 日星期五下午 2:08,Kenzu notifications@github.com写道:

有没有办法通过 LCD 和click_encoder从一个文件夹复制/移动到另一个文件?

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/733#issuecomment-33792369

添加对宏/子程序 M98-M99 的支持 #733
作者

假设我有一个名为 filament 的文件夹,其中包含灯丝设置/启动代码,还有一个名为 config 的文件夹,其中包含一个名为 selected filament 的文件。然后启动代码文件包括 config/selected filament. 但我想我可以为此使用 M28 和 M29。会尝试

添加对宏/子程序 M98-M99 的支持 #733
贡献者

一个我从未实施过的概念,但仍然存在于我的脑海中:

在 sd 卡上,有一个名为“macros”的文件夹
,里面有文件 0adfsa.g 1fgsdaf.g 等等。
在 lcd 菜单中,会有一个选项“macros”,它会显示:
adfsa
fgsdaf

这样你的目标也可以实现吗?

伯恩哈德

在 2014 年 1 月 31 日星期五下午 2:17,Kenzu notifications@github.com写道:

假设我有一个名为 filament 的文件夹,其中包含灯丝设置/启动代码,
还有一个名为 config 的文件夹,其中包含一个名为 selected filament 的文件。然后
启动代码文件包括 config/selected filament. 但我想我可以为此使用
M28 和 M29。会尝试

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/733#issuecomment-33792932

添加对宏/子程序 M98-M99 的支持 #733
作者

我的目标是尽可能多地从切片器转移到固件。
我有一个像这样的 sdcard 结构:

/Config/start.gcode “all start codes, like homing”
/t0.gcode “temp and estep for extruder 0”
/t1.gcode “–||–“
/end.gcode “place bed/heads for print removal “

Filaments/t0/ABS/black.gcode “运行时,将设置移动到 t0.gcode”
/t0/PLA/blue.gcode
/t1/ABS/black.gcode “将设置移动到 t1.gcode”
/t1/PLA/blue .gcode
/t1/PC/clear.gcode “也许只有 t1 可以做 PC”

文件
/Single/someprint.gcode /Dual/some-dual-color-print.gcode


/change-filament.gcode /some-other-macro.gcode

通过体积 e 步,我可以为我的所有打印机使用相同的 gcode。

添加对宏/子程序 M98-M99 的支持 #733
贡献者

如何很好地完成此操作的另一个想法:
变量
,例如
#= 值
设置一个变量(变量已经存在并在启动时设置为预定义的值

该变量可以由 lcd 菜单系统设置,例如通过编译的材料
选择。
或被 gcode 宏覆盖,
您可以为不同的材料设置一个宏
,然后使用变量名让 start.gcode 执行它的操作。

伯恩哈德

在 2014 年 1 月 31 日星期五下午 2:31,Kenzu notifications@github.com写道:

我的目标是尽可能多地从切片器转移到固件。
我有一个像这样的 sdcard 结构:

/Config/start.gcode “all start codes, like homing”
/t0.gcode “temp and estep for extruder 0”
/t1.gcode “–||–“
/end.gcode “place bed/heads for print removal “
Filaments/t0/ABS/black.gcode “运行时,将设置移动到 t0.gcode”
/t0/PLA/blue.gcode
/t1/ABS/black.gcode “将设置移动到 t1.gcode”
/t1/PLA/ blue.gcode /t1/PC/clear.gcode
“也许只有 t1 可以 做 PC ”宏.gcode

通过体积 e 步,我可以为我的所有打印机使用相同的 gcode。

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/733#issuecomment-33793786

添加对宏/子程序 M98-M99 的支持 #733
作者

如何通过 gcode 处理变量?gcode 可以接受用户输入吗?像 M0 等待用户。

添加对宏/子程序 M98-M99 的支持 #733
贡献者

http://linuxcnc.org/docs/html/gcode/overview.html#sec:parameters

由于内存限制,我认为命名变量是不可能的,但是
例如 10 个固定编号的参数可以工作,每个参数都可以有一个预定义的
LCD 文本和一个预定义的初始值。

伯恩哈德

在 2014 年 1 月 31 日星期五下午 2:38,Kenzu notifications@github.com写道:

如何通过 gcode 处理变量?gcode 可以接受用户输入吗?
像 M0 等待用户。

喜欢 (0)