mods projectとAntimony
僕はさっきの質問を承けて、次のようなことを説明したいと思う。それはどのようにds projectが現在のFab Moduleを置き換えるかってことだ。 現在のFab Moduleはコミュニティに支えられた安定した製品だ。 それに対して、mods projectは研究プロジェクトであり、壊れやすく、急速に変化するものだ。 しかし、ロードマップ上では、modsにこの機能性をインポートすることは、ちょっと先の未来に起こることなんだ。 一方、完全に君たちはハードウェア記述言語をAntimonyで用いることが可能だ。
図. Antimony
pcb.cadの移植 話を元に戻すけれども、僕が今お見せしている.cadファイルは僕が編集していたものだ。 しかし、さらに上の方に目をやるとライブラリがあるのが分かるだろう。これはパーツを定義しているフルサイズのライブラリだ。 Antimony上で設計を行う時に必要になるであろうことは、pcb.cadを移植することだ。 pcb.cadはfab.lbrみたいなものなのだけれども、これは関数表現におけるライブラリだ。 そして、これをAntimonyに移植してやる必要がある。 pcb.cadは2Dで使おう 受講者:ひとつ質問があります。クラスのページには古いバージョンのkokopelliしか載っていなくて、新しいバージョンのものは旧バージョンのものと互換性がないようです。僕たちはいくつかのデザインをAntimonyに読み込ませることを試してみましたが、本当に全く上手くいきません。新しいバージョンのkokopelliではライブラリから多くのパーツの情報が欠落しています。 pcb.cadはフルバージョンの3D関数表現方式では使えないだろうと思う。それは2DのCSGで使うものだ。僕はそれを、mods projectの一部として作りたいと思っている。
modsを用いたエレクトロニクスデザイン(?) そして、mods projectのポイントはFab Moduleにある。 コンパイルされたFab Moduleを見てみれば、15の小さなプログラムに分かれているのが見えるだろう。これらは各々がひとつの仕事を行う。 ここにあるjava スクリプトバージョンは先ほどのものを全てカバーしているわけではないが、それらの多くがjavaスクリプトに移植されているだろ。 mods projectの全体像のポイントは、こういう感じなんだ。 ビニルカッターにデータをアップしているんだけれども、ファイルをロードして、僕はツールパスを計算することができる。 そして、ここまでの工程を行うまでずっと、僕はこれをビニルカッターで作ることができる。このとき、これが行なっているのは、これらの関数をそれぞれ分離したモジュールに分解するということだ。そして、そのモジュールはスクリーンの背面に見えている。 しかし、君たちは直接これを得ることができるし、これらを新しいやり方で組み立てることができる。
●modsの2D SVGバージョンを作る だから、僕が思うに、僕たちが最終的に完了させなきゃならないのは、フルバージョンの3D F-Repソルバを作り上げる前に、modsの内部に2DのSVGバージョンを作るということだ。 だから、これらの.cadファイルを移植しようと思っている。そして僕はこれをやり直さなくちゃならない。 このmods projectのモジュラーの構成物の中には、完全に書き換えなきゃならない箇所もある。これが僕が移植に対して心配していない理由なんだ。 この半年ほどは古いコンパイルされたバージョンを使ってきたわけだが、これを移植するために完全に新しく書き直したものに置き換わろうとしている。 受講者:わかりました。ありがとうございます。もし、新しいバージョンのためのライブラリを作るのに助けが必要でしたら、喜んでお手伝いしますよ。 君たちは僕が何をやろうとしているかは知らないだろう。僕が本体を書き終えるのを待たなきゃならない。なぜなら、これは完全に新しいものだからだ。一方で、Antimonyは安定している。これで作業をすれば、僕の作業に縛られることなく進めることができる。 これならばPCB.cadを、リファクタリング(外部から見た動作を変えずに内部構造を整理すること)ができるから、そうすれば、Antimony上でそれを使えるようになる。 僕はこの作業をやるつもりはない。modsを作り上げなきゃならないからね。 しかし、Antimony上でこれが使えるようになることは凄いことだと思うよ。 受講者:分かりました。参加したい人、一緒にやりましょう! 受講者:是非とも!
OK 受講者:ありがとうございました。
(つづく) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。