【AI×CAD 第4回】3Dデータを渡さずにAIに設計をレビューさせる。幾何解析を先に済ませ、LLMには構造化した解析結果だけを渡す
機密の3DデータをクラウドAIに上げなくても、設計のAIレビューはできます。CADASのAI所見は、幾何解析エンジンが歯数・連動・穴・フィレットを先に解析し、LLMにはその構造化データ(1KBほど)だけを渡します。実際の所見・送信したJSON・悪用対策まで、実物で解説します。
こんにちは!
設計レビューの前に、部品の構成や穴の種類を説明し、確認すべき点を整理する。毎回この準備から始めていませんか。3Dの中から数字を拾う作業と、その数字が何を意味するかを説明する作業を分けると、AIを使う場所がはっきりします。
CADASでは、形状から幾何解析で取り出した数値と構造をAIへ渡します。部品が5つ、歯数が15と30、連動の推定比が−0.5。こうした根拠を先に揃え、AIには部品構成の説明や、設計者に確かめたい点の言語化を任せます。通常のAI所見で外部へ送るのは解析の要約で、元のSTEPファイルはブラウザに残ります。
この記事は「AI × CAD・設計情報」シリーズの第4回です。当社が無料公開している3D CADビューワー兼AI解析ツール「CADAS」のAI所見を、どういう設計思想で作ったかを実装した側から書きます。AIの出力・送信したデータ・所要時間はすべて実物と実測値です。

減速ギアユニットで所見を生成してみる
サンプルギャラリーの減速ギアユニット(5部品)を開き、左のツールパレットからAI所見ツールを選ぶと、フローティングウィンドウが出ます。

初回の検証では、「所見を生成」を押して27秒後に結果が返りました。以下はそのときの出力からの抜粋です。生成時間と文面は実行ごとに変わります。

2枚の歯車で回転を半分の速さに落とす、減速ギアユニット(歯車で回転数を下げる装置)のアセンブリです。部品は5つ:土台の base-plate、入力側の pinion-shaft(軸)、出力側の gear-shaft、そして歯車 pinion-z15(15枚歯)と gear-z30(30枚歯)。(中略)小歯車 pinion-z15 と大歯車 gear-z30 が gear(かみ合い) で連結、比は −0.5。マイナス=回転の向きが逆(小歯車が右回りなら大歯車は左回り)。0.5=回転数は半分。15歯 ÷ 30歯 = 1/2 の減速です。(中略)φ9.94 と φ10.14 の 0.2 mm 差は、はめあいの違いを意図した可能性がありますが、公差情報は含まれていません。(中略)base-plate を含め全部品が rotatable: true と記録されていますが、土台が実際に回るかはデータからは断定できません。
このサンプルでは、歯数から求める減速比と回転方向が、生成したモデルの設定と一致しました。いっぽう、土台が実際に回るか、公差をどう指定したかは、この解析要約から確定できません。所見の「可能性があります」「断定できません」は、次に設計者へ確認する点を見つける手がかりになります。
AIに送ったのは、この JSON だけ
このとき、ブラウザからサーバーへ送られたリクエストの中身を、そのまま示します。
{"analysis":{
"fileName":"gear-unit.stp(サンプル: 減速ギアユニット)",
"solids":5, "triangles":5908,
"bbox":{"x":110,"y":64,"z":44},
"header":{"system":"Open CASCADE 7.9","schema":"AP214"},
"parts":[
{"name":"base-plate","teeth":null,"rotatable":true},
{"name":"pinion-shaft","teeth":null,"rotatable":true},
{"name":"gear-shaft","teeth":null,"rotatable":true},
{"name":"pinion-z15","teeth":15,"rotatable":true},
{"name":"gear-z30","teeth":30,"rotatable":true}],
"couplings":[
{"a":"pinion-z15","b":"gear-z30","kind":"gear","ratio":-0.5},
{"a":"pinion-shaft","b":"pinion-z15","kind":"coax","ratio":1},
{"a":"gear-shaft","b":"gear-z30","kind":"coax","ratio":1}],
"holes":[
{"type":"counterbore","dia":5.46,"depth":8,"count":4,"through":true,"cbDia":8.94,"cbDepth":3},
{"type":"through","dia":9.94,"depth":12,"count":2,"through":true},
{"type":"through","dia":10.14,"depth":16,"count":2,"through":true}],
"fillets":[
{"r":1.18,"kind":"cylinder","convex":false,"count":30},
{"r":1.28,"kind":"cylinder","convex":false,"count":15},
{"r":7.97,"kind":"cylinder","convex":true,"count":4}]
}}STEPの本文はどこにもありません。三角形も頂点もありません。あるのは、部品名と歯数、連動関係と比、穴とフィレットの集計だけです。1.03MBのSTEPが、1KBほどの構造化データになってからAIに届きます。
この中身は、すべてCADASの幾何解析エンジンが先に作ったものです。歯数・連動・穴・フィレットといった基礎的な幾何解析は、LLMに任せていません。
幾何解析を先に済ませる。LLMには言語化と含意の指摘だけを任せる
ここがこの設計の核心です。
歯数の15と30は、各部品の回転軸まわりで外形半径 r(θ) を512分割で測り、その周期をDFTで解析して出しています。かみ合いの判定は、2部品の軸が平行で、中心距離がピッチ円半径の和(歯先円と歯数からモジュールを推定して算出)に一致し、歯の帯の高さが重なること。同軸の嵌合は、穴の半径と相手の外筒半径のすきまが0.08mm以内であること。比 −0.5 は −15/30 で、幾何から決まります。
穴とフィレットは第2回で書いた分類器の出力そのものです。
つまり、AIが受け取る時点で「何がいくつあり、何と何が連動し、比がいくらか」は、決定論的な幾何解析の結果として出そろっています(メッシュ推定を使った値は近似値で、そのまま渡します)。AIの仕事は、その事実を人に分かる言葉で説明し、事実から読み取れる設計上の含意(0.2mmの径差は意図的か、皿穴がなくザグリに統一されている、など)を指摘することです。
逆にいえば、AIに歯を数えさせたり、かみ合いを推定させたりはさせていません。LLMは数値の推論を間違えますし、間違えたときに自信ありげに書きます。設計の現場でそれをやられると、二度と使ってもらえません。決定論的な幾何解析で構造化結果を先に作り、確率的なLLMには言語化と含意の指摘だけを任せる。役割をここで切ることが、現場に信頼される条件だと考えています。
「データに無い数値は作らない」をプロンプトで縛る
所見の随所にあった「データからは断定できません」は、サーバー側のシステムプロンプトで求めているものです。要点を抜き出すと、こうなります。
与えられた構造化データだけを根拠にする。データに無い数値や事実は作らない。最初に1〜2文で結論を述べ、専門用語には短い言い換えを添える。歯車の連動があれば比の意味(増速か減速か)と回転の向きを日常語で説明する。確証が持てないことは「データからは断定できません」と明示し、断定と推測を混ぜない。
実際の所見で、ザグリ穴の用途を「土台の取付け用と考えるのが自然ですが、断定はできません」と書き、歯元のR1.18について「各歯の根元の丸みと見るのが自然です(確証はデータ上ありません)」と書いているのは、今回の実出力でも、この方針に沿った表現になっています。推測に推測のラベルが付いていれば、読む側は安心して読めます。
業務で使うために、AIへ渡す情報と使用量を揃える
公開版CADASのAI所見は、当社サーバー経由でClaudeを利用しています。モデルから得た解析結果に入力を絞り、送信量と利用回数に上限を設けています。社内へ展開する際にも、どの情報をAIへ渡すか、どの範囲で使うかを定めるための土台になる構成です。
| 対策 | 内容 |
|---|---|
| CSRFトークン必須 | 同一オリジンのブラウザ往復で発行される短寿命のHMACトークンが無ければ403。別オリジンからのCSRFを防ぐ |
| 自由入力を通さない | 受け取るのは上の構造化データだけ。既知のキー以外は捨て、文字列は80字・配列は件数上限で切り詰め、プロンプトはサーバー側で組み立てる。自由入力欄から任意の文章をそのままLLMへ渡す経路が無い |
| 使用量ガード | 日次のリクエスト数とトークン数、IP別の時間あたり回数に上限。超えたら停止して運用側にSlack通知 |
| 出力上限の固定 | max_tokensはサーバー側で固定。APIキーはクライアントへ渡さずサーバー側で保持し、リポジトリにも含めない |
構造化データも、部品名や寸法などの設計情報を含みます。通常の所見を使う前に、この要約を外部サービスへ送れるかを確認します。送信が認められない業務では、後述の社内LLMへの接続を含めて構成を検討します。
STEPを送る「高度な所見」でも、本文はLLMに渡さない
通常の所見とは別に「高度な所見を生成」があります。こちらはSTEPファイルの中身を当社サーバーへ送るので、押すと確認のダイアログが出ます。

サーバーがやるのは、STEPのヘッダ節と、エンティティ種別の集計(円筒面が何枚、円錐面が何枚、自由曲面が何枚)を取り出すことだけです。LLMに渡るのはこの要約で、STEP本文は要約を作ったあとにメモリ上で破棄されます。「AIに設計を見せる」と言っても、形状データが外部のLLMに流れる経路は、通常の所見にも高度な所見にもありません。
AIの所見をどう使うか
所見はMarkdownで描画され、「クリップボードにコピー」でそのまま持ち出せます。当社が想定している使い方は3つです。
ひとつは、3Dを開けない人向けの説明です。調達や品証の担当が減速ギアユニットのSTEPを受け取ったとき、「1段減速、比2、逆回転、取付はザグリ4箇所」と日本語で書いてあれば、CADを開かずに会話が始められます。
もうひとつは、設計レビューの前段です。たとえば径の違う穴が見つかったら、穴テーブルの該当行から3D上の位置を確認し、どの部品の穴かを揃えてから「この径の違いは何のためか」と設計者に尋ねます。AI所見を、モデル上で確かめられる具体的な問いにして持ち込めます。
そして3つめが、次回の主題です。この「事実から問いを立てる」仕組みは、ベテランの頭の中にしかない「なぜ」を引き出す道具になります。
読むだけで終わらせず、確認した形状へ戻れるようにする
レビューの準備として試すなら、所見から確認したい点を一つ選んでください。たとえば穴径についての記述なら、穴テーブルの対象と照らし合わせます。担当者に確かめたいことを、その位置へ付箋として手で残せば、所見の文章と3D上の対象が結び付きます。答えを聞いた後は、判断の理由を付箋に追記できます。
最新のCADASでは、比較画面で変更箇所を見たり、定義した回転機構を動かして干渉を確認したりする手段も揃いました。AI所見は解析要約を読む役割、比較と干渉検査はそれぞれの画面で形状を確かめる役割として使えます。比較と干渉検査は、それぞれの専用画面で人が根拠を確認します。
このように、AIの文章を入口にして人が根拠へ戻れると、レビュー会議に持ち込む確認事項を整理しやすくなります。実際の社内運用では、誰が確認し、どの記録を残すかまで決めることで、毎回の準備に使える道具になります。
まとめ
CADASでは、幾何解析で歯数・連動の推定・穴・フィレットを先に整理し、AIへその要約を渡します。所見から気になる点を選び、3Dや穴テーブルで場所と値を確かめる。設計レビューの準備を、この一連の流れとして進められます。
掲載した初回検証では、通常のAI所見は27秒で返りました。送ったのは解析要約で、STEP本体は手元に残りました。この実例は、形状の解析と文章による説明を分ける設計を示しています。
次回の第5回は、確認して分かった「なぜ、この形にしたのか」を形状と一緒に残す話です。設計知の伝承にローカルLLMをどう位置づけるかも扱います。その後は、設計変更の比較と、組立の動作・干渉確認へ進みます。
まずは所見を1回生成してみてください
CADASは無料・登録不要です。「ファイル > サンプルギャラリー」から減速ギアユニットか時計ムーブメントを開き、左のパレットでAI所見ツールを選んで「所見を生成」を押してください。手元のSTEPで試す場合も、通常の所見では形状データは送信されません。
社内のLLM基盤(オンプレミスやローカルLLM)と幾何解析を接続する構成、設計レビューにAIを組み込む運用の設計は AI × CAD・設計情報コンサルティング(無料相談) で受け付けています。
それでは、また次回、お会いしましょう!
関連リンク
【AI×CAD 第1回】設計の3Dデータ、設計部門の外で誰も見られない問題を無料+ブラウザだけで解決する(当ブログ)
【AI×CAD 第2回】見積もりのたびに穴を数えていませんか。STEPのB-Repから穴・ザグリ・皿ザグリを自動で拾う(当ブログ)
【AI×CAD 第3回】「この形、抜けません」を設計中に知る。金型DFM(抜き勾配・アンダーカット・肉厚)をブラウザで自動チェック(当ブログ)