Intro to Computational Design
2026 | Computational design | Rhino / Grasshopper / Python / Cpp
An introduction to computational design using Rhino, Grasshopper, and Python. Covers three core modeling approaches in Rhino, external communication with Python 3, and Model Context Protocol (MCP).
1. 概要
1.1 ゴール
- モデリングアプローチの比較
- Python 3 と外部通信
- MCP
1.2 用語
フォーカスするポイントの異なる様々な言葉があります。⚠️使う人や文脈によって意味が変わります。
| 用語 | 定義 |
|---|---|
| CAD (Computer Aided Design) | コンピューターを用いた設計・デザイン手法全般。 |
| Computational Design | 計算能力や数理的アプローチをデザインプロセスに統合する手法の総称。 |
| Algorithmic Design | 論理的・数理的手順(プロセス)を組み立てることに着目。 |
| Procedural Design | 大体同じ。 |
| Parametric Design | (アルゴリズムを組んだ上で)パラメーター操作で形状を制御することに着目。 |
| Generative Design | 制約条件とゴール(荷重、重量、製造要件等)を設定し、アルゴリズムやAIに最適解を自律探索・生成させる手法。 |
Parametric Architecture
- 一般的には… 単なる「Grasshopper等を用いた複雑・有機的な建築造形」
- 「日照、風向、構造負荷等の多角的環境パラメーターを統合した最適化プロセス」と主張する人もいる
- ザハ・ハディド・アーキテクツのパトリック・シューマッハ氏が21世紀の建築様式「Parametricism」として提唱(参考:A simple guide to parametricism)
Generative Design
- 従来手法との違い: パラメトリック(人間が定義したルール内の変形)に対し、ジェネレーティブ(条件を満たす未知の形状の自律創出)。
- アプローチ: 設計者が制約(荷重・固定点・製法)を入力し、AI・アルゴリズムが数百の最適解を生成。
- 製造分野では、Autodesk Fusionによる構造の最適化や軽量化が代表例。
1.3 モデリングアプローチ
- 手動操作: 直感的な単発操作。反復作業やバリエーション検討には非効率。
- Visual Programming: ノード接続によるデータフロー構築。ルール再利用とリアルタイム形状検証が得意。
- Script: Python/C#等のテキストコード記述。複雑なループ処理やデータ処理、AI連携に最適。
1.4 Rhinoceros
- ライセンス価格(買い切り)
- 商用版(フルライセンス): ¥187,000
- 教育版(学生・教員向け): ¥39,600(機能制限なし)
- アップグレード商用版: ¥110,000
- 90日間無料評価版
- 公式サイト:rhino3d.com
- 90日間の無料トライアル(Grasshopperを含め商用版と同じフル機能)
- 試用期間(90日)終了後もビューアー(モデルの閲覧・各種検証)として利用可能(保存不可)
2. Grasshopper
2.1 コンセプト
- コンポーネント: 関数/処理ノード。左側(Input)からデータを受け取り、右側(Output)から出力する。
- ワイヤー: コンポーネント間のデータ伝達パス。
- パラメーター: 入力変数(数値スライダー、ジオメトリ参照など)。
2.2 主要操作
- 起動・ファイル: コマンド
Grasshopper/ 拡張子.gh - コンポーネントの呼び出し: メニュータブ選択、またはキャンバスダブルクリックによるキーワード検索(例:
Sphereで球体生成、10.0でスライダー生成、//でパネル生成等)。 - ノード操作:
- 通常ドラッグで接続
Shift+ ドラッグで複数接続(上書き防止)Ctrl+ ドラッグで接続解除
- コンポーネントの制御(右クリック):
Enabled / Disabled: 処理の有効化/無効化Preview: ビューポートでの描画ON/OFFBake: ジオメトリのRhinoオブジェクト化
- Bake(ベイク):
- Gh上で操作中のジオメトリは「一時的なプレビュー表示」。
Bakeを実行することで、通常のCAD要素として空間に「焼き付け」される。- 注意点: Bake後の要素はGh側のパラメーター変更と連動しなくなる。
- 端子(入力・出力)の動的制御(ズーム操作):
- 端子の増減(
Merge,Entwine,Python等):- コンポーネントに一定以上近づく(ズームインする)と、端子付近に「
+/ 」アイコンが表示される。 - 「
+」をクリックで接続ポイントを追加、「」で削除が可能。
- コンポーネントに一定以上近づく(ズームインする)と、端子付近に「
- 端子の設定・カスタマイズ(端子を右クリック):
- データ構造の直接変更(Flatten, Graft, Simplify 等のデータプリセット適用)。
- 端子名(変数名)の変更や、入力データ型の指定(Type Hinting)。
- 端子の増減(
2.3 データ構造(データツリー)
他プログラミング言語の「多次元配列」「ネストされたリスト」に相当するGh独自の概念です。使っているとなんとなくわかってきます。
参考: Lesson 3 - Data structures
- List (リスト): 単一の配列
[A, B, C, D] - Data Tree (データツリー): パス(階層アドレス)を持つネスト構造
Path{0}: [A, B],Path{1}: [C, D] - マッチング原則: 原則として「同じパス(階層)・同じインデックス」の要素同士がペアで処理される。
- 主要なデータ構造操作ノード:
Flatten: すべての階層を解体し、単一のリスト(1次元配列)に平坦化する。Graft: 各要素に固有の新しい枝(1階層深いパス)を割り当て、個別処理を可能にする。Simplify: データ処理に関与しない無駄な親階層パスを削除・整理する。List Item: 配列内の指定インデックス要素を取得する。Merge: 複数のデータストリームをルールに沿って統合する。

2.4 Grasshopperの学習
基本的な操作を学習したら、作りたいものを作りながら学習していくのが効果的。
Grasshopperリソース:
チュートリアル:
- Delft University of Technology | Computational Design for (Industrial) Designers using Rhino Grasshopper
- Gediminas Kirdeikis | Grasshopper for Beginners - Full Course
- Junichiro Horikawa | Grasshopper Tutorials
参考書籍:
AIを使った学習:
- Grasshopperはドキュメントが豊富でコミュニティも活発なため、多くの場合AIに質問することで適切な回答を得ることができます。
- Grasshopper定義を通常の
.ghではなく.ghx形式(XMLベースのプレーンテキスト)で保存すると、AIが解析できるようになります。
Find Component: コンポーネントを
Ctrl + Altを押しながらクリックすると、そのコンポーネントが上部タブのどこにあるかを赤い矢印で視覚的に教えてくれる。
拡張プラグイン集: Food4Rhino
Grasshopperには、様々な機能を拡張するプラグインがあり、Food4Rhino で多くのツールを探すことができます。用途に応じて既存のプラグインを導入すれば、解析、生成、インタラクション、製造支援など、幅広いワークフローに対応できます。
3. Rhino Script
3.1 実行手順・ライブラリ
-
環境の起動と実行手順
Rhino、Grasshopperどちらからもスクリプトを利用することができます。Rhino上ではバッチ処理・自動化、Grasshopper上ではノード機能の補完・パラメトリックなデータ処理としてスクリプトを利用します。
- Rhino上で実行する(ワンショット自動化)
メニュー → ツール → スクリプト → 編集でスクリプトエディタ(Rhino 8では Script)を起動。- コード記述・実行により、Rhino空間のオブジェクトを直接生成・編集。
.pyファイルとして保存し、単体コマンドやツールボタンに割り当てて再利用可能。
- Grasshopper上で実行する(動的・パラメトリック処理)
- キャンバス上に
Python 3 Scriptコンポーネントを配置。 - コンポーネントの入力端子(x, y等)からデータを受け取り、処理結果を出力端子(a等)へ渡す。
- キャンバス上のパラメーター変更に応じてスクリプトがリアルタイムに再計算される。
- 入力・出力端子の名前と型(
int, Line, Brepなど)は、スクリプト内の変数に合わせる必要があります。
- キャンバス上に
- Rhino上で実行する(ワンショット自動化)
-
主要ライブラリ
Rhino機能の操作、および外部データ処理を行うための主要ライブラリ。
カテゴリ ライブラリ 概要・用途 リンク Rhino操作 rhinoscriptsyntaxRhinoコマンドに相当する操作を直感的に記述できる高レベル・ラッパー関数群。 RhinoScriptSyntax Rhino.Geometry(RhinoCommon)ジオメトリを直接扱う下層コアAPI。高度な幾何計算や高速処理向け。 RhinoCommon API ghpythonlib.componentsGrasshopperの既存ノード機能をPythonコード内から直接呼び出して実行。 Node in Code from Python. その他 (Rhino 8 / Python 3) 標準ライブラリ math(数値計算)、random(乱数生成)、json/os(ファイル処理)など。外部CPythonライブラリ NumPy, SciPy, Pandas, PyTorch等。 # env: numpy等の記述で読み込み可能。
3.2 Rhinoスクリプトのアーキテクチャ
-
ライブラリの階層
レイヤー コンポーネント 役割・技術スタック 最上層 (ユーザー記述) スクリプト Python 3 / C#: ユーザーやAIが記述するコード領域。 高レベル処理 rhinoscriptsyntax Pythonラッパー: RhinoCommonを初心者向けに簡易化した関数群。 共通API層 RhinoCommon .NET Core API: Rhinoの全機能にアクセスする公式クロスプラットフォームAPI。 最下層 (コアエンジン) Rhino Kernel C++ ネイティブエンジン: 幾何演算・描画を高速処理するRhino本体。 -
動作言語
言語 特徴・用途 Rhinoでの位置付け Python 3 (CPython) AI/LLMとの親和性が極めて高く、外部ライブラリ統合が容易。 現在の推奨標準環境 (Rhino 8〜) Python 2 (IronPython) 旧Rhino 7までの標準(.NET上で動作するPython実装)。 互換性維持目的の旧環境 C# 高度なプラグイン・カスタムコンポーネント開発用。 開発者向けネイティブ環境 VBScript 旧世代のRhinoScript。 非推奨 バイブコーディング:
- ハルシネーション(存在しない関数の捏造など)を防止するため、試行環境(例:
Rhino 8 / Python 3)とライブラリ(rhinoscriptsyntax)を指定 - エラー発生時はエラーメッセージを返しデバッグ
- ハルシネーション(存在しない関数の捏造など)を防止するため、試行環境(例:
3.3 スクリプトデモ例:フラクタルツリー(再帰処理)
-
概要 再帰関数と乱数を用いた幾何生成デモです。Grasshopper(動的パラメーター制御)と Rhino単体(直書きワンショット実行)の両方で検証できます。
- Grasshopper上での実行手順
- キャンバスに
Python 3 Scriptコンポーネントを配置。 - 端子設定(右クリックし、名前と型を変更)
- コンポーネント内にコードを貼り付け、Inputにスライダーを繋いでライブ操作。
名前 型 目的 Input genInteger 世代数制限 angleFloat 分岐角 scaleFloat 縮小比 Output LinesLine アウトプット - キャンバスに
- Rhino上での実行手順
メニュー → ツール → スクリプト → 編集でエディタを開き、コードを貼り付けて直接実行。
-
Pythonコード(Rh/Gh共通)
import rhinoscriptsyntax as rs import random # 入力変数の初期化 (Rhino単体実行用) gen = globals().get('gen', 6) angle = globals().get('angle', 25.0) scale = globals().get('scale', 0.8) seed = globals().get('seed', 42) random.seed(seed) Lines = [] # 幹の生成 A, V = [0, 0, 0], [0, 0, 1] B = rs.PointAdd(A, V) Lines.append(rs.AddLine(A, B)) # 再帰分岐関数 def Grow(pt, v, s, a, g): if g >= gen: return v = rs.VectorScale(v, s) plane = rs.PlaneFromNormal(pt, v) circle = rs.AddCircle(plane, 0.1) t = rs.CurveClosestPoint(circle, A) rot_axis = rs.VectorCreate(pt, rs.EvaluateCurve(circle, t)) for sign in [-1, 1]: V_next = rs.VectorRotate(v, sign * a + random.uniform(-3, 3), rot_axis) pt_next = rs.PointAdd(pt, V_next) Lines.append(rs.AddLine(pt, pt_next)) Grow(pt_next, V_next, s, a, g + 1) Grow(B, V, scale, angle, 0)
3.4 スクリプトのコマンドボタン化
作成した .py スクリプトをRhinoのコマンドにできます。
- 保存: コードを
.py形式でローカル(任意フォルダ)に保存し、ファイルの絶対パスをコピー。 - ボタン作成: ツールバーの空白領域で右クリック →
新規ボタンを選択。 - マクロ設定: コマンド欄に
! _-RunPythonScript "ファイルの絶対パス"と入力して保存。- (注:
_-はダイアログをスキップして即時実行させるための記述)
- (注:
4. モデリングアプローチ比較
| 項目 | 手動操作 | Grasshopper | スクリプト |
|---|---|---|---|
| 操作 | CLI・マウスによるGUI操作 | ノード接続(ビジュアルプログラミング) | テキストコード(Python/C#) |
| 強み | 直感的、事前のロジック設計不要 | 構造視認性が高い、リアルタイム検証 | バッジ処理、ループ/条件分岐 |
| 弱み・リスク | 大量処理・仕様変更時の工数大 | 複雑化によるスパゲッティコード化 | 構文・APIの習得コスト |
| AI(LLM)親和性 | 極めて低い | 低い(グラフ構造生成の難しさ) | 極めて高い(コード生成領域) |
効率化の思考フレーム: The 5-Step Algorithm (Elon Musk)
Ghやスクリプトで自動化する前に… 「自動化する必要がないことを自動化していないか?」
- 要件を疑え: 前提仕様そのものの不必要性を検証する。
- プロセスを削除せよ: 不要な工程を破棄する。
- 単純化・最適化せよ: 残った工程をシンプルにする。
- サイクルタイムを加速させよ: 処理速度を向上させる。
- 自動化せよ: 上記を経た上で最終手段として自動化を導入する。
5. 応用例
5.1 Rhino外部通信: IMU・超音波センサーを使ったメッシュ変形システム
-
概要
マイコンとGrasshopperを接続し、センサーデータで3Dジオメトリーをリアルタイムに変形させるインタラクティブな造形システムです。
- IMUの傾きに合わせたメッシュのフロー変形
- 超音波センサーによる距離連動パラメータ:
- 距離が近い場合: 細かい波
- 距離が遠い場合: ゆったりした波
ファイル: GitHub Repository
システム
[ 物理世界 / センサー ] │ MPU-6050 (IMU) : 運動 / 姿勢変化 │ HC-SR04 (超音波) : 手の距離 (分圧:Echo → [1kΩ] → D3 ← [2kΩ] GND) ▼ [ 信号処理・マイコン (XIAO RP2040) ] │ - センサ読み取り & 重力補正フィルター │ - CSVテキスト成形 ("lin_ax,lin_ay,lin_az,gx,gy,gz,dist\n") ▼ ════════════════════════════════════════════ USB Serial 通信 ( Baudrate: 115200 ) ════════════════════════════════════════════ ▼ [ 視覚化・CAD (Rhino 8 / Grasshopper) ] └─ [ GH Python Component ] - pyserial でリアルタイムデータ受信 - 距離データ ──> メッシュ表面の2軸波紋生成 - 運動データ ──> 全体のひねり・伸縮(Transform)変形 -
ハードウェア
- 使用部材
- マイコン: XIAO RP2040
- IMU: MPU-6050 (6軸: 加速度3軸 + ジャイロ3軸)
- 超音波距離センサー: HC-SR04
- 分圧抵抗: 1 kΩ, 2 kΩ (各1本)
-
ピンアサイン
HC-SR04のEcho信号(5Vロジック)をXIAOの耐圧(3.3V)に合わせるため、1kΩ / 2kΩの抵抗による分圧回路を使用(
Echo → [1kΩ] → D3 ← [2kΩ] GND)。モジュール ピン名 XIAO 接続ピン 補足 HC-SR04 VCC 5V 5V電源供給必須 Trig D2 GPIO(トリガーパルス出力) Echo D3 分圧回路を経由 GND GND MPU-6050 VCC 3V3 SDA D4 I2C SCL D5 I2C GND GND
- 使用部材
-
ファームウェア
センサーデータの取得と初期処理を担います。
- 環境: PlatformIO (C++)
- 処理内容:
- MPU-6050から加速度・角速度を取得。
- HC-SR04から距離データ(cm)を計測。
- 重力影響カットのため、加速度データへハイパスフィルター(HPF)を適用。
- シリアル出力: 115200 bps(CSV形式:
lin_ax,lin_ay, lin_az, gx, gy, gz, dist\n)
-
Grasshopper概要
XIAO RP2040に接続したセンサーデータを、ファームウェア経由でシリアル通信、Rhino GrasshopperのPython(
pyserial)でリアルタイム受信、3Dジオメトリーを編集。処理工程 スクリプト / コンポーネント 処理概要・詳細 データ受信 imu_sonic_serial.pypyserialでUSBシリアル経由でデータを受信・パース。Triggerコンポーネント(100ms周期)によりGHキャンバスを自動更新。パラメータ(ポート/dev/cu.usbmodem14101, ボーレート115200)は書き換え可能。ベース形状 & Flow変形 - 回転体(Revolve)生成後、 QuadRemeshでメッシュ化。IMUのgravity_vec(重力ベクトル)を用い、傾き方向へFlow変形。波紋テクスチャ生成 mesh_wavy_deform.py直交する2軸のSine波を法線方向へ付与。 distance連動: 近い=振幅が大きい + 波長が短い(、遠い=振幅が小さい + 波長が長い。最終出力 - SubD from Meshで滑らかなSubDサーフェスとして出力。Ghポイント
- 外部ライブラリの自動ロード(インラインディレクティブ)
- Rhino 8のPython 3環境では、スクリプト冒頭に
# r: <package_name>(例:# r: pyserial)を記述することで必要な外部ライブラリが自動的にロードされます(pip installなどは不要)。
- Rhino 8のPython 3環境では、スクリプト冒頭に
- Grasshopper側における再計算トリガー
Triggerの役割- Grasshopperでは通常「パラメータの変化時のみ」再計算されます。
Triggerコンポーネントを接続することで一定周期(例: 100ms)で定期的にコンポーネントを再計算させ、ジオメトリを更新し続けます。

- 外部ライブラリの自動ロード(インラインディレクティブ)
5.2 G-code生成 & 送信 (Slicer & Sender)
-
概要
スライサーソフトを使わず、Grasshopperで直接G-codeを生成するワークフローにより、非平面パスや吐き出し量の調整など、様々なカスタマイズが可能になります。
ファイル: GitHub Repository
-
スライサー
Gh定義(非平面パスの例):
Geometry → Curve → Point → XYZ Coordinateへ変換- Geometry上に波状のCurveを作成
- Curveを分解しPointを作成、XYZ座標に変換
- 移動距離に対応した押し出し量(
E)の計算(吐出し面積 / フィラメント断面積 * 移動距離) - G-code としてフォーマット、スタートプロトコル・エンドプロトコルを連結(
Concatenate)

G-code 例:
G1 F1200 X110 Y90 Z0.2 E0.2G0/G1FX Y ZE; Comment移動を初期化(非押出移動にはG0、押出移動にはG1) フィードレート(移動速度)(mm/min) 座標(mm) 移動単位ごとの押出量(mm) セミコロン以降のテキストは無視(コメントや説明用) BambuLab SDカード補足:
- マイクロSDカード
- 取り外し:
設定 → SDカード → 取り外し .gcodeをマイクロSDカードのルートディレクトリに入れる- 印刷: ファイル → 2つ表示されるうち、右側を選択 → 開始(左側は隠しファイル
._~~~.gcode)
- 取り外し:
- Bambu Studio
.3mfファイル- 拡張子は
.3mf(あるいは.gcode.3mf)だが中身は、G-codeやサムネイル画像、設定ファイルを圧縮した「Zipアーカイブ」 - 拡張子を
.zipに変えると解凍できる
- 拡張子は
サンプルG-codeの仕様:
- 対象機種:Bambu Lab A1 mini
- ノズル径:0.8 mm
- フィラメント:1.75 mm PETG

Start / End Protocol
印刷開始前の準備動作、印刷完了後の安全停止動作のコマンド。プリンターにより異なるので、スライサーソフトで生成されるG-codeを流用・解析する必要があります。
コマンド例 分類 指示 G1移動制御 指定した速度(F値)で直線移動(E軸指定時は樹脂押し出しを伴う) G28原点復帰 設定された全軸(X, Y, Z)のホームポジションへの移動・原点確定 G90座標指定 絶対座標指定モードへの切り替え(原点を基準とする移動) G91座標指定 相対座標指定モードへの切り替え(現在地を基準とする移動) G92座標設定 現在位置の座標値(E軸など)を指定した値へ再設定・リセット M106ファン制御 パーツ冷却ファンの出力設定・作動 M140 / M104加熱制御 ベッド / ノズルの目標温度を設定(非ブロッキング/到達を待たずに次行へ) M190 / M109加熱制御 ベッド / ノズルの目標温度設定と到達待機(ブロッキング/指定温度まで停止) M420ベッド補正 自動ベッドレベル補正データの読み込み・有効化 M84モーター制御 ステッピングモーターの給電(励磁)をオフにする -
G-codeセンダー(WIP)
さらに、ローカルネットワーク(Wi-Fi)接続したBambuLabプリンターを、GhからMQTTサーバーを介してG-codeを送付できないか検討中…
参考:
- Advanced 3D Printing with Grasshopper®: Clay and FDM
- TU Delft | Generating 3D printing files (G-code) with Grasshopper
- RepRap | G-code
- 自作GcodeをBambulabの3Dプリンターで出力する方法
6. MCP(Model Context Protocol)
6.1 概要・主要ツールの最新動向
- 概要:
- 従来: 「AIがアイデア/コードを出力 → 人間がCAD上で手動実行・検証」。
- 現在 (MCP環境): 「AIエージェントがMCP経由でCADのAPIを直接叩き、生成・検証・修正まで自律実行」。
- MCPの役割: LLMと外部ツール(CAD等)を標準化されたプロトコルで接続するローカルミドルウェア。
-
主要ツール動向:
ソフト MCPツール 主な特徴・機能 リンク Rhino Rhino MCP (McNeel公式) GitHubで公式プラットフォーム開発が進行中。画像の3Dモデル化、Gh定義の作成、レイヤー操作。 Rhino MCP Platform Rhino 3rd party サードパーティ開発者によるMCPサーバープラグイン。プラグインコミュニティFood4RhinoやGitHubなどで公開。 例:rhinomcp (by ccc159) Grasshopper Raven Grasshopperのグラフ構造(ノード配置・配線)自体をAIに自動生成・最適化させるプラグイン。 Raven Autodesk Fusion Fusion MCP Anthropicとの共同開発。自然言語指示(パラメーター変更、フィーチャー操作等)でAPIを実行しモデリングを完了。アドイン開発のペアプログラミング用途でも活用。 Fusion MCP Blender Blender MCP Python APIとの親和性の高さを活かし、オブジェクト配置、マテリアル・ライティング設定まで会話型で自動化するアドオンがコミュニティ主導で急増。 MCP Server
6.2 MCP のシステム構成・通信フロー(Rhinoの例)
- AIクライアント: ツール仕様(JSON Schema)に基づき、プロンプトを解釈して実行命令を発行。
- MCPサーバー: AIのJSON要求とCAD側の通信プロトコルを相互翻訳・中継。
-
Rhinoプラグイン: 受信した命令をRhinoのメインスレッド上で動的実行し、結果(成功/エラー/状態)を返答。
レイヤー 主要コンポーネント 役割と通信プロトコル クライアント層 AIクライアント (Claude / Copilot / Codex 等) ユーザーの自然言語指示を受け取り、ツール呼び出し(Tool Call)を生成するUI/エディタ環境。 中継・変換層 MCPサーバー (Python / FastMCP 等のローカルミドルウェア) 標準規格(stdio / JSON-RPC)を解釈し、AIからの要求をCAD専用の命令形式に変換・中継する橋渡し役。 エンドポイント層 Rhinoプラグイン (C# RhinoCommon / Python 常駐リスナー) ローカル通信(TCP Loopback / Socket / 127.0.0.1:10501)でメッセージを受信し、Rhino側で常駐待機する受信用ソケット。 実行層 Rhino / Grasshopper Kernel 受信した命令に基づき、Rhino/Grasshopper内部でスクリプトの動的実行やジオメトリの直接生成・操作を実行。
6.3 Fusion MCP デモ
設定方法
- Fusion 360側の設定:
Preferences → General → APIFusion MCP Serverにチェック

- Claude Desktop側の設定:
- チャット欄の「+」メニューから「Connectors」を開き、「Fusion」を検索し追加
- 権限設定と認証:
Configureを開いてすべてのTool permissionsをAlways allowにする
- 参考
デモ結果
Claude Fusion MCPを使用した、回転寿司アセンブリモデルの作成デモ。
-
初めのプロンプト: MCP経由で1操作(スケッチ描画・押し出し等)ごとにAPI呼び出しと画面レンダリング(確認)を繰り返したため、シャリ1個の作成でトークン・API使用上限に到達。
以下のモデリングをしたいので、まず計画を立ててください。 他に必要な情報があれば教えてください。 スケーラブルなローポリ回転寿司屋 - ネタパート、シャリパート - 寿司アセンブリ - 皿アセンブリ(2つ以上の寿司アッセン) - ベルトコンベアパート、アセンブリ - 寿司職人 - 寿司屋アセンブリ(ベルトコンベア、寿司、職人) 要件 - これらの寿司ネタ、寿司の数はパラメトリックでスケーラブル - Fusionのパート・アセンブリを使い、パート、子アセンブリを更新できること - それぞれのモデルはローポリで最低限のジオメトリー - パートの色は現物に近づけること -
改善版(一括処理指示): 「一括実行により画面描画の確認を減らす」「スクリプトによる処理」プロンプトへ変更。寿司・皿・コンベア・職人のアセンブリ構築に成功。ただし配置数がパラメトリックに編集できなくなる弊害もあった。
パラメーター作成からモデリングまで一括で実行してください。スクリプト内で全処理(パラメータ作成、コンポーネント作成、アセンブリ配置)を一度に完了させる構成にしてください。 モデルの形状はシンプルなボックス形状メインで良いです。色の割り当ても省略して良いです。(履歴のリプレイ)
ローポリ寿司職人の生成(4x)
デモまとめ
現時点では多くの場合「自分がやった方が早い」が、大まかなベース、叩き台のモデリングには有効そう。
Fusionのモデリング履歴が残り後で調整できるため、アセンブリ構造の作成や、Web検索を活用した汎用部品の寸法に基づいたモデル作成(例:Nema17を配置して 1×08SMDピンヘッダーを作って)などに活用できそう。
| 内容・要点 | |
|---|---|
| 課題点 | GUI描画や視点切り替え処理によるAPIトークンの大量消費 API経由でのカメラズーム・全体の視覚確認動作の不安定さ |
| 有用な点 | 正確な階層・アセンブリ構造構築 コンベア接線配置や空間クリアランスの自動座標計算 パラメータ変更に全パーツが自動追従する拡張性 |
| プロンプト改善点 | 描画抑制(「途中の描画・視点変更は不要」と指示しトークン節約) フェーズ分離(ツール実行前に構造計画・コード確認を挟む) |
