科学・技術
3Dプリンターでハガキを書く
Writing Postcards with a 3D Printer (severinbucher.com)
要約
著者は、3Dプリンターをペンプロッターとして活用する方法を解説しています。ボールペン用のアダプターを設計・3Dプリントし、InkscapeやカスタムGコードストリーマーなどのソフトウェアを駆使して、プリンターでハガキに文字を書くことに成功しました。このプロジェクトは、パーソナライズされたハガキを友人や家族に送るための創造的でリラックスできる方法を示しています。
全文翻訳
以前、Amy GoodchildがJavaScriptで手書き文字をデジタル化するブログ記事を読んで以来、そのことが頭から離れませんでした。結局、私自身の手書き文字をデジタル化することはありませんでしたが、そこから小さなアイデアが浮かびました。それは、ボールペンを3Dプリンターに固定し、私に代わってハガキを書かせるというものです。この投稿では、その実現までの道のり、そしてプリンターがペンをベッドに突き刺しそうになった話も紹介します。ペンアダプター#
私はElegoo Neptune 4 Plusを持っています。最初の作業は、エクストルーダーにペンを取り付ける方法でした。そこで、OpenSCADでアダプターを設計し、PLAでプリントしました。これは3つの部品で構成されています。OpenSCADでスライスされたメインアダプター本体。溝にカートリッジが収まり、その上にスプリングが位置します。メインの部品はエクストルーダーを包み込み、ボールペンカートリッジとスプリングを保持します。このスプリングは予想以上に重要でした。ペンが紙に少し押し付けられるようにすることで、表面が完全に平坦でなくても、十分な筆圧で書けるようになります。2つ目の部品は、エクストルーダーの上部に押し当てる小さなU字型のパーツです。これがなければ、すべてを固定するネジがエクストルーダーに直接当たり、それは避けたかったのです。3つ目の部品は、カートリッジのスプリングを所定の位置に保持する小さなクランプです。ボールペンカートリッジと、そのスプリングを所定の位置に保持する小さなクランプ。どの部品も精密ではありません。PLAで十分でしたし、ほぼどんなフィラメントでも機能すると思います。もし自分でプリントしたい場合は、STLファイルがThingiverseにあります。エクストルーダーに取り付けられ、書き込み準備ができた組み立て済みアダプター。最初のテスト#
何か凝ったことをする前に、このコンセプトが本当に成り立つのか知りたかったのです。アダプターを取り付け、プリンターの手動制御を使ってペンを紙に押し下げ、手動で軸を動かしました。書けました。しかもきれいに。これだけで続けるには十分でした。ソフトウェア#
書き込むものを生成するために、Inkscapeを使用しました。新しいバージョンには、テキストをシングルストロークのSVGパスに変換するHershey Text拡張機能が搭載されており、これはペンプロッターにとってまさに理想的です。私はいくつかのテキストを入力し、変換しました。次に、そのSVGをsvg2gcodeという、SVGをGコードに変換するウェブツールに読み込ませました。設定は少し手動です。ペンを手で紙の下端に移動させてXとYの原点を設定し、ペンが表面に触れるまでZを下げて、その高さをペンダウンコマンドに使用しました。私のマシンでは、ペンダウンは以下です。
G1 Z10 F100
そしてペンアップは以下です。
G1 Z15 F100
2回目のテスト(うまくいかなかったもの)#
私の計画は単純でした。生成されたGコードを通常のプリントのようにプリンターに送り、代わりにそれが書くのを見るというものです。しかし、書けませんでした。プリンターには、プリント開始前にすべての軸をホームポジションに戻す安全ルーチンがあります。XとYのホーミングは無害ですが、Zのホーミングは問題です。ペンとアダプターが通常のエクストルーダーよりも低く位置するためです。ペンを取り付けた状態でZをホーミングすると、ペン先がベッドに突き刺さることになります。このテストは非常に低速で行ったため、何も損傷せず、カートリッジのスプリングが衝撃を吸収しました。しかし、何を試しても強制ホーミングを無効にできませんでした。別のアプローチを試す時が来ました。カスタムソフトウェア#
最初のテストで、すでに解決策が見えていました。手動制御で駆動するとプリンターは問題なく書くことができ、手動制御ではホームサイクルがトリガーされません。つまり、手動移動コマンドを一度に1つずつ送信できれば、ホーミングの問題を完全に回避できるわけです。調べてみると、NeptuneがMoonrakerを実行しており、プリンターと通信するためのRESTおよびWebSocket APIが公開されていることがわかりました。これが欠けていたピースでした。そこで、Gコードファイルとプリンターのアドレスを受け取り、WebSocket接続を介してファイルを1行ずつストリーミングする小さなツールを作成しました。特別なものではなく、コードはGitHubで公開されています。3回目のテスト#
以前と同じワークフローです。SVGにはInkscape、Gコードにはsvg2gcode、そしてプリンターに送信するには私のストリーマーを使用しました。最初の実行では速度を低く保ち、Z値を高く設定して、ペンが紙の上空で全てをなぞるようにしました。これにより、インクで書き込む前に動きが正しいことを確認できました。満足したら、Zを下げて実際に書き込みました。うまくいきました。新しい書き込みプロジェクトのセットアップ#
私自身の参考のために、新しい紙に書くための完全な手順を以下に示します。アダプターを取り付ける前にプリンターを起動し、すべての軸をホームポジションに戻して、プリンターが現在位置を把握していることを確認します。エクストルーダーにアダプターを取り付けます。紙またはハガキをベッドに置き、その下端がベッドの前面と平行になるようにします。数個のマグネットで紙を固定します。手動で紙の左下隅まで移動し、ペンが触れるまでZを下げます。X、Y、Zの値をメモします。InkscapeでSVGを作成し、ドキュメントサイズを紙に合わせて設定します。svg2gcodeで、XとYの原点をメモした値に設定し、ペンダウンコマンドにZ値を使用します。g-code-streamerでGコードをプリンターにストリーミングします。複数の同じ紙に書く場合は、次の紙が同じ場所に収まるように、2つのマグネットをエンドストップとして残します。まとめ#
これは楽しい週末プロジェクトでした。機械が動作するのを見るのは、不思議とリラックスできます。どんなSVGでも書けるので、テキストだけでなく絵も同様に楽しく描け、何年かぶりに友人や家族に実際にハガキを送るきっかけになりました。プロッターが動作している短いクリップがこちらです。お使いのブラウザは動画タグをサポートしていません。ハガキを書くプロッター。