
【夏休みの自由研究リレー】3DプリンターとAIがあればCAD全くできない民でも自在に造形できるのか
こんにちは、クラスメソッドオペレーションズの watabo です。
当記事はクラスメソッドの有志による『夏休みの自由研究リレー』 第14回のエントリです。
このブログリレーの企画は、普段からクラウドやAIを追いかけているメンバーによって、「やってみた」だけではなく「作ってみた」や「調査/研究してみた」もアウトプットしてみようという企画です。
さてつい先日、3Dプリンター(Bambu Lab A1 mini)を手に入れました。
安価で素晴らしい品質の3Dプリンターです。
専用ソフトウェアである Bambu Studio / Maker World 経由で他のユーザーが作ったモデルが公開されているので、CADができなくてもそれらをダウンロード・印刷して楽しむことができます。
ただ、使っているとやはり自分の思い通りに部品や小さな日用品を作ってみたい・・・という欲望は湧いてきます。
私はCADソフトを触った経験はないですし、モデリングを一から学ぶのは正直しんどそうです。
なので、今回は「寸法だけ自分で測り、モデリングとレンダリング確認はClaude Codeに任せる」というやり方を試してみました。
具体的には、Claude Codeに OpenSCAD(コードでモデリングする3D CADツール)のコードを書かせ、レンダリング画像(png)をClaude自身で確認させ、問題があれば自分で直す、というループを自律的に回してもらいます。
人間がやるのはノギスで寸法を測ることと、印刷してフィット感を報告することだけです。
このエントリでは、環境構築から公差の較正、実際にデスクに取り付けるバッグフックを完成させるまでの一部始終を紹介します。
環境
| 項目 | 内容 |
|---|---|
| プリンター | Bambu Lab A1 mini(造形サイズ180×180×180mm、オープンフレーム) |
| フィラメント | PETG |
| スライサー | Bambu Studio |
| OpenSCAD | Nightly版 2026.06.12 |
| 開発環境 | Claude Code (Pro プラン) |
フィラメントはたまたま手持ちがPETGしかなかったのでそれにしましたが、普通にPLAでもいいと思います。
AI×3D造形の現在地
いくらAIが発達したとはいえ、本当にできるのか?というところと、できるならすでにいくつもブログが上がっているはずなので下調べしました。
2026年8月現在では、3DプリントとAIを組み合わせる方法は、大きく2ルートに分かれているようです。
| ルート | 得意なこと | 苦手なこと |
|---|---|---|
| メッシュ生成系(Meshy、Tripoなど) | フィギュアや装飾品など、見た目重視の造形 | 寸法精度、後からの微調整 |
| コード生成系(OpenSCAD × LLM) | 実測値に基づく寸法精度、変数化による再調整 | 複雑な有機的形状 |
メッシュ生成はすでにブログもかなり上がっているようです。
Bambu Lab社自身も Maker Lab としてサービス提供しています。
ただ、今回はある程度実用的な物品が作りたかったので、コード生成系のOpenSCADを選びました。
OpenSCADはすべての形状をコード(変数と数式)で記述するツールなので、寸法をあとから変数1つで調整できるのが利点です。
仕組みと環境構築
作業の流れ(として想定してたもの)は次の通りです。
- 人間がノギスで寸法を測り、仕様をClaude Codeに伝える
- Claude Codeが
.scadファイルを書く openscadCLIでプレビュー画像をレンダリングする- Claude Codeがレンダリング画像を自分で読み込み、形状を目視確認する
- 問題があれば人間に聞かずに自分で修正し、3に戻る
- 収束したらSTLを出力する
- 人間が印刷し、フィット結果を報告する
Claude Codeは画像を読み込める(マルチモーダル)ので、自分が書いたコードがどんな形状になったかを自分の目で確認し、意図と違えば自分で直せます。
人間はCADを一切開かない想定です。
OpenSCAD Nightly版の導入
OpenSCADには枯れた安定版(2021.01)と、開発中の最新コードを日次ビルドするNightly版があります。
安定版があまりにも古すぎること、Manifold バックエンドでレンダリングが高速になることを理由に今回はNightly版を使いました。
openscad --version
# OpenSCAD version 2026.06.12
検証① 公差テストピースでプリンターの癖を掴む
3Dプリンターは、設計上の寸法通りに出力されるとは限りません。
特に穴は、溶けた樹脂がわずかにたるむため、設計値より小さく仕上がる傾向があります。
この「縮み量」を把握しないまま部品を設計すると、穴にネジやケーブルが入らない、という事態になります。
そこでまず、穴径4.6〜5.2mmを0.1mm刻みで並べた較正用テストピースをClaude Codeに作らせました。
各穴の下には径の数値を刻印しています。

このモデルは1回のレンダリング確認で意図通りの形状になり、そのまま印刷に回しました。

印刷したテストピースに、実測4.8mmの丸棒(たまたま家にあった竹製ゴルフティー)を挿し込んでフィット感を確認してみました。
印刷結果を実測すると、次のことが分かりました。
- 実測4.8mmの丸棒は、公称4.9mm穴には入らない
- 公称5.0mm穴には、ギリギリ圧入できる
つまりこのプリンター(Bambu Lab A1 mini、PETG)では、穴径が公称値より約0.2mm小さく仕上がる傾向があります。
この結果から、はめあい部の調整用変数 clearance(穴径 = 対象径 + clearance × 2 で計算する設計)の初期値を0.2mmとしました。
検証② バッグフックの設計
較正が終わったところで、本命の部品に取り掛かります。
何を作ろうか考えてましたが、最近木製棚の備え付けフックが1つ破損していたことを思い出したので、その代用品を作ることにしました。
側面にネジ留めして、バッグなどを掛けるためのフックです。
現物はこういうものです。

ねじ止めされているのを外すとこんな感じ。

初回設計
さて、この形状をClaudeに伝えなければならないのですが、パーツ形状がどうなっているか全然伝えられない。
自分の語彙力が無さすぎるため、これを「フックです」以外になんと言えばいいのか?!
どの部分をなんて呼称すれば良いのかもわかりません。
前述の通り既存の部品があるので、とりあえず複数枚写真を撮影して送ります。
ネジ穴だけはちゃんと伝えないといけないのでそこはノギスで計測します。
Sonnet 5さん、これでなんとかなりませんかね・・・?

そうして Claude が openscad を操り、レンダリングして出てきたものがこちら。

元のフックとは似ても似つかないものができてしまいました。
何回か修正指示出してみたが、どうしようもない感じなのでセッションごとボツ。
印刷する前からプレビューがわかることにありがたみを感じます。
再設計
そもそもそこまで複雑な形状じゃないですし、既存フックの完全なコピーを作りたいわけではないので、画像を1枚だけ渡してそのあとで要件詰めるようにしてみました。
応答でかなりの逆質問が返ってきたので、確かにどこに固定するかで相当形状変わるよな・・・などと反省しました。
【部品名】
【実測値】(ノギスで測った確定値。今回の6.9mmは何を測ったものですか?)
【希望値】(全体サイズや形状の希望)
【固定方法】(何にどうやって引っ掛ける/固定するか)
【材料】(PETG想定でよいですか?)
【印刷方向】
【備考】(タン色パーツの位置づけなど)
特に知りたいのは:
1. フックは何を掛けるためのもの?(例: バッグ、ケーブル、タオルなど)
2. どこに固定する?(例: 棚板の縁、デスクの天板、壁など)→ 固定先の厚み・形状の実測値が必要
3. 写真のタン色パーツは「これと似た形にしたい」参考現物ですか?それとも引っ掛け先の一部ですか?
色々やりとりをして最初に出してきたものがこちら。

腕の部分がマッチョすぎて一度バッグを掛けたら取り出しにくそうです。
ただ、だいぶ想定していた形に近づきました。
他にも以下のような気づきがあり、フィードバックをして作り直してもらいました。
- 背面プレートを接地させて印刷すると宙に浮いてしまい、サポート(支え)が必要となり綺麗に印刷できない
- →90度回転して印刷する
- 印刷の向きを変えると横倒しにした時に自立しない
- →ボスと腕が同一平面を共有するようにする
最終的には以下のような形に落ち着きました。これならそのまま取り付けできそうです。

印刷してみた
A1 mini で作成したSTLを印刷しました。
所要時間は30分程度でした。
(このタイムラプス、何度見ても無から有が生成されているように見えて恐ろしく感じます)

さて、印刷自体は問題なく完了したので早速取り付けようとしたものの、ネジ穴にネジが入らない!!!

考えられる原因は、印刷姿勢の変更でネジ穴の向きが縦→横に変わっていたことです。
公差テストピースでの較正(clearance = 0.2)は、穴を縦(積層方向と垂直)に印刷した場合の値でした。
今回のネジ穴は印刷姿勢を横倒しにした結果、穴の軸が横(積層方向と水平)になっていました。
横向きの穴は、一般に積層構造の都合で穴の上側がわずかに垂れ下がりやすく、縦向きの穴と同じクリアランスでは足りないことがあります。
ちなみにこの後再印刷してもまだはまらなかったので、クリアランスは気持ち大きめにとっておくと良いかもしれません。
最終的にドリルで穴を広げて取り付けできました。ひとまず強度は問題なさそうです。
色くらいは合わせても良かったかもしれませんね。

結果と考察
分かったこと
- 穴は公称値より縮む(今回の環境では縦穴で約0.2mm)。
clearance変数として設計に組み込んでおくと、印刷結果から逆算して調整できる
- 縦向きの穴と横向きの穴では、同じ
clearance値でも仕上がりが変わる可能性がある。- 印刷姿勢を決めるタイミングで、各穴の向きも合わせて確認したほうがよさそう
- Claude Codeは、自分がレンダリングした画像を見て「意図と違う」ことに自力で気づいて修正できるが、最初の要件定義でうまく寸法や用途などを伝えられていないとどんどん間違った方向に行く
- (コーディングと似ていますね)
人間がやったこと
- ノギスでの実測(参考現物のネジ穴仕様、バッグの持ち手寸法、印刷結果の丸棒径)
- 印刷の実行
- 印刷結果を見た上でのフィードバック(「マッチョすぎる」「強度が心配」「宙に浮いて印刷できない」「穴が偏って見える」「穴に入らない」)
CADの操作、寸法計算、コードの記述はすべてClaude Code側で完結しています。
さいごに
CADの知識がなくても、実測値を渡してレンダリング画像を確認するループを回すだけで、寸法が合う実用部品までなんとか到達できることが分かりました。
途中、Claudeへの指示をはじめ、印刷姿勢の問題など複数のつまづきポイントがありましたが、いずれもClaude Codeがレンダリング画像を見て気づき、あるいはフィードバックを受けて自分で直しています。
一方で、縦穴と横穴で必要なクリアランスが違うという点は、実際に印刷して失敗してみないと分からない類の知見でした。
そりゃそうかと思いつつも、印刷してみないとわからないものですね。
なんと言っても普通に自然言語+画像でCADデータを作らせるのに困難を感じました。前提知識ないと流石に自在にとはいかないですね。
やっぱCAD勉強するか・・・。
本エントリがどなたかの助けになれば幸いです。
参考
おまけ
今回のプロジェクトで使った CLAUDE.md はこちらです。
CLAUDE.md
# AI×3Dプリンター: OpenSCAD 自律造形プロジェクト
## プロジェクトの目的
CADを使わず、Claude Code が OpenSCAD コードの生成→レンダリング確認→修正のループを自律的に回し、
Bambu Lab A1 mini で印刷可能な実用部品の STL を完成させる。
人間の役割は「寸法仕様を渡す」「印刷してフィット結果を報告する」のみ。
## 環境・前提条件
- プリンタ: Bambu Lab A1 mini(造形サイズ 180×180×180mm、オープンフレーム)
- フィラメント: PLA を基本。屋外・耐熱用途は PETG
- 追記: PETG しか用意できなかったのでその前提で
- スライサー: Bambu Studio(STL をそのまま読み込む)
- OpenSCAD: Nightly 版、CLI にパスが通っていること
- 動作確認: `openscad --version`
## ワークフロー(このループを自律で回すこと)
1. 寸法仕様(下記フォーマット)を受け取る
2. `.scad` ファイルを書く
3. プレビューをレンダリングする
`openscad -o preview.png --imgsize=1024,1024 <part>.scad`
4. **生成した preview.png を自分で Read し、形状を目視確認する**
- 確認観点: 意図した形状か / 穴・溝の位置 / 壁厚が薄すぎないか(最低 1.6mm 目安) / ベッド接地面が平らか
- 必要に応じてカメラ角度を変えて複数枚レンダリングする(`--camera` オプション)
5. 問題があれば 2 に戻る(人間に聞かずに自分で修正する)
6. 収束したら STL を出力する
`openscad -o <part>.stl <part>.scad`
7. 人間が印刷しフィット結果を報告するので、必要なら変数を調整して再出力する
## 寸法仕様フォーマット(人間からの入力)
【部品名】ケーブルクリップ
【実測値】ケーブル直径 4.8mm / 天板厚 24.6mm
【希望値】全幅 20mm 程度(多少変わって可)
【固定方法】天板にクランプ
【材料】PLA
【印刷方向】底面をベッドに接地
【備考】...
- 「実測値」= ノギスで測った確定値。勝手に丸めない
- 「希望値」= 目安。設計都合で変更してよいが、変更したら報告すること
- 手描きスケッチ画像が渡された場合は、読み取った寸法を一度リストアップして確認を取ってから実装する
## コーディング規約(OpenSCAD)
- 単位は mm(スライサーは 1単位=1mm で解釈する)
- **すべての寸法を変数化**し、ファイル冒頭にまとめる。マジックナンバー禁止
- はめあい部は必ず `clearance` 変数を持たせる。初期値 0.2
clearance = 0.2; // フィット調整用。渋ければ +0.1
cable_d = 4.8; // 実測値
hole_d = cable_d + clearance * 2;
- `$fn` は開発中 32、STL 出力時 64 以上
- 1 部品 = 1 ファイル。ファイル名は英小文字スネークケース(例: `cable_clip.scad`)
- コメントは日本語でよい。実測値には由来を書く(例: `// USB-Cケーブル実測`)
## 印刷を考慮した設計ルール
- ベッド接地面を明確にし、その面が平らになるよう設計する
- オーバーハング 45° 超はサポートが必要になるため、面取り(chamfer)で回避できないか先に検討する
- 水平方向の穴は真円だと上部が垂れるため、精度が必要ならティアドロップ形状を検討する
- 壁厚は最低 1.6mm(ノズル0.4mm×4周)。力がかかる部品は 2.4mm 以上
- 造形サイズ 180mm を超えないこと
## 最初のタスク
1. **公差テストピース**: 穴径 4.6〜5.2mm を 0.1mm 刻みで並べた板(各穴に径の刻印付き)を作成する
→ 印刷結果からこのプリンタの縮み傾向を把握し、`clearance` 初期値を較正する
2. 較正後、本命の部品に着手する
## 成果物の管理
- `parts/<part>.scad` … ソース
- `stl/<part>.stl` … 出力
- `preview/<part>_*.png` … レンダリング画像
以上、『夏休みの自由研究リレー』の第14回のエントリ『3DプリンターとAIがあればCAD全くできない民でも自在に造形できるのか』でした。
次回は森尾さんの「Claude TeamとChatGPT BusinessとGemini Enterprise Business全部導入してみた」の予定です。お楽しみに!!







