![見出し画像](https://assets.st-note.com/production/uploads/images/119500776/rectangle_large_type_2_7dc8aae4f5c822bf35ab02491f82dd1b.png?width=1200)
ジェネレーティブデザインで機械設計をする
ジェネレーティブデザインを使って3Dプリンタの部品を設計したので、とりとめなく話をします。対象読者は設計者CAEができる程度の人間です。
そもそもジェネレーティブデザインというのは、初期条件を入力してやるとイー感じの形状を生成してくれるよ、というCAEの一種。最近(5-6年前くらい?)から流行り始めたヤツ。
ジェネレーティブデザインってなに
ジェネレーティブデザインは制約条件に応じた形状を生成してくれる。応力、あるいは流量などに対してトポロジー最適化された形状を生成するので非常に効率的な形状が待っているだけで得られる。
実績
NASAやF1チームで使用され実際に稼働する機械に実践投入された実績がある。どのソフトが使われたのか、ジェネレーティブデザインなのかトポロジー最適化なのかはっきりしないけれども。
【NASA】 https://www.freethink.com/space/generative-design
【F1】https://twitter.com/PhoenixSTK19/status/1628009123533975553
実践投入されていないが、おもしろい活用例としてトヨタのデザイン室での取り組みを紹介しておく。
https://redshift.autodesk.co.jp/articles/toyota-design-jp
ソルバ/ソフトウェア
商用提供されているものを使った。使ったのはFusion360に統合された解析サービスで、サブスクか解析1ケース約5000円(33USD)の都度払いのもの。開発版のころは無料だったんだけどね、今は他社含め無料のジェネレーティブデザインサービスは無いかな。閑話休題。
設計対象
設計するのは熱融解式(FFF/FDM式)3Dプリンタの部品で「プリントヘッド」と呼ばれる部分である。
プリントヘッドは①樹脂吐出部 ②樹脂供給部 ③冷却ファン ④リニアガイド ⑤駆動ベルトで構成されていて、それらを繋ぐブラケットを設計する。
部品は駆動ベルトで引っ張られX軸リニアガイド上を運動し、X軸上を移動しながら連続的に樹脂を吐出する。直行するY軸リニアガイド(画面外)によって、リニアガイドごとY方向(前後方向)にも運動する。これによってXY平面上に任意の形状で樹脂を吐出し部品を造形する。なお、床面が上下に動くことでZ軸方向を制御する。
![](https://assets.st-note.com/img/1687958650612-JWxBfZ8u2R.png)
このプリントヘッドが速く動き、どんどん樹脂を射出するほど造形が早く終わるのだが、高速化に比例して慣性力も増加するため機械の振動や剛性不足によって吐出位置の精度が悪化する。なので「より軽量でより高剛性であること」が必要とされる。
というのは建前で、改造して速くなると楽しいよね。ギュインギュイン動かすと楽しいよ。だいたいミニ四駆と同じ感じよね。
で、このプリントヘッドの設計で一番めんどくさいのが最適化。部品レイアウトが三次元的に入り組んでいて、ついでに機械的負荷もあちこちに発生しており非常に面倒くさい。
というわけで「ジェネレーティブデザインくん、あとよろしく」
ジェネレーティブデザインの解析条件
さてジェネレーティブデザインでは、解析条件として5つ設定が必要だ。
①保持領域:形状を維持する領域
部品レイアウトに従って、最低限必要な取り付けボスや軸受圧入部を設定する。この部分を起点にして、互いに接続するようにジェネレーティブデザインが形状を生成する。
機能上は必要がない部分にあえて保持領域を設定することで、設計者が意図した形状へと仕上がりを誘導する小技もある。(設定されている以上、必ず保持領域を通る形状が生成される。Google Mapの経路検索の経由地追加みたいな感じ。)
![](https://assets.st-note.com/img/1690126664858-HueceQggZm.png?width=1200)
②初期条件:固定、荷重、初期形状
だいたい静解析の要領で荷重・モーメント・加速度・重力・固定条件入力すればよい。材質は変数なので後で入れる。
![](https://assets.st-note.com/img/1690127022543-7kT4Mo4VXb.png?width=1200)
③禁止領域:生成させない領域
周辺の部品が干渉しないよう、クリアランスを考慮した大きめの禁止領域を設定する。例えば部品の稼働領域、ネジが通る部位、工具が通る部位、部品組付けに必要な領域、冷却風導入口などを禁止しておく。
![](https://assets.st-note.com/img/1690127182078-Zi1sRV0SW9.png?width=1200)
④材質、製造方法
製造方法は A)3Dプリンタ B) 鋳造 C) マシニング から選べる。指定した製造方法で「製造可能(作りやすいとは言っていない)」な感じの形状にしてくれる。鋳造なら抜き方向や抜き勾配、マシニングなら工具直径や突き出し長、主軸直径を入力して制約条件にできる。
製造方法を3つ設定すれば、それぞれの加工条件を満たした3通りの形状が生成される。
この機能は今後もアップデートがあるだろうと思うので、最新情報は公式ヘルプを参照すると良いと思う。
https://help.autodesk.com/view/fusion360/JPN/?guid=GD-SPECIFY-MFG-METHOD
![](https://assets.st-note.com/img/1690127593690-QutujBYxOw.png)
材質はライブラリのなかから選択できる。アルミを例に出すと鋳造ならAlSi10Mg、マシニングならA6061などがライブラリに用意されている。
材料は1つに決めなくて良い。材料を4つ選べば、4通りの設計解を生成してくれる。
1つの材料に対してすべての製造方法に適した形状を検討してくれる。
「材料 x 製造方法 =数十パターン の設計解が自動生成される」
多数の設計解の自動生成、これこそがジェネレーティブデザインの本領発揮といったところだ。
![](https://assets.st-note.com/img/1690127795733-6A5qbj8Fe5.png)
⑤設計目標:剛性を最大化or質量を最小化
正直、この設定を切り変えたところで出来上がりに大差があるかと言われると言うほど差は無いが「ジェネレーティブデザインっぽい」ナウい形状を作りたいのであれば「重量最適化」に設定したほうが良い感じになる。剛性最適化は変位が増えると形状削るのを止めるのかどうなのか、若干コンサバっぽい挙動をして面白くない傾向があった。正直あまり理解していないので詳しいことは知らん。
https://help.autodesk.com/view/fusion360/JPN/?guid=GD-SPECIFY-OBJECTIVES
![](https://assets.st-note.com/img/1690128346243-MZALzHEihO.png)
解析結果
解析条件を入力して「解析開始」のボタンをぽちっとすると解析が始まる。PC上ではなくクラウド上で計算されるので楽ちん・・・なのだがそもそもの計算量が膨大なので簡単なモデルでも数時間、複雑なものだと半日~1日超くらい必要。さておき途中経過はリアルタイムに見れるから楽しいのでヨシ!
![](https://assets.st-note.com/img/1690128549184-lOFb1V9ga9.png?width=1200)
最終的に素材・製法ごとに案が出力される。散布図も使って比較しながらイー感じの形状を選ぶ。
![](https://assets.st-note.com/img/1690128591089-ppo7sKYo82.png)
![](https://assets.st-note.com/img/1690128712040-m2HDTcnI90.png?width=1200)
生成された設計案をモデルとして出力する。メッシュは使いづらいのであまりお勧めしない。
![](https://assets.st-note.com/img/1690129004260-68IecGqe9H.png)
トポロジー最適化された形状が生成されているので、静解析をかけるとコンターがマジできれいでびっくりする。
![](https://assets.st-note.com/img/1690129512804-yfCtCXrl9V.png?width=1200)
製造
今回は中国の3Dプリントサービスに投げてアルミの粉体焼結式の3DPで造形してもらう。Craftcroudを通して1週間で到着。国内業者より早いね。
![](https://assets.st-note.com/img/1690130022936-f2yIyFqyfe.png?width=1200)
ついでに3Dスキャナで形状精度を計測しておく。
点群とSTLの差分を取ることで形状精度がなんとなく見えてきます。だいたいの部分で輪郭度0.1、悪いところで0.2-0.3程度かな?という雰囲気が見えます。 pic.twitter.com/xo9dfAbV5v
— capbolt (@hex_cap) April 14, 2023
そのままでは部品が取り付けられないので、削って面出してタップ立ててリーマで穴を仕上げて軸受圧入して部品組んで・・・(中略)・・・完成。
![](https://assets.st-note.com/img/1690294155864-nLGq28uwNk.png?width=1200)
所有欲が満たされてGOODですね。設計の妥当性検証?そんなもんしらんよ。
まぁ、軽量化と慣性モーメントの低減で振動が減ったよね、という話はこの記事で説明した。
https://note.com/hexcapbolt/n/n7c4c6d8cd2a8
動いている様子はこんな感じ。
まとめ
【利点】
やっぱり便利。高度に最適化された形状が自動で出力されるという体験そのものが非常に良い。革命的。
加えてこれらの利点がある。
①静解析レベルで妥当な形状である
②製造不可能というわけではない形状である
③ナウくてかっこいい形状が出てくる
【欠点】
ひとことで言うと準備に手間がかかる。
①制約条件を徹底的に洗い出して入力する必要がある
②出来上がりの形状を縛らずに制約条件を決める難しさ
③案外、解析時間が長い
④製作しづらい
以下、それぞれ説明する。
①制約条件を徹底的に洗い出して入力する必要がある
解析するにあたって初期条件の設定が難しい。これは言い換えれば「技術仕様を漏れなく洗い出して数値に落とし込む」という行為であり、ジェネレーティブデザインに関係なく本質的に難しい作業だ。
しかし、これが出来なければジェネレーティブデザインを使う意味はない。これが出来なければ生成結果を使って部品を製造したところで「想定外」が発生してうまくいかないだろう。(加工できない、組み立てできない、考慮していない外力で破損etc...)
そして「想定外」が発生したとき、手戻りを最小限にできない。再度「ジェネレーティブデザイン」という大きなブラックボックスに条件を投げ込むガラガラポンが発生する。
部分修正もできなくはないのだが、全体として最適化された形状を部分的に修正すると応力の流れが変わるため強度設計が破綻しがちだ。なので人力の修正は難しい。
そもそも最適化設計は制約条件が多ければ多いほど難しい。複雑な最適化設計を自動化できることがジェネレーティブデザインの一番の強みであるから、使いこなす難しさと得られる利益は比例する。別の言葉で言うならば、楽な設計をジェネレーティブデザインに投げ込んでも目に見えるメリットは得られない。
②形状が見えるようになる前に制約条件を決める難しさ
まずもって、ジェネレーティブデザインに生成される前の段階ではまだ部品形状がわからない。当たり前だが。
さて部品形状を見ずに部品の分割方法を決められるだろうか?組み立て順序は?ネジの位置は?個数は?工具は?……….それをどうやって入力条件に落とし込めるだろうか?簡単な作業ではない。ある程度の設計経験とセンスが必要になるだろう。設計初心者には難しい。トレーサーや外注でも難しい。
各条件のどれを優先しどれを殺すか手を動かしながら判断できる、なるべく裁量権が大きい、より上流の、より経験を積んだ、よりホンモノの、「設計者」が自分で操作するとき、ジェネレーティブデザインは本領を発揮する。
③案外、解析時間が長い
最低で数時間、最悪1日超かかる。適当に条件を変えてあてずっぽうに解析を繰り返す使い方には向かない。解析結果をキチンと分析して、正しく生かす”王道”の使い方が求められる。
④作りづらい
最終製品に適用できるかと言われると難しいだろう。製造数が少ないならできないこともないが。
結論
ここまで機械設計における「ジェネレーティブデザイン」の話をしたが、世の中にはそれとは異なった「ジェネレーティブデザイン」もある。GPTなど機械学習を使った「自動生成デザイン・自動生成アート」のことだ。
さて機械設計の「ジェネレーティブデザイン」と、自動生成アートの「ジェネレーティブデザイン」に共通点はどこだろうか、差異はどこだろうか。
共通点は自動生成であるということだ。GPTにおけるプロンプトに相当するものは、固定点であり、荷重条件であり、禁止領域であり、素材指定であり、加工方法指定である。
差異は結果に対する説明可能性だ。GPTに代表される生成AIは説明可能性が無い。「なぜこの結果になったのか?」という問いにGPTベースの生成AIは答えられない。実用ではなく研究ベースにおいても現状は無理だ。複雑すぎる。
一方、機械設計における「ジェネレーティブデザイン」は説明可能である。なぜならば機械学習には頼らず、既存のアルゴリズムベースであるからだ。
何を言いたいかというと、機械設計における「ジェネレーティブデザイン」は既存のアルゴリズム・既存の設計行為の延長線上であり、理論的には人間でも到達可能な領域にあるということだ。機械設計の「ジェネレーティブデザイン」で生成された形状と、その入力条件をよく見比べれば「なるほど、これが最適である」と理解が可能だ。(十分に経験を積んだ人間であれば、という前提条件はあるが)
私が言いたいことは、機械設計における「ジェネレーティブデザイン」から得られる設計結果というモノのは十分なスキルをもった設計者を専任として任じて、さらに裁量と時間と予算を与えれば達成可能である、ということだ。ただし、それは少なくない予算と時間を必要とする。
ここに問いが2つある。
①ジェネレーティブデザインを適用する設計対象に高度な最適化は必要か?
②ジェネレーティブデザインの結果をレビューする力量が設計者にあるか?
この問いをどちらもクリアする場合のみが、ジェネレーティブデザインを生かせるケースである。