2011年12月30日金曜日

とりあえず第一号、完成


「任意のパラメトリック曲線で曲げわっぱを作る!」と宣言してから1ヶ月、
ついに形になりました。
digital fabrication技術を利用して設計支援ソフトウエアをつくりました。 
どういうことかというと、つまり
設計者が行う、ベジェ曲線をCG上で描く→物質化というプロセスを
洗練させ、どのような材料で作るか?どういった硬さで作るか?
ある有限の部材で、どのような曲線が物質化可能か?などの条件を
設計の過程で解きつつ、曲線を設計するCADのようなものをつくりました。
技術的・具体的には、
① 曲線の曲率分布に応じた曲げを発生させる切込みパターン 
の生成(今は手動でパターンのパラメーターを指定している)
② 曲げ材と、型材(まげを固定する型)のスリットの間隔を算出する。
任意のベジェ曲線を適当に割りその距離を求め、その距離に応じて、
部材の接合部分の図面を生成する。
③ 曲率に応じて、物質化するスケールをインタラクティブに決めるシステム
(スケールを大きくすれば、曲率が下がり物質かできる、あるいは、
曲線の設計の段階にもどり、曲率をより小さく調整する)
④ 曲率半径を可視化し、物質化可能かどうかの直感的な把握を支援
あるいは、実際の材料を曲げることで確かめを行うことを支援する

これらの問題を解き、CGから物質へ、物質からCGへのプロセスを
洗練・簡易化するソフトウェアをつくりました。
今後は、
・三次元空間上のベジェ曲線に対応したものをつくる。
・FEM等の構造解析と、実験によるパターンと曲げ可能性の検討・実験
・曲率に応じた、切り込みパターンの生成を自動化を行う。
以下、ソフトウェアの様子。

製作プロセス
1.ここで紹介したように曲線をシステム上で設計する。

2.レーザーカッターでストライプを出力
3.部材を組む
さて、この曲線ストライプに応じて材料の弾性領域を拡張するということをしている
のですが、今、実験計測器を購入し、パラーンに応じて弾性がどのように変化するか
を実験します。

http://satotech.com/item/783.html これを使います。
で、計測台を作っています。

2011年12月26日月曜日

システムの概要 (ver.1)

1.ベジェ曲線を描く(曲線を生成・接続が可能)

2.曲率を可視化し、曲率の低いところに部材を接合するポイントを選択する。

3.型(合板を曲げを決めるための型)と、曲げられる材を生成する。
型材は、2の曲線をそのまま利用する。曲げられる材は以下のように生成される。

4.上の写真で描かれている、円は曲率半径である。各セクション(部材を接続するための
凸部分同時の間)における最大曲率を求め、その曲率半径を可視化している。
これの意義は、実際にどの程度、部材を曲げる必要があるかを確かめることができる。

5.4で曲率が大きすぎる場合はスケールを変更して、曲率を下げるか、曲線を再度デザイン
する。

6.各セクションにパターンをマッピングするこのパターンに応じて、材の曲がりやすさが
変わる。(実験・解析によるパターンと曲がりやすさの検証が必要)

7.型にあたる材と、パターンが刻まれた、曲げられる材(ストライプ)を出力する(pdf形式)

2011年12月22日木曜日

java--matheamticaを通信させる際の注意

javaとmathematicaを連帯させて、システム開発をしています。
mathematicaでいくつも関数を定義しておいて、java上からその関数を
利用します。その際、関数の引数として、何らかのデータをmathematicaに
渡すのですが、ここで注意すべきことがあります。
float型は基本的にはmathematicaに渡すことができません。
javaがmatehamticaと通信するために、備え付けてある、クラスの中に
float型を送るためのメソッドはサポートされていませんでした。。

これをしらないと、結構大変なエラーの原因になります。エラーにメッセージも出ないし、
もしfloatをmathematicaサイドに送って処理をさせても、そのまま何の問題もなく
実行できる場合もあります。なので、知らないと泥沼になります。(なりました)

2011年12月15日木曜日

レーザーカッターの機能改善、自作フィルターの取り付け    (Clean up laser cutter and set the new filter )

本日レーザーカッターの集塵機を修理、自作フィルターの取り付けを
行いました。
<結果>
においはまったくなくなりました。
特にアクリルを切ってもまったくにおいがありません。
(今まではおなかが痛くなるほどのにおいでした。)

<原因>
においの一番の原因は、レーザーカッターに取り付けられた部分に
とても大きな穴が開いていたことです。

この様に、あからさまにでかい穴がレーザーのすぐ裏のパイプに見られました。
これがにおいの一番の原因だと考えられます。これは蔵の中に、汚染された空気
を撒き散らしているも同然です。
もうひとつの原因は、これまでフィルターだとされていたものがまったく機能して
いなかったことだと考えられます。
以下が、既存のフィルターです。これはフィルターではなく、ただの”網”です。。。

つまり、汚染された集塵をフィルタリングする役割はほとんど果たされていなかった
と思われます。
<解決策>
ダクトを穴の開かない塩化ビニールに変えました(田中先生が行ってくれました。)


さらに、自作でフィルターをつくりました。
内訳はエアコンの、フィルターシート、活性炭です。
この2つをタッパーにつめます。タッパーですので集塵がたまったら交換
可能です。


以下で、修理、フィルターの取り付けは終わりです。
これで本当ににおいがしなくなりました。
ゆうかさんが外でにおいのチェック、僕、枡森くんが蔵でにおいのチェックを
おこないました。一番においの強いアクリルをきっても、まったくにおいが
しませんでした。

mathematica code [memo]

複素数を除いて、さらに正の数を抽出するコード。
Cases[Cases[{-5, 2, 5+i},Except[Complex]] x_ /; x > 0]
mathematicaのサンプルコード検索するいい方法ないかねぇ。。。。



2011年12月13日火曜日

卒業制作途中経過

moduhedronに加え、曲線、曲面を平面の木材の部材で構成する
研究を始めています。 
今、作っているシステムは、3つ意味があると考えています。
1.有限の部材から形態をつくる。 
2.形態から部材をつくる。
3.同じ形態でも弾性の異なる、形態をつくる。(物質特性を含めたデザイン)
この3つを可能にするための、システムを構成しています。

まずは2次元から考えます。
2次元の曲線を描くのに有効なベジェ曲線を利用します。
ベジェ曲線はいたるところで微分可能で、インダストリアルデザインでは
よく用いられる、曲線です。
このベジェ曲線を合板の部材の組み合わせで作ろうというのが最初の
試みです。
具体的には、曲げわっぱの自由な曲線バージョンといったイメージでしょうか。
最初に述べた3つの命題をときながら形態・機能(物質特性)をつくる設計システムの
内訳をいかに述べます。
まず、以下の写真を見てください。

ベジェ曲線を描くと、同時に曲率分布も計算し、その曲率に応じて必要な部材が
決定されます。 逆に、どの程度曲がるかがわかっている部材から、その部材のみで
ある曲線を構成することもできるでしょう。
なお、部材の弾性は以下の写真のように、部材に切り込みを入れることで変化させる
ことができます。この切り込みのパターンで曲げやすさ、曲げ許容度を制御します。

ひとつの形態の中に、硬い部分柔らかい部分をつくりたい場合、このソフトウェアは
有効だろうと考えています。まだまだ途中ですが、機能も含めた曲線・曲面デザイン
システムの雛形のようなものをつくっています。




mathematica での繰り返し処理における処理時間

mathematicaで 繰り返しの処理をする場合によく使うTableという処理ですが、
書き方によって処理時間がかなり違うのでメモ。
Table[m,{m,0,1,0.001}]は0.001刻みで、mを0~1まで列挙するという処理ですが
これを Table[m,{m,0,1,1/0000}と刻みを分数で書くと処理時間が急に長くなります。
なぜかは厳密にはわかりませんが、実用的なプログラムをmathematicaで書く場合
注意しないといけないと思った。このことについてwlfram社のリファレンスはあるの
でしょうか?ちょっと暇なときに探して見ます。

2011年12月6日火曜日

開発環境

卒論の開発環境としてecllipse上でprocessingをつかい、mathematicaと通信させて開発をおこなっています。環境構築に参考にしたサイトのまとめをしておきます。
processing on eclipseは詳しい情報がたくさんあるので、割愛。
以下、processing+openGL+mathematica on eclipseの環境構築を解説
http://thedoritos.blogspot.com/2011/01/opengl-processing-eclipse.html
・この記事の補足として、openGLに必要なjarファイル・す・べ・て・のneitive locationを
ここでつくったフォルダ(lib)にパスを指定しておきます。
ここに書いてあることを行えば、eclipse+processing +openGLが動きます。
次、mathematicaの導入。
まずは、openGLの時同様jarファイルを追加する必要がある。
mathematicaのパッケージの内容を表示→ system files →links →jlink→”JLink.jar”を、
eclipse のビルドパスから追加する。
ここで、mac ユーザーの場合、mathematicaのパッケージの内容を表示という所を
eclipse上からは開けない場合があります。
そのときは、シンボリックリンクを作成してする。
そして、仮のリンク先から、jarファイルを指定します。
で、以下のサンプルコードを書いてみましょう。
http://reference.wolfram.com/mathematica/JLink/tutorial/WritingJavaProgramsThatUseMathematica.html
ここで一番最初にででくるサンプルコードを書いて実行するのですが、
mathematicaのカーネルを指定するところが、少しややこしかったので、
そこだけここにコピペしておく。

mac
ml = MathLinkFactory.createKernelLink("-linkmode launch -linkname '/Applications/Mathematica.app/Contents/MacOS/MathKernel' -mathlink");
windows
  ml = MathLinkFactory.createKernelLink("-linkmode launch -linkname 'C:\\Program Files\\Wolfram
Research\\Mathematica\\8.0\\MathKernel.exe'");

改行されているので、そこは半角スペースが必要か、必要でないかは、試行錯誤してください。
ちょっと記憶が曖昧なので、思い出せません。
自分で作った、.mファイルから関数を呼び出す場合は、後述します。


2011年12月5日月曜日

bezier曲線

ベジェ曲線をいろんな太さので、チューブとして物質化(曲げ木で)
したいという願いのもと、スクリプトを書いていました。
さて、ベジェ曲線の定義はwikipedia等にある通り、バーンスタイン基底関数
を用いたものです。
wikipedia (ベジョ曲線)
でこれをスクリプトに落とし込むわけですが、4次のベジェ曲線とか5次とか
具体的な次元のベジェ曲線ではなくn次のベジェ曲線を定義するにはどのような
アルゴリズムがいいでしょうか?
ベジェ曲線は多項式で書かれているので再帰的定義が使えそうです。
さらにバーンスタイン基底関数は2項係数にt^i(1-t)^n-iをかけたものです。
(^は累乗)2項係数はパスカルの三角形で有名で、再帰的定義が容易に可能です。
2項定理(wikipedia)
具体的には、wikipediaにあるように、c[n,k]:=c[n-1,k-1]+c[n-1,k]と定義できます。
しかし、ここで注意したいのはスクリプトに落とし込む際は必ず、nが定数の場合を
定義しないと行けません。プログラムが停止しなくなります。なので

c[n_, 0] := 1; c[k_, k_] := 1;を加えて定義します。
そして、さらにここで説明を端折りますが、残りのt項とΣを考慮して計算すると、
bezier曲線は以下の写真のようにmathematicaで定義できます。

これでn次のベジェ曲線が数行で簡単に定義できました。
余談ですが、ベジェ曲線同士の交点をどうやって求めるか
というのは数学的にはdeterministic(決定論的)に解けない
らしいです。だからベジェ曲線の幾何的特性を生かして再帰的に
解くという論文がありました。もしかしたらいずれつかうかもしれない
ため、メモ
東京大学の先生の論文でした。

final project (undergraduate)ー卒論の一部

卒論は過去に作ったものをまとめますが、最後に研究として取り組むのは曲げ木です。
これは修士課程の始まりの研究でもあるので、卒論と同時にもはじまりでもあります。

曲げ木は多くの伝統的な手法があります。曲げわっぱや、お風呂の桶等、これらは
各々が独自の工法で作られ特徴も異なります。これは曲げわっぱといわれるものです。

一方でdigital fabrication技術を用いた曲げ木も存在します。
zip shapeは椅子を作る際に、パラメトリック曲線によってCADでデザインした
曲線がそもままfabricate(物質化)できる手法+システムです。zipShape(リンク)

僕も、zipShapeとは違ったアプローチで曲げ木を制作・研究します。
具体的には今後、アップしますが、合板に切り込みのパターンを入れることで
合板をゴムのように柔らかくできます。(下の写真は合板でできたサッカーボール)

それを利用し曲線の性質(曲率分布)によって図面を生成するシステムをつくります。
図面の生成は部材の生成を意味し、異なる弾性の合板をパターンによって生成します。
パターンに応じた応力分布を見たり、弾性をコントロールする手法は後回しですが、
ある程度パターンによって弾性を意図的に帰られるので、ある曲率分布によって
パラメトリック曲線(あるいは曲面)を分割し、分割された線上での曲率に応じて
合板に入れる切り込みのパターンを生成するシステムをつくります。

2011年10月20日木曜日

構造解析と形態生成そしてデジタルファブリケーション

デジタルファブリケーションはコンピュータによって物質を加工・生成します。
近年では、スクリプトでいろんな形がつくられ、物質化されますが、
この情報から物質化までが簡単になったぶん、作り手はそこの間に発生するエラーにも
多く遭遇することになります。構造的に弱すぎたり、組み立てできなかったり.....
一方、建築や機械設計などさまざまなエンジニアリングで取り入れられてる有限要素法
などの構造解析手法をさりげなく取り入れ、それを評価関数の用なものとして、
おもしろい形態を生成しているプロダクトもたくさん見られます。
しかし、なんかおかしい。その解析手法を用いた理由は?、その健全性は?
確かにこんなに厳密にやる必要がないかもしれない。(面白い形を生成する用途に限れば)
しかし、デジタルファブリケーションの面白いところは構造解析をして、
すぐにフィジカルな実験なり検証ができるところ、むしろ構造解析
や物質にかかわる部分を厳密に行うことこそが驚くべき結果を生む
気がしてならない。
これまでとは比べ物にならないスパンで、解析-検証を繰り返すことができる。
さらに、物質をどのように加工するかも精密にデジタルにコントロールすることができる。
つまり何が言いたいかというと、現在、 デジタルファブリケーションの分野では、
構造解析などは単に、形態生成のためのおかずの用に使われているだけものが多いが、
ここを厳密にしっかり取り組むことは非常に重要であるということ。 
なのでこれからテンソルをしっかりやります。

2011年4月19日火曜日

For modular structure , it is very important to analyze the deflection of each modules.

モジュラ構造物なるものを最近つくっています。近年、下の写真のようなモジュールを組み合わせて、形をつくり、デザインに応用する事例をよく目にします。下の写真のIQ-Lightは1972年に作られたものですが、,近年のdigital fabrication技術の発達、つまり3Dプリンターやレーザーカッター等のデジタル制御で物質を加工することのできる機械が高性能化し安価になることで、このようなモジュラー構造物は”単なる奇抜なデザイン”ではない様々な有用性を持つだろう。


さて、このようなIQlightなどのモジュラ構造物は接着剤などの特殊なコネクタを用いなくとも
構造物として安定している。その安定を保証するものは何か?それはモジュールの持つ”たわみ”
である。”たわみ”を利用することでテンセグリティーのように各々が相互に影響を与えあい、
構造物全体として安定したものとなる。
さて、今回私はこの”たわみ”が重要な役割を果たすであろうともくろみたわみを解析する
ソフトウェアをmathematicaで実装し、そして、4つのタイプのサッカーボールを紙で製作した。

この写真は、実際に制作した紙のボールである。サッカーボールは幾何学的には切頂二十面体
を膨らませてつくる構造である。私は切頂二十面体というジオメトリーは保持しつつ、”たわみ”
を各々変えてこの多面体を作ってみた。上の写真はすべて切頂二十面体であるが、各々が
異なる”たわみ”を持つ。”たわみ”の数理的な定義は今回は割愛するが、このたわみを
変えることでシッカリとボールとして機能するほど安定するものと、すぐに崩れてしまうものまで
様々な特性をもつボールをつくることができた。
現在は正多面体や準正多面体や菱形多面体などの対称性をもった多面体のみの”たわみ”
しか解析できないが、今後は有限要素法を用いて、いかなるポリゴンを指定してもモジュールで
そのポリゴンを製作でき、たわみの解析を可能にするようなシステムをつくりたい。
こんなのもつくったよ。



ラベル

フォロワー

ラベル

自己紹介

自分の写真
数学ともの造りに興味があります。 電子工作とかもします。 Key ward : digitalfabrication, cellular automata

ラベル