什么决定了构建板上的打印开始位置?

3D打印 切片3r flashforge-creator
2021-05-22 11:18:25

我正在使用较旧的 MakerBot Replicator 克隆,实际上是 Flashforge Creator 1,带有原始 Creator 固件。

  • 我能够使用 Solidworks 设计对象,并将文件导出为 xxx.stl (ascii)
  • 然后我使用 Slic3r 生成输出为 xxx.gcode 的刀具路径
  • 最后,我使用GPX UI生成了一个 xxx.x3g 文件。

我不明白打印在构建板上的哪个位置开始。这是由 3d 打印机的固件值控制的,还是由 .stl --> .gcode --> x3g 链中的其他内容控制的??现在我的打印从最接近 0,0.0 的角落开始,而不是在构建板的中间。

我如何控制在构建板上放置 3d 打印件的位置?

编辑:为延迟道歉。由于这里发布的答案,我做了一大堆更多的测试。@mick 的初步回复似乎表明您在切片机预览中看到的内容就是您将在打印床上看到的内容。这是有道理的,但这绝对不是我所看到的我绝对看不到任何看起来像选中框 [] 中心的东西。这是我所看到的:

当我将对象放入 Slic3r 时,它会到达构建板的中间。

切片预览

Slic3r 设置

GPX 用户界面

不幸的是,这是打印出来的。

尝试 #1,在太空中关闭

打印失败 #1

尝试 #2,右手边距

打印失败 #2

尝试 #3,靠近前部。

打印 #3

我尝试将打印头移动到构建板的中心,认为这可能是一个合乎逻辑的起点。不行。打印开始移动到首页(打印床的右后角)然后在元件加热到温度后,它似乎在构建板上随机选择一个点开始。在这些尝试之间,我从未接触过 .x3g 文件。所以我马上回到我开始的地方,根据这篇文章的标题“什么决定了构建板上的打印开始位置?”

4个回答

所以事实证明,前面的每个答案中都有一些元素在这里有意义,但它不是一个清晰的画面。我花了很多时间试图弄明白这一点。我还将我的固件升级到Sailfish。

对于 MakerBot Replicator(或 FastForge Creator)系列 3D 打印机,构建板的原点不在任何角落,而是在构建板的正中央。参考这里。

4.1 Home Offsets:
按照惯例,构建平台的中心被假定为 XYZ 空间中的点 (0,0,0)。X、Y 和 Z原位偏移告诉打印机 X、Y 和 Z限位器相对于构建平台中心的位置。

看起来像这样:

构建板的中心是原点

并且大多数其他 3D 打印机似乎没有使用这个约定。叹。根据我的测试,打印位置的主要控制在切片器生成的 G-Code 内。我使用的工具,Slic3r 确实给了一个机会来纠正这种调整。您必须转到顶部菜单Settings --> Printer Settings --> Size and Coordinates (Bed Shape) --> Set才能获得一个不错的弹出式可视化工具。见下文。

不幸的是,默认设置对于整体床尺寸是准确的,但对于床的原点位置来说是失败的。默认原点设置为 0,0,在拐角处。哎哟。大哎哟。原点需要位于打印平台的正中央(与控制该系列打印机打印的固件保持一致)。应该是这样的:

打印床原点设置

请注意,当您告诉打印机转到“主页”时,它不会转到原点 (0,0,0),而是转到终点站。

 G68 X0 Y0 F500 ; Perform Homing Routine

因此,只要您了解这些打印机的怪癖,事情就会解决。您必须确保在固件配置文件中准确设置偏移量。(Replicator / Sailfish) 并且您必须向切片器程序指示正确的中心位置。我会说这里给出的建议有助于理解这一点。非常感谢。我在这里发帖以防其他使用 Replicator 或 FastForge Creator 系列打印机的人在将他们的打印件集中在构建板上时遇到问题。

使用 MakerBot Replicator 或 Flashforge Creator 系列打印机和 Slic3r 的任何人的附加信息。我想添加我的自定义 G 代码内容。默认的 Slic3r 东西肯定不起作用。

打印机设置 --> 自定义 G-Code --> 启动 G-Code

M103 ; Turn all extruders off, Extruder Retraction
G21 ; set units to mm
G90 ; Use absolute coordinates
(**** begin homing ****)
G162 X Y F2500 ; home XY axes to maximum stops
G161 Z F1100 ; home Z axis to minimum stop
G92 Z-5 ; Set Position Z =-5mm
G1 Z0.0 ; move Z to "0"
G161 Z F100 ; home Z axis to minimum stop slowly
M132 X Y Z A B ; Recall stored home offsets for XYZAB axis
               ; Loads the axis offset of the current home position from the EEPROM and waits for the buffer to empty.
G90 ; Use absolute coordinates
G1 X0 Y0 Z50 F3300.0 ; move to waiting position near center of build plate

打印机设置 --> 自定义 G 代码 --> 结束 G 代码

M109 S0 T0 ; Cool down the build platform
M104 S0 T0 ; Cool down the Right Extruder
M104 S0 T1 ; Cool down the Left Extruder
M73 P100 ; End  build progress
G0 Z150 ; Send Z axis to bottom of machine
M18 ; Disable steppers
G162 X Y F2500 ; Home XY endstops
M18 ; Disable stepper motors
M70 P30 ; We <3 Making Things! Yipee, you made it...
; display message above for 30 seconds
M72 P1 ; Play Ta-Da song

我用 Slic3r 做的另一件事。我在幻影裙的外围印了一个单圈印花。我这样做是作为打印头清洁挤出练习。

打印设置 --> 裙子和边缘 --> 裙子 --> 循环(最小):1,与物体的距离:6 毫米,裙子高度:1 这个效果很好。我这样做是为了代替 ReplicatorG 软件中使用的 G 代码启动(它转到左下角,并做了这个奇怪的 4 毫米挤出练习,时间很奇怪......)裙子的东西工作得很好。

听起来您在切片机的打印机定义中选中了“Origin at center”。这通常仅用于 delta 打印机。大多数笛卡尔打印机的原点位于构建板的左前角。取消选中“原点在中心”并重新切片。

如果您已使用正确定义的构建板尺寸和原点设置切片机,您的模型将打印在切片机在预览中显示的位置。当然,您可以在切片之前重新排列模型。

STL 文件包含一个来源。但是,在生成 G 代码时完全忽略了这一点,切片器根据设置选择原点。

G 代码本身是一串命令。其中之一G28要求通过机械移动到这个位置来找到机器的原点。通常都是把这个或者上电位置都格式化为0,然后相对那个位置移动。它总是参考最后一个位置或这个 0(绝对模式)移动。

.x3d 是一种 XML 类型的文件,用于描述 3D 模型。它重新格式化 G 代码以供不同类型的机器读取。它也只参考最后一个位置移动,将上电时的位置作为 0 移动,除非归位。

惯例

CNC 的惯例是,工件的前左上角是 {0;0;0}作为右手定则的原点CNC通常在纯正XY区域工作,只在负Z工作,适合切割。它并不排除负面区域以实现削减,有时进入负面房间是强制性的。

将此约定用于 3D 打印,将构建板(体积)的左前(-下)角作为原点,因为右手法则:坐标空间在 XYZ 中严格为正(右为 X, Y 向后,Z 向上),可以移动到正构建体积内的所有绝对的、严格的正坐标。但是,3D 打印不允许负坐标,而是不允许构建体积之外的任何坐标,范围从 0 到固件中设置的最大值。

这种约定对于 Delta 打印机来说是失败的,它几乎通过圆柱坐标的三角计算推断出单个步进器的高度 {r;ϕ;z}- 半径、0° 到 360° 的角度和 Z 坐标。在这个坐标室中,将 0 放入圆形构建板的中心,数学变得容易得多;到笛卡尔坐标的变换是{rcos(ϕ);rsin(ϕ);z}; 从笛卡尔坐标到圆柱坐标的逆变换稍微复杂一些,并使用案例区分。.

错误

假设构建板有尺寸 ab 带有绿色夹子的角落是 {0;0;0}. 项目被切片到位置{a/2;b/2}床的。它出现在{a;b/2}{a/2;b}分别。这暗示床的中心以某种方式被视为坐标之一。

如果没有剪辑的角落被假定为 {0;0;0},那么 X 应该在右边,Y 应该按照右手法则在前面。要查看坐标是否可能倾斜,以下命令片段会很有用。请一一执行。

G28 ; home
G1 Z5 ; lift off the bed 5 mm to prevent accidental collisions
G1 X50 F500 ; move 50 mm to positive X - in case of back-right corner home this is to the LEFT
G1 Y50 F500 ; move to what ends up 50 50 5 - in case of back-right corner home this is to the FRONT

定影

问题可能不在于切片机,而很可能是固件定义了打印机上的移动轴或归位错误(选择了错误的角或定义了错误的移动轴)。它似乎完全搞砸了,应该用新的副本重新刷新。

这将是一个很好的学习机会,通过将尺寸放入configuration.h并从那里开始,将马林鱼的 Blanco 变体调整到自己的打印机

首先,固件决定了您打印机的来源。这意味着您需要从固件中的终端停止开关正确设置床尺寸和偏移值(通常不需要开箱即用,但在上传更新或不同的固件版本时很重要)。这些偏移确定了底板的原点所在的位置。对于 Marlin 固件,在左前角(面向打印机时)指定原点是很常见的。Marlin配置我们发现,根据定义,原点在左前角(注意在某些打印机中可以旋转 180 度,所以在右后):

 * +-- 返回 ---+
 * | |
 * L | (+) P | 电阻
 * E | | 一世
 * F | (-) N (+) | G
 * T | | H
 * | (-) | 
 * | |
 * O-- 前 --+
 * (0,0)

如何找到打印机的物理来源?
这可以通过使用终端/控制台或简单的 G 代码文件指示头部/喷嘴转到例如 (0, 0, 15)并移动到您从 SD 卡(例如G1 X0 Y0 Z15 F500打印的坐标来测试请注意,出于安全考虑,选择了 Z 为 15!. 执行此操作时,喷嘴应位于固件定义的(升高,因此 X,Y)原点。通常这是在构建板的左前角(那里可能有夹子,因此值会升高),但这可能会因固件设置或固件品牌而异。

下一步是配置切片器,使其与实际原点一致。不正确的切片器设置可能会导致切片器假定原点与您的实际位置不同。在 Ultimaker Cura 中,当物理原点不在中心而是在角落时,“中心原点”因此而闻名。