知識がなくても始められる、AIと共にある豊かな毎日。
3Dプリンター

OpenSCAD × LLM 実践 2026 — コードCADを ChatGPT・Claude と書く

ゲンキ

OpenSCAD × LLM 実践 2026 — コードCADを ChatGPT・Claude と書く

OpenSCAD は、マウスではなくコードで立体を定義する CAD だ。公式サイトが掲げる肩書きは「The Programmers Solid 3D CAD Modeller」。スクリプトに書いた寸法と演算をソフトが解釈して形状を組み上げる、いわば 3D のコンパイラである。そしてこの「形がコードである」という性質は、2026 年のいま、あらためて大きな意味を持ち始めた。コードなら、LLM——ChatGPT や Claude——が書けるからだ。

専用の Text-to-CAD サービスを使わなくても、手元の対話 AI に「外径 60mm、M4 用の穴が 4 つのブラケットを OpenSCAD で」と頼めば、動くコードが返ってくる時代になっている。無料の OSS である OpenSCAD と、すでに契約している LLM の組み合わせは、機能部品の生成 AI 活用としてはおそらく最も追加費用の少ない入口だ。

本記事では、この「コードCAD × LLM」という第三の道を、OpenSCAD を軸に実践的に解説する。うまく回すためのプロンプトと検証の型、OpenSCAD の構造的な限界(メッシュ出力)と、その限界を越えたくなったときの選択肢 CadQuery まで、一通りの地図を提供したい。専用サービス側の動向はZoo Text-to-CAD 実践 2026(2026-07-14 公開)を参照してほしい。

コードで形を書くという第三の道

機能部品を AI で作る道は、いま三本ある。第一の道は GUI の CAD を従来通り人間が操作すること。第二の道は Zoo のような Text-to-CAD サービスにプロンプトから生成させること。そして第三の道が、汎用 LLM にコードCAD のスクリプトを書かせる方法だ。

第三の道の強みは、部品の「レシピ」が最初から人間の読めるテキストで手に入ることにある。LLM の出力はコードなのでそのまま差分管理でき、寸法は変数として明示され、修正は該当行の書き換えで済む。Text-to-CAD サービスが内部で行っていること——形を作る手順の生成——を、汎用ツールの組み合わせで素朴に再現している構図とも言える。

弱みも先に言っておく。LLM はコードの文法は正しく書けても、空間的な正しさ——部品同士が干渉しないか、穴が意図の位置に開いているか——を保証しない。生成されたコードは必ずレンダリングして目視し、寸法を測って確かめる。この検証の手間を含めても余りある速さが出るかどうかが、この道を選ぶ判断基準になる。

補足すると、コードで形を書く文化自体は生成 AI よりずっと古い。プログラマたちは長年、繰り返しの多い部品や寸法違いの量産をコードで解決してきた。変わったのは書き手だ。かつては「コードを書ける人だけの近道」だったものが、LLM が下書きを担うことで「日本語で要件を言える人の近道」に変わった。参入障壁の崩れ方としては、写真の現像がデジタルで誰のものにもなった変化に似ている。

そしてこの道は、既に何かの LLM を契約している人にとって、実質的な追加費用がゼロである。専用サービスの無料枠のような回数の心配もない。「まず生成 AI で機能部品を作る感覚を掴みたい」という段階の人に、最初の一歩としてこの組み合わせを勧める理由はここにある。

OpenSCAD とは — プログラマのためのソリッド 3D CAD

OpenSCAD は GPL v2 で公開されている自由ソフトウェアで、Linux・Windows・Mac に対応する。完全に無料だ。設計思想が徹底していて、対話型のモデリング機能を持たない。ユーザーはテキストでスクリプトを書き、OpenSCAD がそれを解釈して立体をレンダリングする——公式自身が「対話型モデラーではなく 3D コンパイラ」と説明する通りの構造である。

形状の記述は CSG(Constructive Solid Geometry)が基本になる。立方体や円柱といったプリミティブを、和・差・積の集合演算で組み合わせて形を作る。「円板から円柱 4 本を引き算して穴あきプレートにする」という思考がそのままコードになるため、機械部品との相性がよい。アーティスティックな曲面造形は不得手で、公式も機械部品やパラメトリックな設計向きだと明言している。

対話型モデラーを持たないという設計は、欠点に見えて実は一貫性の源泉だ。マウス操作の履歴という「あとから読めない記録」が存在せず、部品に関するすべての決定がコードの行として残る。誰がいつ、どの寸法をなぜ変えたのか——コメントと差分がすべてを語る。設計の再現性という観点では、GUI 全盛の CAD 界で最も潔癖な思想を持つソフトウェアのひとつと言っていい。

そしてこの潔癖さは、雑に扱っても壊れにくいという実利に変換される。プロジェクトのファイルはテキストひとつなので、バックアップはコピーで済み、壊れても差分から戻せる。特定のバージョンのソフトでしか開けない、という CAD にありがちな悩みからも比較的自由だ。趣味の制作が数年単位で中断と再開を繰り返す個人メイカーにとって、この頑丈さは効いてくる。

CSG の思考法に慣れると、部品を見る目が変わる。世の中の機械部品の大半は、「基本形状の足し算と引き算」に分解できる。プレートは直方体、ボスは円柱の足し算、穴は円柱の引き算、面取りは角の引き算。この分解ができれば、どんな部品も口頭で説明できる粒度に落ちる。そして口頭で説明できるものは、LLM への指示にもコードにもなる。CSG は形の文法であり、習得するのは語彙ではなく分解の習慣だ。

この割り切りが、LLM との組み合わせでは利点に転じる。言語仕様がコンパクトで、Web 上に蓄積された作例が膨大にあるため、LLM は OpenSCAD のコードをかなり安定して書ける。マイナーな新言語ではこうはいかない。枯れて、文書化され、作例が多い——LLM に書かせる対象として理想的な条件が揃っている。

LLM に OpenSCAD を書かせる実践 — プロンプトと検証の型

プロンプトの型は、Text-to-CAD と同じく「部品名 + 支配寸法 + 付属要素の数量」が基本だ。加えてコードCAD ならではのコツとして、寸法を変数にするよう明示的に指示するとよい。「寸法はすべて冒頭の変数で定義して」と一言添えるだけで、返ってくるコードの再利用性が大きく変わる。使う LLM はどれでも構わない。コード生成に対応した対話 AI であれば、この用途に必要な水準は満たしている。

もうひとつの実践的なコツは、部品の使われ方まで一文で伝えることだ。「棚板の下に取り付ける」「上から 2kg 程度の荷重がかかる」という文脈を添えると、LLM は肉厚や固定穴の配置に妥当な初期値を選びやすくなる。もちろん最終判断は人間の検証が担うが、初期案の質が一段上がるだけで往復の回数は確実に減る。

実際に LLM が返してくる水準のコードを見てみよう。外径 60mm・厚さ 6mm の円板に通し穴を 4 つ開けるブラケットなら、次のような構成になる。

// 円板ブラケット: 寸法は変数で管理
d_outer = 60;    // 外径 mm
t = 6;           // 厚さ mm
d_hole = 4.5;    // 通し穴径 mm(M4 用に余裕込み)
r_pitch = 22;    // 穴のピッチ円半径 mm

difference() {
    cylinder(h = t, d = d_outer, $fn = 128);
    for (a = [0 : 90 : 270])
        rotate([0, 0, a])
            translate([r_pitch, 0, -1])
                cylinder(h = t + 2, d = d_hole, $fn = 64);
}

コードの意味は読み下せるはずだ。円柱を作り(cylinder)、90 度刻みの 4 方向(for と rotate)にずらした(translate)小さい円柱を差し引く(difference)。冒頭の変数を書き換えれば、外径も穴径も一瞬で変わる。これがパラメトリックにコードで持つということの実体である。

検証の型は三段階で固定するとよい。第一にプレビューで全体形状を目視する。第二に、意図した寸法——ここでは外径とピッチ円——を測って確かめる。第三に、変数をひとつ変えて再レンダリングし、意図通りに追従するかを見る。三つ目まで通れば、そのコードは「一品物」ではなく「型」として資産になったと判断できる。

三段階目の「変数変更テスト」を特に強調しておきたい。LLM が書くコードには、一見変数化されているのに内部に生の数値が残っている——たとえば穴の位置計算に外径の半分がベタ書きされている——ことがままある。この場合、外径の変数だけ変えると穴が置き去りになり、形が崩れる。崩れたらそこが「隠れた依存関係」であり、LLM に「この数値も変数から導出して」と依頼して直す。テストが設計の質を引き上げる構図は、ソフトウェア開発とまったく同じだ。

うまくいかないときの典型パターンも知っておくと早い。最も多いのは、曖昧な位置指定——「端のほうに穴」「適当な間隔で」——による意図とのずれで、これは数値の明示で解決する。次に多いのは、複雑な部品の一括依頼で形が破綻するケースだ。対処は分割で、「まず本体の板だけ」「次にその板に取り付け耳を足して」と積み木のように一段ずつ依頼すると、各段階で目視検証が挟まるため、破綻がその場で見つかる。大きな一発生成より小さな往復——これはコーディング支援 AI 全般で確立した作法と同じである。

寸法の変数化には、もう一段深い意味もある。変数名を付ける行為は「この寸法は何によって決まるのか」の言語化であり、d_hole(穴径)と r_pitch(ピッチ円半径)を分けて命名した時点で、設計の従属関係が整理される。将来ボルトを M5 に変えるときに触るべき変数がどれか、コードが自ら教えてくれる。GUI の CAD で寸法拘束に名前を付ける習慣と同じことが、コードでは自然に強制される。

LLM との往復では、エラーメッセージをそのまま貼り戻すのが最短の修正ループだ。OpenSCAD のエラーは行番号付きで出るため、LLM は高い精度で自己修正する。人間はコードを読めなくても運用できてしまうが、上のコード程度の読解力を持っておくと、往復回数が目に見えて減る。

出力はメッシュ — OpenSCAD の限界と使いどころ

OpenSCAD には構造的な限界がひとつある。公式マニュアルの通り、3D の書き出し形式は STL・OFF・AMF・3MF などのメッシュ系で(AMF についてはソフトウェア本体が非推奨警告を出し 3MF を推奨する)、STEP の書き出しには対応していない。内部表現がメッシュ基盤だからで、レンダリングした時点でパラメトリックな情報は形状データから失われる。

印刷用途での実務的な注意は、曲面の解像度管理だ。コード例にも登場した $fn は円をいくつの平面で近似するかの指定で、値が小さいと円柱がカクついた多角柱として出力される。逆に無闇に大きくすると、プレビューの応答もファイルサイズも重くなる。見える曲面・嵌合する曲面は細かく、内部の見えない箇所は粗く——メッシュの解像度も設計判断の一部として扱うのが、コードCAD らしい割り切りである。

この限界の意味は、Text-to-CAD 入門 2026(2026-07-13 公開)で述べたメッシュと B-Rep の議論そのものだ。自分で印刷して完結する部品なら、STL が出れば何も困らない。パラメトリックな編集可能性は .scad ファイル(コード)の側に保存されており、形を変えたければコードを変えて再レンダリングすればよいからだ。

困るのは、成果物を外に渡す場面である。加工業者への発注、機械設計者との共同作業、他の CAD での組み込み——工学の共通言語である STEP を求められた瞬間に、OpenSCAD 単体では手詰まりになる。「コードは資産になるが、出力は最終製品(メッシュ)しかない」——この非対称を理解して使う分には、OpenSCAD は今も第一級の道具だ。

もっとも、個人メイカーの制作物のうち、STEP を要求される場面が実際にどれだけあるかは冷静に見積もったほうがよい。自宅のプリンターで刷る治具、収納パーツ、修理部品——この日常の大半は STL で完結する。限界を知ることと、限界に怯えて道具を選ばないことは別だ。まず無料の環境で「コードで設計を持つ」体験を積み、STEP が本当に必要になった日に次の道具を検討する。その順序で損をすることは、ほとんどない。

CadQuery という選択肢 — Python で B-Rep、STEP を出す

STEP の壁を越えたい人のための選択肢が CadQuery だ。GitHub で公開される Apache 2.0 の OSS で、機械設計 CAD と同じ系譜の OCCT(Open CASCADE Technology)カーネルを基盤とする Python のパラメトリック CAD フレームワークである。つまり、コードで書いて B-Rep が得られ、公式ドキュメントの通り STEP・DXF というロスレスな CAD 形式に加えて STL・3MF 等も書き出せる。

Python である点も実務では効く。LLM が最も得意とする言語であり、寸法計算・部品表の生成・ファイル操作といった周辺処理を同じスクリプトに同居させられる。GUI を持たない設計のため、サーバーサイドで部品ファミリーを自動生成するような使い方——Zoo Text-to-CAD 実践 2026(2026-07-14 公開)で述べた API 自動化と同じ発想——が素の Python 環境で組める。

学習の順序としては、OpenSCAD から入って必要になったら CadQuery へ、という段階を踏むのが遠回りに見えて速い。OpenSCAD は言語仕様が小さく、形の分解と変数化という本質だけを純粋に練習できる。CadQuery は B-Rep の概念——ワークプレーン、フィレット、エッジ選択——が加わるぶん表現力と引き換えに覚えることが増える。基礎の型を安い教材で身につけ、必要が生じた時点で乗り換える。道具の階段としてよくできた並びだ。

使い分けの目安はシンプルだ。印刷して自分で使う部品を、最少の学習コストで量産したいなら OpenSCAD。出力を STEP で外部に渡す必要がある、または Python 資産と統合したいなら CadQuery。どちらもコードが資産になる点は共通で、OpenSCAD で身につけた「寸法を変数で持つ」習慣はそのまま持ち越せる。

Zoo KCL・GUI CAD との住み分け

コードCAD を覚えると、Zoo の KCL や従来の GUI CAD との関係が気になってくるはずだ。整理しておこう。

道具コスト出力向く場面
OpenSCAD + LLM無料(LLM は手持ち)メッシュ(STL/3MF)自家用の機能部品、寸法違いの量産
CadQuery + LLM無料(同上)B-Rep(STEP)+ メッシュ外部に渡す部品、Python 統合
Zoo(KCL)無料枠 + 従量B-Rep(STEP + KCL)生成品質と統合環境を買いたい場合
GUI CAD無料〜サブスクツール依存対話的な検討、複雑なアセンブリ

この表を読むときの補助線は、「コードの置き場所」と「計算の置き場所」だ。OpenSCAD と CadQuery は、コードも計算も手元にある。ネットワークが切れても動き、生成の回数に費用の心配がなく、コードの中身も完全に自分の管理下にある。Zoo はコード(KCL)は手元に返ってくるが、計算はクラウド側で走る。この違いは、業務の機密性やオフライン環境の要否といった、機能表に載らない条件で効いてくる。

見ての通り、これは優劣の表ではなく費用と出力形式のトレードオフ表だ。Zoo は生成モデルの品質と専用環境に価値があり、コードCAD × 汎用 LLM は追加費用ゼロと自由度に価値がある。実際のところ、OpenSCAD で型を身につけた人が、必要に応じて Zoo や CadQuery に広がっていく——という順路が、2026 年の個人メイカーにとって最も無理がない。

もうひとつの視点は教育コストだ。コードCAD は「設計をテキストで表現する」訓練として最良の教材で、ここで身につく感覚は KCL にも、ジェネレーティブデザインの要件定義にも転用できる。ジェネレーティブデザイン入門 2026(2026-07-16 公開)で述べた「AI 設計ツールはどれも要件の言語化を要求する」という原則の、最も安価な練習場がここにある。

まとめ — 手持ちの LLM が、無料の CAD を武器に変える

OpenSCAD × LLM は、派手さはないが費用対効果の突出した組み合わせだ。本記事の要点を振り返る。

  • OpenSCAD は GPL v2 の無料 OSS。スクリプトから立体を組み上げる「3D コンパイラ」で、CSG による機械部品の記述に強い。枯れた言語仕様と豊富な作例により、LLM が安定してコードを書ける
  • プロンプトの型は「部品名 + 支配寸法 + 数量」+「寸法は変数で」。検証は目視 → 検寸 → 変数変更テストの三段階。エラーは LLM に貼り戻して自己修正させる
  • 3D 出力はメッシュ系(STL・3MF 等)で STEP 非対応。自家用には十分、外部に渡すなら限界。編集可能性はコード(.scad)側に宿る
  • STEP が必要なら OCCT 基盤・Apache 2.0 の CadQuery へ。Python なので LLM との相性も周辺処理との統合もよい
  • 費用と出力形式のトレードオフで、Zoo(KCL)や GUI CAD と住み分ける。コードCAD は AI 設計時代の「要件言語化」の最良の練習場でもある

最後に、この組み合わせの本当の価値を言語化しておく。専用サービスと違い、OpenSCAD × LLM には「サービス終了」がない。GPL の処理系と、手元に残るテキストのコードだけで成立しているため、十年後も同じ .scad ファイルから同じ部品が再生できる公算が高い。修理部品や治具のような「忘れた頃にまた要る」ものを扱うメイカーにとって、この持続性は速度と同じくらい重要な性能である。

まずは OpenSCAD をインストールし、手持ちの LLM に部品をひとつ発注してみてほしい。返ってきたコードの変数を書き換え、形が追従した瞬間——「設計をテキストで持つ」という感覚は、そこから始まる。

参照

ABOUT ME
swiftwand
swiftwand
AIを使って、毎日の生活をもっと快適にするアイデアや将来像を発信しています。 初心者にもわかりやすく、すぐに取り入れられる実践的な情報をお届けします。 Sharing ideas and visions for a better daily life with AI. Practical tips that anyone can start using right away.
記事URLをコピーしました