Pythonで3Dプリント


Creating a Globe by Helical 3D-printing Method

めちゃめちゃおもしろい論文を見つけました。Pythonで形状を記述して直接Gコードを吐くライブラリです。

円柱座標に対応しているので、動画のようにスパイラル出力で地球儀型のランプシェードを高速に印刷できたりします。

論文はこれ:

プログラムはこれ:

使用例:

さらに、3Dプリントでタートルグラフィックスをやるプログラムもあります:

その使用例:

----

論文中のプログラム例を見ると、めちゃめちゃ短くて理解しやすいです。

動画の地球儀の海陸のマッピングなどは、内部的には球を作ってから変調する、という手順で生成してるんですが、その実現方法は、吐出量一定のままで速度を変えて積層の幅を変える…という初めて見たやり方です。 すげー発想。

この金田泰博士、いまはこの技術を使ってカスタムランプシェードの会社をやっているようです(https://3d-dl.com/ )。

スパイラルで頑丈なものが出力できるからランプシェード、という応用はアリではあるんですが、ライブラリ自体は螺旋での生産に特化したものではないので、なにかもっと非直感的な応用もありそうな気がします。

たとえば、現状の3Dプリンティングは

  • 形状を考える→3DオブジェクトのSTL表現を作る→スライシング→Gコード→プリント

というフローで製作します。これに対して、このライブラリのような考え方でいけば、

  • 形状を数式的に表現する→Gコード→プリント

ができそう。3DオブジェクトをSTLでなく数式的に表現すればよい。たとえばOpenSCADからのコンバートなんかは面白いような気がします。