跳转至

# 旋转距离

Klipper 上的步进电机驱动器在每个 stepper 配置分段 中都需要定义一个 `rotation_distance` 参数。 `rotation_distance` 是步进电机旋转一整圈时轴移动的距离。本文档描述了如何配置此值。

## 从step_per_mm（或step_distance）换算旋转距离

你的 3D 打印机的最初设计需要从旋转距离换算 `steps_per_mm`。如果您知道steps_per_mm，则可以使用此通用公式获得原始旋转距离：

    rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>

或者，如果你有一个旧版本的Klipper配置并知道`step_distance`参数，你可以使用这个公式：

    rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance>

`<full_steps_per_rotation>` 设置由步进电机的类型决定。大多数步进电机是“1.8 度步进电机”，因此每转 200 步（360 除以 1.8 等于 200）。一些步进电机是“0.9 度步进电机”，因此每转有 400 整步。其他类型的步进电机很少见。如果不确定，请不要在配置文件中设置 full_steps_per_rotation 并在上面的公式中使用 200。

`<microsteps>`（微步）设置由取决于步进电机驱动型号。大多数驱动使用 16 个微步。如果不确定，请在配置中设置 `microsteps: 16`，并在上面的公式中使用 16。

几乎所有的打印机在X、Y和Z型轴上的`旋转距离`都应该是整数。如果上述公式得出的旋转距离在整数的0.01以内，那么就把最终值四舍五入到该整数。

## 校准挤出机的 rotation_distance

在挤出机上，`rotation_distance`是指步进电机旋转一圈后，耗材所走的距离。获得这一设置准确值的最好方法是使用"测量并修正"的方法。

可以通过steps_per_mm或者通过检查硬件得到初始的猜测值。

然后根据以下流程执行"测量并修正"：

1. 首先确保挤出机里有耗材，热端已被加热到适当的温度，并且打印机准备好挤出。
2. 用记号笔在离挤出机入口约70毫米的位置上对耗材做一个标记。然后用数字卡尺尽可能精确地测量该标记的实际距离。将此记为`<初始标记距离>`。
3. 用下面列出的命令挤出 50mm 的打印丝。先发送`G91`，然后发送 `G1 E50 F60`。注意50mm为`<请求的挤出长度>`。等待挤出机完成移动（大约需要50秒）。在这个测试中，使用缓慢的挤出速度是很重要的，因为较快的速度会导致挤出机的压力变高，使结果发生偏差。(不要在这个测试中使用图形前端的"挤出按钮"，因为它是以快速的速度挤出的。)
4. 使用数显卡尺测量挤出机主体与耗材上的标记之间的新距离。请注意该距离是 `<最终标记距离>`。然后计算：`实际挤出长度 = <初始标记距离> - <最终标记距离>`
5. 计算旋转距离为：`rotation_distance = <旧rotation_distance> * <实际挤出长度> / <请求的挤出长度>`。将新的 rotation_distance 取整到小数点后3位。

如果实际挤出的长度与请求挤出的距离相差超过2毫米，那么最好再重复一次上述步骤。

注意：不要使用"测量并修正"类的方法来校准x、y或z轴。对于这些轴来说，"测量并修剪"的方法不够精确，而且可能会导致更糟糕的配置。相反，如果需要，这些轴可以通过检查皮带、滑轮和丝杆来确定旋转距离。

## 通过检查硬件获得旋转距离

有了步进电机和打印机运动学方面的信息，就可以计算旋转距离。如果不知道steps_per_mm（每毫米的步数），或者正在设计一台新的打印机，这可能有帮助。

### 皮带驱动的轴

计算使用皮带和滑轮的直线轴的旋转距离很简单。

首先确定皮带的类型。大多数打印机使用2毫米的皮带间距（也就是说，皮带上的每个齿相距2毫米）。然后计算步进电机滑轮上的齿数。然后计算出rotation_distance （旋转距离）为：

    rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley>

例如，如果一台打印机有一条2毫米间距的皮带并使用一个20齿的皮带轮，那么旋转距离为40。

### 使用丝杆的轴

使用以下公式可以简单的计算出常见的旋转距离：

    rotation_distance = <screw_pitch> * <number_of_separate_threads>

例如，常见的"T8丝杆"的旋转距离为8（它的间距为2mm，有4个独立的螺纹）。

老式打印机的"螺杆"在导螺杆上只有一个"螺纹"，因此旋转距离是螺杆的间距。(例如，M6公制杆的旋转距离为1，M8杆的旋转距离为1.25。

### 挤出机

通过测量推动耗材的滚花齿轮的直径并使用该公式得出挤出机的初始旋转距离：`旋转距离=<直径> * 3.14`

如果挤出机使用齿轮，则还需要确定和设置挤出机的齿轮比。

挤出机的实际旋转距离会因打印机而异，因为与耗材啮合的挤出论的压力可能会有所不同。它甚至可以在不同的耗材料卷之间变化。在获得初始旋转距离后，使用测量并修剪的流程来获得更精确的设置。

## 使用 gear_ratio（齿轮比）

设置`gear_ratio`可以简化`rotation_distance`在有齿轮箱（或类似）连接的步进电机的配置。大多数步进电机没有齿轮箱--如果不确定，就不要在配置中设置`gear_ratio`。

当`gear_ratio`被设置时，`rotation_distance`代表轴在齿轮箱上的最后一个齿轮旋转一圈时的移动距离。例如，如果一个人正在使用一个具有"5:1"比率的齿轮箱，那么他可以用对硬件的了解来计算旋转距离，然后将`gear_ratio: 5:1`加入配置中。

对于用同步带和同步带轮传动的打印机，可以通过同步带轮上的齿数来计算齿轮比。例如，一个带16齿的同步带轮的步进电机驱动一个带80个齿的同步带轮，那么我们可以使用`gear_ratio: 80:16`。可以直接通过数齿数来确定齿轮比。

请注意，有时一个齿轮箱的齿轮比会与它的宣传略有不同。常见的BMG挤出机马达齿轮就是一个例子--它们被宣传为"3:1"，但实际上使用"50:17"的齿轮。(使用没有共同分母的齿数可能会改善齿轮的整体磨损，因为每转一圈，齿的啮合方式不尽相同）。常见的"5.18:1行星齿轮箱"，更准确的配置是`gear_ratio: 57:11`。

如果一个轴上使用了多个齿轮，那么在 gear_ratio 中填写一个逗号分隔的列表。例如，一个"5:1"齿轮箱驱动一个16齿的皮带轮到80齿的皮带轮，可以使用`gear_ratio: 5:1, 80:16`。

在大多数情况下，gear_ratio 应该用整数来定义，因为普通的齿轮和皮带轮上只有整数的齿。然而，在皮带利用摩擦力而不是齿来驱动皮带轮的情况下，在齿轮比中使用一个浮点数可能是有意义的（例如，`gear_ratio: 107.237:16`）。

回到页面顶部