JP EN
(1)陰関数モデリングをやってみよう

(1)陰関数モデリングをやってみよう

(1)Let's try implicit function modeling.

弊社は、形状処理技術、機能計算技術、設計技術を活用して様々なプロダクト開発を行っています。 本記事では形状をモデリングする手段の一つである、陰関数モデリングについて説明をします。

Our company develops various products utilizing shape processing, function calculation, and design technologies. In this article, we explain Implicit Function Modeling, one of the means of modeling geometry.

新谷国隆

Kunitaka Shintani

2023,05,12 2023,05,12

はじめに

本記事では以下の2部構成で、陰関数モデリング(Implicit Modeling)の説明・実演をしていきます。

  1. 陰関数モデリングに関する説明、TPMS(Triply Periodic Minimal Surface、三重周期極小曲面)によるモデリング
  2. 形状を引数とした陰関数によるモデリング

モデリングには主にRhinoceros-GrasshopperのプラグインJellyfishを使用しています。

第1章では陰関数モデリングの説明と、TPMSによる様々なモデリングを行っていきます。

陰関数モデリングとは?

y = f(x)のように変数の一方について解かれた形式の関数は陽関数と呼ばれます。一方、F(x, y) = 0のように解けた形式で書かれていない関数は陰関数と呼ばれます。陰関数モデリングは陰関数による表現で形状をモデリングする手法です。

例えば円をモデリングするときは、以下のように陰関数を定義します。

F(x,y)=x^2+y^2-R^2

この陰関数をもとにした等式または不等式で領域を定義してモデリングを行います。

例えば上記陰関数においてR=5として、F(x,y)=0の領域に形状を生成するとxy平面に以下のような円が生成されます。(可視化の都合上、円に厚さを持たせています)

F(x,y)\leq 0とすれば内部が充填された円となります。

F(x,y,z)=x^2+y^2+z^2-R^2< 0とすれば球となります。

陰関数モデリングの利点として、ブーリアン演算(形状同士の足し算や引き算)も陰関数で表すことができ、演算が失敗しにくい点があります。

例えば、陰関数F_1<0,F_2<0により定義される2つの形状G_1,G_2があったときに、陰関数F=\min(F_1,F_2)<0で表される形状はG_1G_2を足したもの、陰関数F=\max(F_1,-F_2)<0で表される形状はG_1からG_2を引いたものものとなります。

陰関数を用いたモデリング

波状の板

以下のように三角関数の和で陰関数を定義すれば、波状の板となります。

F(x,y,z)=|\cos (k_xx+\phi_x)+\cos (k_yy+\phi_y) +k_zz|-t<0

パラメータk_x,k_y,k_z,\phi_x,\phi_yを連続的に変化させれば、形状が変化していく様子が見て取れます。

TPMS

z方向にも三角関数で変化する陰関数とすれば、TPMSの一種であるSchwarz Pに厚みを持たせた構造となります

\text{Schwarz P}:F(x,y,z)=|\cos x+\cos y+\cos z +s|-t<0

他にもよく陰関数モデリングの例としてGyroidやSchwarz Dがあげられますが、それぞれ厚みを持たせた陰関数表記と形状は以下のようになります。

\text{Gyroid}:F(x,y,z)=|\sin x\cos y+\sin y\cos z+\sin z\cos x +s|-t<0
\text{Schwarz D}:F(x,y,z)=|\sin x\sin y\sin z+\sin x\cos y\cos z+\cos x\sin y\cos z+\cos x\cos y\sin z +s|-t<0

アイキャッチの画像はGyroidに厚みを持たせ、Nature ArchitectsのロゴNに割り当てたものです。

同様にSchwarz P, Dも容易に割り当てることができます。

TPMSの陰関数を拡張したモデリング

TPMSの陰関数を拡張していくつかモデリングをしていきます。

変化のスケールを変える

Gyroidの陰関数に、x,y,z方向の変化のスケールを決めるパラメータk_x,k_y,k_zを導入し、k_x,k_y,k_zに異なる値を設定すれば各方向の周期を変えることができます。

F(x,y,z)=|\sin k_xx\cos k_yy+\sin k_yy\cos k_zz+\sin k_zz\cos k_xx +s|-t<0

厚みを連続的に変える

また、厚みのオフセットパラメータsを変えると、厚みをつける位置を変えることができます。

ここでパラメータsを空間座標によって変わる関数にすると、厚みをつける位置を連続的に変えることができます。

F(x,y,z)=|\sin k_xx\cos k_yy+\sin k_yy\cos k_zz+\sin k_zz\cos k_xx +s(x,y,z)|-t<0

同様に厚みを決めるパラメータtを関数とすれば、厚みを変化させることができます。

円筒座標・極座標でGyroidをつくる

座標系を円筒座標・三次元極座標に変えてGyroidの陰関数を定義すれば、円筒状・球状にGyroidを割り当てることもできます。

F(r,\theta,z)=|\sin k_r r\cos n_{\theta}\theta+\sin n_{\theta}\theta\cos k_zz+\sin k_zz\cos k_rr +s|-t<0
F(r,\theta,\phi)=|\sin k_r r\cos n_{\theta}\theta+\sin n_{\theta}\theta\cos n_{\phi}\phi+\sin n_{\phi}\phi\cos k_rr +s|-t<0

異なるTPMSを補間する

異なるTPMSの陰関数を足し合わせて新しい陰関数を作ることで、中間形状を作ることもできます。

\text{Gyroid}:F_G(x,y,z)=\sin k_xx\cos k_yy+\sin k_yy\cos k_zz+\sin k_zz\cos k_xx
\\
\text{Schwarz D}:F_D(x,y,z)=\sin k'_xx\sin k'_yy\sin k'_zz+\sin k'_xx\cos k'_yy\cos k'_zz+\cos k'_xx\sin k'_yy\cos k'_zz+\cos k'_xx\cos k'_zy\sin k'_zz
\\
F(x,y,z)=|aF_G(x,y,z)+(1-a)F_D(x,y,z)+s|-t<0

混合パラメータaを空間座標によって変わる関数にすれば、GyroidからSchwarz Dに連続的に変化させることができます。

最後に

本章では陰関数モデリングの説明と、TPMSによるモデリングの実演をしてきました。

次章では、形状を引数とした陰関数によるモデリングについて解説します。

Writer

チーフエンジニア

Chief Engineer

新谷国隆Kunitaka Shintani Kunitaka Shintani

名古屋大学大学院工学研究科マテリアル理工学専攻卒業(修士)。精密機器メーカー研究開発部門において解析業務に従事。2020年にNature Architectsに参画。数式が好き。

Graduated from the Graduate Schoool of Engineering, Nagoya University (Master of Engineering). Joined Nature Architects in 2020. He loves mathematical formulas.

Kunitaka Shintani

Nature Architects株式会社

Nature Architects, Inc.

代表取締役:大嶋 泰介

CEO:Taisuke Ohsima

所在地:〒103-0011 東京都中央区日本橋大伝馬町6-5 岩清日本橋ビル4F

ADDRESS:Iwasei Nihonbashi Building 4F, 6-5, Nihonbashi Odenmacho, Chuo-ku, Tokyo, 103-0011, Japan

設立:2017年5月

Funded:May, 2017

URL:https://nature-architects.com/

お問い合わせ:https://nature-architects.com/contact/

CONTACT:https://nature-architects.com/contact/

Related Topics

Up Next

(1)ラティス構造の均質化

(1)ラティス構造の均質化

(1) Homogenization of lattice structure

皆さんはラティス構造での解析をしたことがありますか?ラティス構造はメッシュを切るのが大変で計算コストも高くなりがちです。ラティス構造の解析コストを下げるのには均質化が有効です。本記事では数値実験による弾性行列への均質化や、均質化した弾性行列の可視化について紹介しています。

Have you ever done an analysis on a lattice structure? Lattice structures tend to be difficult to mesh and computationally expensive. Homogenization is an effective way to reduce the analysis cost of lattice structures. This article introduces homogenization to elastic matrices by numerical experiments and visualization of the homogenized elastic matrices.

新谷国隆

Kunitaka Shintani

2024,04,19 2024,04,19
最適化の設定について考えよう

最適化の設定について考えよう

Let's think about optimization settings.

皆さんは Grasshopper で最適化をしたことがありますか?特に Tunny をつかって最適化をしたことがありますか? その時にうまく最適化できないなと思ったことはないでしょうか。 Tunny が採用しているブラックボックス最適化と呼ばれる部類の最適化は感度を使用した最適化(例えば位相最適化)に対して収束が遅いため、適切な最適化設定でなかったり、対象の問題が適切でないと、ランダムより少し良い結果が得られる程度のものになってしまいます。 今回は Tunny を使って、最適化設定の違いによる結果の違いを見ていきましょう。

Have you ever performed optimization in Grasshopper? Specifically, have you used Tunny for optimization? During that time, did you ever feel that the optimization was not working well? The category of optimization called black-box optimization, which Tunny uses, has slower convergence compared to sensitivity-based optimization (such as topology optimization). If the settings are not properly configured or the problem is not suitable, the result may end up being just slightly better than random. In this article, let's look at the optimization results using Tunny with different settings.

夏目大彰

Hiroaki Natsume

2024,04,05 2024,04,05