3D打印机也能写明信片?
速览
这项技术展示了3D打印在精细艺术创作领域的潜力。通过精确控制打印头轨迹,设备可以模拟人类书写的笔触和风格。这不仅拓展了3D打印的应用场景,也为个性化定制提供了新的可能性。
AI 深度解读
用3D打印机写明信片:从硬件改装到软件绕过
背景
作者近期阅读了 Amy Goodchild 关于使用 JavaScript 数字化手写笔迹的博客文章,这一想法引发了他的灵感。虽然作者最终没有选择数字化自己的笔迹,但这促使他构思了一个更小型的项目:将一个圆珠笔夹具安装在 3D 打印机上,让机器代替他手写明信片。
这篇文章记录了实现这一目标的完整过程,其中甚至包含了打印机差点将笔尖直接刺穿打印床的惊险插曲。
核心内容
1. 硬件改装:笔夹适配器
作者使用的设备是 Elegoo Neptune 4 Plus。首要任务是设计并打印一个能将笔固定在挤出机(extruder)上的适配器。他使用 OpenSCAD 设计并在 PLA 材料上打印了该适配器,该部件由三部分组成:
- 主体部分:包裹在挤出机周围,用于固定圆珠笔芯和弹簧。弹簧的作用出乎意料地重要,它允许笔尖在纸面上轻微下压,即使纸面不完全平整,也能保证足够的压力进行书写。
- U形压片:一个小巧的 U 形部件,压在挤出机顶部。其作用是分散螺丝的压力,防止螺丝直接作用于挤出机结构,避免潜在损坏。
- 微型夹具:用于固定笔芯弹簧,防止其脱落。
作者指出,这些部件对精度要求不高,PLA 材料完全胜任,其他耗材应该也能使用。相关的 STL 文件已上传至 Thingiverse。
2. 初步测试:概念验证
在进行复杂操作前,作者进行了基础测试。他安装好适配器,利用打印机的手动控制功能将笔尖降至纸面,并手动移动各轴。结果显示,打印机能够干净、均匀地写出字迹,这证实了概念可行。
3. 软件流程:从文本到 G-code
为了生成可写入的内容,作者采用了以下工作流:
- SVG 生成:使用 Inkscape 软件。较新版本的 Inkscape 内置了 Hershey Text 扩展插件,可以将文本转换为单笔画的 SVG 路径,这正是笔式绘图仪(pen plotter)所需要的格式。
- G-code 转换:使用在线工具 svg2gcode 将 SVG 转换为 G-code。
- 坐标校准:这是一个需要手动设置的步骤。作者手动将笔移至纸张下边缘以设定 X 和 Y 轴原点,然后将 Z 轴降低直至笔尖刚刚接触纸面,以此高度作为“落笔”指令的基准。
- 落笔指令:
G1 Z10 F100 - 抬笔指令:
G1 Z15 F100
- 落笔指令:
4. 第二次测试:遭遇安全机制阻碍
作者最初计划直接发送生成的 G-code 给打印机,像正常打印一样让它执行。然而,测试失败。
问题在于 Elegoo Neptune 4 Plus 的安全机制:每次打印开始前,打印机会自动执行归位(homing)操作。虽然 X 和 Y 轴的归位无害,但 Z 轴归位会导致笔尖和适配器因低于正常挤出机位置,从而被驱动直接撞击打印床。尽管作者以极低速度运行测试,且弹簧吸收了冲击力未造成损坏,但他无法禁用强制归位功能。
5. 解决方案:自定义软件绕过
既然手动控制模式可以正常书写且不触发归位,作者决定寻找一种能模拟手动控制指令的方法。
通过调研,他发现 Neptune 打印机运行着 Moonraker 服务,该服务提供了 REST 和 WebSocket API 用于与打印机通信。这成为了关键突破口。
作者编写了一个小型工具(代码已开源至 GitHub),该工具读取 G-code 文件和打印机地址,通过 WebSocket 连接逐行流式传输 G-code 指令给打印机。这种方式完全绕过了打印机的自动归位逻辑。
6. 第三次测试:成功
使用相同的工作流(Inkscape -> svg2gcode -> 自定义流式传输工具),作者进行了最终测试。
为确保安全,第一次运行时设置了较高的 Z 值,让笔尖在纸面上方空中描摹轨迹,确认运动无误后,再降低 Z 值进行实际书写。测试成功,打印机顺利完成了书写任务。
7. 标准化操作流程
为了方便后续制作,作者总结了一套完整的书写流程:
- 启动打印机,在安装适配器前完成所有轴的归位,确立打印机坐标系。
- 将适配器安装在挤出机上。
- 将纸张或明信片放置在打印床上,确保纸张下边缘与打印床前缘平行。
- 使用磁铁固定纸张。
- 手动移动至纸张左下角,降低 Z 轴直至笔尖接触纸面,记录此时的 X、Y、Z 数值。
- 在 Inkscape 中创建 SVG,并设置文档尺寸以匹配纸张。
- 在 svg2gcode 中,将 X 和 Y 原点设置为刚才记录的数值,并使用记录的 Z 值作为落笔指令高度。
- 使用 g-code-streamer 工具将 G-code 流式传输给打印机。
- 若需连续书写多张相同内容的卡片,可保留两个磁铁作为限位器,确保下一张纸张能精准落在同一位置。
关键要点
- 硬件兼容性:通过简单的机械结构(弹簧缓冲+分散压力设计),可以将非打印耗材(如圆珠笔)适配到大多数 FDM 3D 打印机上。
- 软件生态利用:利用 Inkscape 的 Hershey 字体插件和 svg2gcode 工具,可以轻松将文本或矢量图形转换为绘图仪可用的路径数据。
- 安全机制的规避:许多 3D 打印机(如运行 Moonraker 的 Neptune 系列)在打印前强制执行 Z 轴归位。对于改装设备,直接发送 G-code 可能导致硬件碰撞。
- API 编程介入:通过 Moonraker 的 WebSocket API 逐行发送指令,是一种有效绕过打印机固件限制、实现自定义运动控制的手段。
- 低成本DIY:整个项目无需昂贵的专用绘图仪,利用现有的 3D 打印机和开源软件即可实现类似功能。
意义与影响
这个项目不仅是一个有趣的周末 DIY 挑战,更展示了 3D 打印机作为通用运动平台的可能性。通过简单的改装和软件层面的灵活干预,3D 打印机可以从单纯的增材制造设备转变为二维绘图仪。
作者提到,看着机器工作具有某种奇特的放松感。由于该方案支持任何 SVG 格式,它不仅能写字,也能绘制图画。更重要的是,这一技术突破让作者重新开始了寄送实体明信片给亲友的传统,在数字化沟通盛行的今天,为个人表达增添了一份独特的物理触感和仪式感。
