Nomar记录一段历史
马林鱼调整进给率

我正在为 3d 打印机使用 Marlin 固件(1.1.0-RC7 - 2016 年 7 月 31 日)。目前,由于沿 x 和 y 轴运动的轻微不准确,打印并不完美。我正在尝试在打印机运行时更改沿 xy 轴的速度进给率,以确保打印机按时停止并准确打印。

我有一些用于控制进给率的代码,但问题是我不确定应该在哪里进行这些调整。在 configuration.h 文件中,我看到以下代码:(第 742 和 753 行)

 /*line 742*/ #define HOMING_FEEDRATE_XY (50*60) /*line 753*/ #define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25} // (mm/sec)

我可能误解了一些东西,但似乎这将进给率设置为与最大值相同的默认值。

如果在打印过程中进给率发生变化,我猜它会在 Marlin_main.cpp 中完成,但我不确定它实际上改变了哪个部分。有人可以在这里指出我正确的方向吗?

进纸速度是由您提供的 g 代码设置的,为什么不将打印进纸速度设置得更低?您唯一要在固件中更改而不修改它的是最大进给率和归位进给率。

3个回答

您可以调整进给速度。第一个(第 742 行)与归位时(而非打印期间)的最大进给速率 XY 相关。我认为这在您的特定情况下不是问题,您可以保持原样。

第二个(第 753 行)是打印 XY 时的进给速率。特别是括号中的数字是指(X,Y,Z,E)。如果您的打印机正在移动,它可能会比 Z 和 E 更影响 XY。因此您可以尝试调整前两个数字。

由于非常特殊的情况,无法根据计算为您提供进给率,因为您正在处理由移动情况引起的外部加速度。您需要尝试调整它,直到正确为止。

另一个可以帮助您补偿外部加速度(如果有)的设置是这两个轴的加速度。您应该找到如下两条线:

#define DEFAULT_MAX_ACCELERATION {1500,1500,50,250}
#define DEFAULT_ACCELERATION 1500 // 打印移动的 X、Y、Z 和 E 最大加速度(mm/s^2)

然而,轴的加速度可能会影响打印质量。

您可以在 Configuration.h 中更改最大允许进给率,但实际使用的进给率不是由您的固件决定的。进给率在 G 代码文件中指定。像这样的命令

G0 X10.0 Y15.0 Z3.0 F9000

表示以 9000 毫米/分钟的进给速度移动到 (10,15,3)。如果未指定 F,则使用上次使用的进给率。

您只需要提供适当的 G 代码命令以及您想要的进给率。没有理由修改固件以获得不同的进给率。

那么所有 x、y 和 z 轴的进给率是否需要相同?您是否熟悉 Marlin_main.cpp 的哪一部分负责读取 G-Code 文件中的命令?
否,计算各个轴的进给率,以便总进给率为 9000 毫米/秒(例如,点之间的欧几里得距离除以移动时间等于进给率)。如果您从 0,0 移动到 2,1,X 的进给率将是 Y 的进给率的两倍。我不确定您要实现的目标,但更改固件可能不是正确的选择.如果你坚持,你可能应该看看 `prepare_move` 函数。
您不能独立设置轴的进给率,因为这样一个轴可能会先于另一个轴到达目的地。您希望从 X,Y 移动到 X',Y' 以产生一条直线。因此,进给率相互依赖。

看起来您可能想要查看每毫米线的步长。

 #define DEFAULT_AXIS_STEPS_PER_UNIT

这条线是您校准每毫米步数的地方。要校准,请沿轴标记一个点,然后将该轴移动 100 毫米左右。如果它没有准确移动 100 毫米,请进行更改

(how far it moved) (how far it should have moved) ------------------ = ------------------------------ (current steps/mm) (new steps/mm) --> find this

随机文章