MermaidによるGrasshopper(GH)配線図の作成
Q: Mermaidを使用してGrasshopperの配線図を記述する目的と、基本的なルールは何ですか?
A: 本ドキュメントの目的は、GHのキャンバスを画像として貼るのではなく、**テキストベース(Mermaid)で再編集可能な「読める配線図」**を効率的に作成することです。
- 描画方向:
flowchart LR(左から右)を推奨します。GHの「左入力→右出力」の基本ルールに一致します。 - 抽象度: すべてのポートを網羅するのではなく、データの流れ、重要な型(Point, Curve等)、およびパラメータが伝わる程度の抽象度を優先します。
構成要素の表現仕様と命名規則
Q: コンポーネント、ポート、配線、およびグループはどのように記述すればよいですか?
A: 以下の表現ルールに従うことで、統一感のある図を作成できます。
- コンポーネント:
subgraphで囲み、ラベルにコンポーネント名を記述します。 - ポート:
subgraphの内部に配置する小さなノードとして表現します。- 入力ポート:
([T])(角丸) - 出力ポート:
((G))(丸)
- 入力ポート:
- ノードIDの命名: スペースを含まない英数字(例:
comp_Move,in_T)をIDとし、表示ラベルは["表示名"]で別途指定します。 - 配線: ポート間を
-->で結びます。必要に応じて-->|Number|のように矢印の上に型情報を記載します(エッジラベル内の"は環境によってパースエラーになるため避けます)。 - グループ: 関連する複数のコンポーネントをさらに大きな
subgraphで囲み、処理の意図(例: "Generate Base Points")をラベルにします。
コピペ用テンプレートと実例
Q: すぐに使える最小構成のテンプレートと、実用的な記述例を教えてください。
A: 以下のコードをコピーして、コンポーネント名やポートIDを書き換えて使用してください。
最小構成テンプレート
グループ化を含む実例
コンポーネント解説用テンプレ(GHキャンバス風)
Q: 「コンポーネントの説明」に使う場合、どの程度まで配線図を細かく書くべきですか?
A: スクリーンショットの代替ではなく、説明したい挙動差が出る入力/出力(と型)だけを描くのを基本にします。 迷ったら、1つのQ&Aに対して 1図(多くても3図)に絞ってください。
テンプレ1:単一コンポーネント(入力→出力)
テンプレ2:小さなパイプライン(3〜5コンポーネント)
テンプレ3:Inputs集約(左端に整理する)
執筆時のヒントと注意点
Q: Mermaidで配線図を作成する際に、よくある失敗や気をつけるべき点はありますか?
A: 以下の3点に注意することで、メンテナンス性の高い図を維持できます。
- IDにスペースを含めない: IDにスペースや特殊記号が含まれると、Mermaidのレンダリングが壊れる原因になります。
- 見た目を作り込みすぎない: 配線が複雑になりすぎる場合は、無理に1つの図にまとめず、処理フェーズごとに図を分けることを検討してください。
- 型情報を重視する: 図を見る人が「今何が流れているか(1つの点か、リストか)」を把握できるように、配線のラベルを活用してください。
見た目をGHに寄せるコツ
Q: MermaidでGHっぽい見た目に寄せるには?
A: 作り込みすぎず、最低限の「視認性」と「統一感」を狙います。
- 方向: 迷ったら
flowchart LR(左→右) - ラベル: コンポーネント名は短く、型はエッジラベルで補う(例:
-->|Point[]|) - スタイル: 色指定やスタイル指定には頼らず、形(角丸/丸)とラベルで判別できる状態を基本にします。