开源改变世界

建议:“设置 Z 主页”LCD 菜单选项 #863

推推 grbl 3年前 (2023-02-06) 212次浏览
关闭
thinkyhead 打开了这个问题 2014 年 3 月 29 日 · 13条评论
关闭

建议:“设置 Z 主页”LCD 菜单选项#863

thinkyhead 打开了这个问题 2014 年 3 月 29 日 · 13条评论

评论

建议:“设置 Z 主页”LCD 菜单选项 #863
成员

我实现了一个简单的菜单选项,告诉固件当前 Z 位置是原点。我发现它在使用 LCD 面板上的“移动轴”选项调整 Z 起始位置时很有用。它不一定是一个受欢迎的选项,但它属于“准备”菜单中的那种东西。

建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

而不是告诉当前位置。在家里告诉它它是 0 并让电子设备解决其余的问题。

这对于带有顶部安装的家庭开关的 mendel 90 很有用,你可以在其中告诉它高度,当它回家时它会上升直到它碰到开关,现在它知道 0 有多远。好处是您永远不需要调整开关。你只需要得到正确的高度,闪光很痛苦,然后测试,调整并再次闪光……

建议:“设置 Z 主页”LCD 菜单选项 #863
成员作者

Marlin 中已经可以处理顶部安装(或末端安装)的止动器。[XYZ] HOME_DIR 和 [XYZ] [MIN|MAX]_POS 一起允许您对打印机尺寸和停止位置进行硬编码。DELTA 打印机是一种明确要求止动器位于顶端的型号,因此它们需要固件知道确切的高度。

我提议的代码通过减去“current_position”值修改“add_homeing”数组,然后将“current_position”设置为 0,0,0。如果“add_homeing”(提醒我添加一个提交来修复拼写!)数组被添加到保存的 EEPROM 设置中,这将允许调整在断电后仍然存在。(因此“重置轴偏移”命令也很有用。)

下面的代码将进入 ultralcd.cpp。如您所见,我已经将想法扩展到适用于所有运动轴而不仅仅是 Z。我尝试了一些其他简单的方法,但事实证明这个简短的代码非常完美。更改此代码非常容易,因此它只影响 Z。

/*
    Set Home Offset
*/
void lcd_set_home()
{
    for(int8_t i=0; i < NUM_AXIS; i++) {
      if (i != E_AXIS) {
        add_homing[i] -= current_position[i];
        current_position[i] = 0.0;
      }
    }
    plan_set_position(0.0, 0.0, 0.0, current_position[E_AXIS]);

    // Audio feedback
    enquecommand_P(PSTR("M300 S659 P200"));
    enquecommand_P(PSTR("M300 S698 P200"));
    lcd_return_to_status();
}
建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

因此,这允许我们使用诸如
http://3.bp.blogspot.com/-dUvGNskX4xc/Uk6abaLBoxI/AAAAAAAADgw/YdmvtVN_95M/s1600/LCD_Full_Graphic_display.jpg之类的显示

进去调整尺寸?即说我有一个 mendel90 并将
我的 z 高度设置为 100,但在校准期间我发现我需要它为
100.1…我可以从显示器上做到这一点还是我真的需要硬编码?

如果我发现我需要调整 0.05 次跳跃而不是 0.1 次怎么办?

             |||||
           @(~Ô^Ô~)@

————–oOo—U—oOo————
| |
| 博·赫尔曼森 |
| |
| |
| “有福的是‘裂开的’,|
|因为他们让光进来” |
| 哦 |
|_____ ooO ( ) |
( ) ) /
\ ( (_/
_)

2014-09-25 2:58 GMT+02:00 Scott Lahteine notifications@github.com

Marlin 中已经可以处理顶部安装(或末端安装)的
止动器。[XYZ] HOME_DIR 和 [XYZ] [MIN|MAX]_POS 一起允许您对
打印机尺寸和停止位置进行硬编码。DELTA 打印机
明确要求端点位于顶部,因此它们需要固件
知道确切的高度。

我提议的代码通过减去
“current_position”值修改“add_homeing”数组,然后将“current_position”设置为 0,0,0。如果
“add_homeing”(提醒我添加一个提交来修复拼写!)数组被
添加到保存的 EEPROM 设置中,这将允许调整
在断电后仍然存在。(因此“重置轴偏移”命令也
很有用。)

下面的代码进入 ultralcd.cpp,正如您所看到的,我已经扩展
了这个想法以应用于所有运动轴,而不仅仅是 Z。
此处包含的注释掉的代码显示了我第一次
尝试的另一种天真的方法,但是更短更简单的代码被证明是完美的。

/* 设置原点 Z 偏移 默认自动原点 (G28) 设置 XYZ=0,但 XYZ 可以是任何值。此命令采用当前 Z 偏移并将其与 Z 主页 add_homing [2] 进行比较。如果Z=0.2,add_homing[2]=0,我们设置add_homing[2]=-0.2,使打印机在开始打印前向上移动0.2mm。假设终点站真的很低!自动归位后 Z = -0.7,如前所述。现在调整 Z 轴,直到我们得到一个好的 Z=0。如果现在“0.1”更好,则意味着终点在 -0.8。如果“-0.1”更好,则终点位于 -0.6。基本上,终点距这个新的 0.0 有多远?*/void lcd_set_z_home(){
for(int8_t i=0; i < NUM_AXIS; i++) {
if (i != E_AXIS) {
add_homing[i] -= current_position[我];
当前位置[i] = 0.0;

}
plan_set_position(0.0, 0.0, 0.0, current_position[E_AXIS]);
// 字符命令 [20];
// add_homing[2] -= current_position[Z_AXIS];
// sprintf_P(cmd, PSTR(“M206 Z%f”), add_homing[2]-current_position[Z_AXIS]);
// 查询命令(cmd);
// enquecommand_P(PSTR(“G92 Z0”));

// Audio feedback
enquecommand_P(PSTR("M300 S659 P200"));
enquecommand_P(PSTR("M300 S698 P200"));
lcd_return_to_status();}


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

建议:“设置 Z 主页”LCD 菜单选项 #863
成员作者

如果此功能已分配给 G 代码(有人 M403 吗?),那么您可以将轴移动到软件主机、LCD 控制器或 PrintRun 软件允许的任何点,然后使用代码使该位置成为归位偏移。此命令将采用已应用的任何偏移量。请注意,当然此命令仅在以下序列中有意义:(1) Home(不完美);(2) 调整坐标轴到更好的起始位置;(3) 安家。

(这最终是物理可调止动器的替代方案。它允许对固定位置的 Z 止动器进行标准化,公差为 +-0.2mm。)

建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

不错的主意……但如果这得到实施,那么确保它可以
保存在eeprom中……

还认为如果您发现
一段时间后的偏移量相同可能是错误的做法,那么您可能希望将其
永久存储而不是每次都添加到您的 gcode

             |||||
           @(~Ô^Ô~)@

————–oOo—U—oOo————
| |
| 博·赫尔曼森 |
| |
| |
| “有福的是‘裂开的’,|
|因为他们让光进来” |
| 哦 |
|_____ ooO ( ) |
( ) ) /
\ ( (_/
_)

2014-09-26 2:05 GMT+02:00 Scott Lahteine notifications@github.com

如果此功能已分配给 G 代码(有人 M403 吗?),那么您可以
将轴移动到软件主机、LCD 控制器或
PrintRun 软件允许的任何点,然后使用代码使该位置成为
归位偏移。此命令将采用已应用的任何偏移量。
请注意,当然此命令仅在以下序列中有意义:(1)
home;(2) 将轴移动到理想的起始位置;(3) 安家。


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

建议:“设置 Z 主页”LCD 菜单选项 #863
成员作者

如果这是一个 G 代码,那么它不是您要添加到您的起始代码中的那种。它只有在手动调整到起始位置后才有用。设置后,无论是否保存在 EEPROM 中,您都不会希望在下次手动调整之前再次应用它。这个想法是,你永远不需要知道偏移值是多少,你只需要将喷嘴移动到某个物理位置并按下 Set Home。

建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

是的,我不明白 gcode 的想法……在
某个地方的液晶菜单中调整 z 行程高度的选项至少对我来说很好

             |||||
           @(~Ô^Ô~)@

————–oOo—U—oOo————
| |
| 博·赫尔曼森 |
| |
| |
| “有福的是‘裂开的’,|
|因为他们让光进来” |
| 哦 |
|_____ ooO ( ) |
( ) ) /
\ ( (_/
_)

2014-09-29 4:48 GMT+02:00 Scott Lahteine notifications@github.com

如果这是一个 G 代码,那么它不是您要添加到您的起始代码中的那种。
它只有在手动调整到起始位置后才有用。
设置后,无论是否保存在 EEPROM 中,您都不会希望
在下次手动调整之前再次应用它。


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

建议:“设置 Z 主页”LCD 菜单选项 #863
成员作者

G 代码背后的基本原理来自于当您没有 LCD 控制器时需要设置它,和/或当您想要设置一些您的 LCD 控制器不能设置的间隔时,例如 0.05 毫米,但您的Proronterface可以。G 代码解决了#issuecomment-56807474 中提出的问题

我们倾向于(在 Marlin 中)保持 G 代码非常简单和原子化,而不是让它们启动一个多步骤过程。床自动调平 M 代码可能是最复杂的代码。尽管如此,如果它能让这一点更清楚,一个更全面的“设置主页”功能可以通过立即归位轴开始,然后使 LCD 发出哔哔声并要求用户调整轴并在完成后按下 LCD 按钮,并且然后才应用偏移量。

这是 Makerbot 和其他人添加到他们的固件中作为设置和校准过程的一部分的东西,它可能非常有用。我不介意看到将逐步校准程序添加到标准 Marlin 固件中,但这是另一个话题!

建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

啊是的….

这是我想念的另一件事,显示器中的步幅更小……我可以
在固件中对这么小的步幅进行硬编码,然后进行初始设置吗?还是
marlin one 以 0.1 步的速度工作?

             |||||
           @(~Ô^Ô~)@

————–oOo—U—oOo————
| |
| 博·赫尔曼森 |
| |
| |
| “有福的是‘裂开的’,|
|因为他们让光进来” |
| 哦 |
|_____ ooO ( ) |
( ) ) /
\ ( (_/
_)

2014-09-30 2:53 GMT+02:00 Scott Lahteine notifications@github.com

G 代码背后的基本原理来自于当您
没有 LCD 控制器时需要设置它,和/或当您想要设置一些
您的 LCD 控制器不能设置的间隔时,例如 0.05 毫米,但您的Proronterface
可以。G 代码解决了#issuecomment-56807474 中提出的问题


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

建议:“设置 Z 主页”LCD 菜单选项 #863
成员作者

从 LCD 菜单中,您可以以 10mm、1mm 或 0.1mm 的步长移动 XY 轴;并且,E 轴以 1mm 或 0.1mm 为步长。通过搜索菜单项名称并跟踪处理它的函数,可以很容易地更改代码。您可以轻松添加其他值。可以使用调整的另一件事是移动速度。Marlin 从 LCD 移动选项中非常快速地移动轴,甚至可能以最大速度移动 – 在多个 10mm 移动时尤其明显。我不确定它这样做时是否应用正常加速,但它确实跳得足够快,足以摇晃我的工作台。

我注意到的一件事——当然我并不孤单——是由于舍入误差,Marlin 经常将 0.4mm 显示为 0.39mm。显然是另一个话题,但它可能会让新用户感到困惑,他们可能会认为轴偏离了 0.01 毫米。我需要尽快提交该修复的请求请求!

建议:“设置 Z 主页”LCD 菜单选项 #863
贡献者

这不是重点……重点是能够
从 LCD 更改 Z 行程长度……

今天你只能通过硬编码来调整这些东西

2014-10-05 7:18 GMT+02:00 Scott Lahteine notifications@github.com

From the LCD menu you can move the XY axes in 10mm, 1mm, or 0.1mm steps;
and, the E axis in 1mm or 0.1mm steps. It’s pretty easy to change in the
code by searching for the menu item name and following the trail to the
function that handles it. You could easily add other values. Marlin moves
the axes pretty fast – especially obvious on multiple 10mm moves. I’m not
sure if it applies normal acceleration when it does so, but it certainly
does jump fast enough to shake my work table.

喜欢 (0)