ビットキー Prototyping Labでハードウェア(メカ・強電)エンジニアをしている @shujima と申します。
ビットキーではスマートロックのbitlockシリーズや、マンション・オフィスビルのセキュリティや空調、エレベーター制御設備との連携に使用される(一般の方の目に入ることがない)製品群、そして次世代のスマート製品など、数えきれないほどのハードウェア関連製品を開発しています。
私が所属するPrototyping Labでは私のようなメカ系のエンジニアから電子回路系、ファームウェア系、Webアプリケーション系など様々な得意分野を持ったエンジニアが集って次世代製品の試作開発を行っています。ロボコンなどのバックグラウンドを持った人も多く、ハードウェアからソフトウェアまで名前の通りラピッドプロトタイプを繰り返しハイスピードで作っている集団です。
メカ開発でもAIを活用したい
皆さんも、多くの方はすでにChatGPTなどの生成AI(以下単純にAIと呼称)を仕事や普段の生活などに活用されていることと思います。AIの用途は調査や文書作成など多岐にわたると思いますが、特にハードウェア開発に関してはその活用が遅れている印象があります。CADソフトによるモデリング作業は非常に手間がかかるいっぽうで自動化が進んでいない印象であり、同じチームに所属している @bk_aibahizuki とともに既存のAIを使ってなにかできないかといろいろ遊んでみました。
彼は回路設計に必要なICのフットプリントの自動モデリングで記事を書いていますので、よかったらこちらも見てみてください。
私は機械設計に使用される3D-CADモデリングの生成AIによる自動化を試みてみました。
本記事ではChatGPTによりこちらから与えた寸法の板金部品をモデル化してもらい、板金部品の即時見積もり・製造サービスであるMisumi meviyの見積を取得してみます。
「AIを使えばまあこんなこともできるよね」というひとつの例を示すのが目的なので
-
仕事に実用的に使えるようなレベルにする -
現時点で最も良い方法を提案する
上記は目的ではありません。とりあえず簡単に用意できるものでやってみたあくまで遊びということで以下ご覧いただければ幸いです。
用意した環境
使用するCAD
当然ですが、今回の用途的にAIが直接CADを触れる必要があります。現状のAIの得意分野を考えると、SolidWorksやAutodesk FusionのようなGUIベースのCADではなく、テキストベースで利用可能なCADのほうがよさそうです。
そこで今回はCascade Studioをお借りすることにします。Cascade StudioはOpen CASCADE Technology (OCCT) という3D CADカーネルを用いてWebブラウザから簡単なスクリプト言語でCADを利用できるようにしたツールです。OCCT は3D CADというソフトウェアの中心的な要素となる3D CADカーネルの一つであり、その名の通り数少ないオープンソースの3D CADカーネルです。
https://github.com/zalo/CascadeStudio

今回使用するAI
今回はChatGPTの最新バージョン5.2を使用します。UIの操作をお願いするため、OpenAIが提供している ChatGPT Atlasブラウザを利用し、エージェントモードでCascade Studioの操作をお願いします。
Cascade StudioではWeb上に表示されているエディタにコードを入力したうえで、右上に表示されているEvaluateボタンを押したりといったUI操作を行う必要がありますが、エージェントモードではこれらすべてをChatGPTにより実行することができます。
なお、今回は環境の都合でChatGPTを利用しましたが、画像や空間の認識はGemini 3 Proが上回っている印象も受けています。いずれそちらでも試してみたいと思っています。
課題1 ポンチ絵から板金のモデリングを依頼する
課題の概要と流れ
今回はAIに「板金のブラケットのモデリングをお願いして、MISUMIの板金部品製造サービスmeviy 板金にて発注用の見積を投げる」までをできるだけお願いしてみることにします。
今回用意した環境の都合上、たびたび人間の操作が必要になってしまい、内実ちっとも自動化されていないのですが、少しでも自動化気分を味わうことを目標とします。
ポンチ絵とプロンプトでAIにモデル形状を指示する
AIへのモデリング指示はポンチ絵(ラフなスケッチ)で行います。iPadのメモappで殴り書きしたブラケットのポンチ絵を読み込ませます。
上記のポンチ絵画像そのままを実際にAIに渡します。
Atlasブラウザにポンチ絵とプロンプトをアップロードしてChatGPTに指示を出します。
AIがCascade Studio上でコーディングし、モデルを生成する
エージェントモードを利用することで、ChatGPTは直接Cascade StudioのUIを操作してコーディングや3D表示の更新などを行っていきます。
step形式でダウンロードする
Cascade Studioの機能にて3Dモデルをstep(交換用3Dフォーマット)データに変換しダウンロードします。
MISUMI meviyにアップロードする
さきほどダウンロードしたstepファイルをMISUMI meviyにアップロードします。
meviyは3Dモデルをアップロードすると自動で作成可否の判定や金額の見積などが行われる、機械部品の販売を手掛けるMISUMI(株式会社ミスミグループ本社)のサービスであり、便利でありながら短納期かつ安いので、普段から便利に活用しています。
今回の課題では実用的なテーマ設定として、AIに板金部品の設計をお願いすることとします。AIに図面を起こさせたり、取引先にメールを送らせてお見積りを取ったり...というのは規模が大きくなりすぎてしまうので、お手軽にお見積り・発注ができる meviy 板金を活用します。
製造はAIによる設計とは直接は関係ないのですが、実際にAIが設計したものを世に誕生させたかったため、上記サービスで製造可能と判定させることをゴールと設定しました。
meviyはとても便利なサービスですが、どんな形状でもオーダーできるわけではなく、モデリング方法などいろいろなルールが決められており、ドキュメント化されています。これをAIに読ませることでmeviyで加工可能なデータを作成させることを目指します。
今回用意した環境の都合上meviyへのアップロード作業は手動で行います。
実践
ポンチ絵の画像とともに以下のプロンプトを投げました。
画像のようなブラケットを作成してください。
* 2つの直径3mmの固定穴と「ChatGPT」という文字の刻印を施してください。
* その他の寸法は画像中のものを参照してください。画像にも指定が無い寸法は任意に指定してください。
* 文字の刻印は大きさの指定がありません。大きすぎても小さすぎてもエラーの可能性があるため、適度な大きさにしてください。特にエッジに近すぎるとエラーが起きやすいため、エッジから適度な距離に文字を刻印してください。
以下は共通ルール:
* 変数を定義する場合は予約語との競合を避けるため、任意のプレフィックスを使用すること
* まずは穴などに着目せずに板形状のみ再現すること
* 板を曲がり角ごとに分解し、各辺ごとにboxコマンドを用いて板を生成すること
* 各ステップにおいて定期的にevaluateを実行し、エラーが出ないか確認すること。
* エラーが出てしまい、その解消が困難なときにはブラウザのリフレッシュにより解決する場合があるので実施すること。
* 板が完成したあと、 穴や刻印などより詳細なモデリングを実施すること
* 完成したデータは後日misumi meviyにて製造される。misumi meviyで製造可能なデータが出力されるよう、必要に応じてモデリングのルールを確認すること。https://jp.meviy.misumi-ec.com/help/ja/technical_info/shm_guideline/
さあ...どうなる!?
.
.
.
(デバッグのために、ChatGPTが出力した結果を改変して本来消失する穴と文字のモデルを表示するようにしています)
うーん...残念...失敗...
初っ端にしては上出来かもしれませんが、文字の向きと位置がよくありません。またよく見ると一部板金が繋がっていません。
修正を指示します。
文字の修正
ChatGPTの文字について、 位置を30mm左にオフセットして 現状だと板金の面に直交してしまっているから、X軸視点で90度回転させて板金の面と文字の向きをあわせて
板金のつながりの修正
my_legLeftとmy_topPlateの高さ(Z座標)からmy_thicknessを引いて
これだけではうまく行かなかったのでもう一度指示
2つ小さな修正をお願いしたいんだけど、
* my_topPlateの右端が少し足りていないから右方向にmy_thickness分伸ばして
* my_textRotがmy_topPlateに少しだけ高さが一致していないのでmy_thickness分上に(Zをプラス)ずらして
これ以前にも何度か試してみたのですが結構具体で指示しないと理解してもらえませんでした。
おお!いい感じ!ちゃんとポンチ絵通りChatGPTくんが設計してくれました!
文字の大きさなどは特に修正していませんが、meviyの制約よりも十分に壁から離れているため、問題なさそうです(欲を言えばセンタリングしてほしかった)。
手動で"Save STEP"をクリックしてSTEPデータとしてエクスポートします。(なおChatGPTに頼んでも押してくれますがどうせ保存ダイアログが出てくるため意味がない)
meviyへのアップロード
meviyへのアップロードはstepファイルをドラッグアンドドロップするだけです。こちらも現状は手動で行う必要があります。
アップロードすると自動でデータの解析が始まり30秒ほどで結果が表示されます。
今回の設計は文字の刻印により、「a」と「P」の文字の中に、浮いた部分が存在し、それらは当然加工できません。これらは自然に別パーツとして認識されるため、気にする必要はありません。
解析が終了していますが、板金の横に「!」が表示されているため問題があるようです。クリックして、確認します。
確認したところアップロード直後のモデルでは、角が角ばっているため、問題があるようです。修正を提案されます。この修正はmeviy側で自動で実施可能です。「モデルを修正する」を選択して修正を依頼しました。
また30秒ほどで修正&再解析が終了します。自動修正が終わったモデルは無事「条件設定待ち」というステータスになりました。
「meviyで見積もり」をクリックして、素材などを選択していきます。
そして見事、meviyで自動見積もりを取ることに成功しました!
人間が書いたポンチ絵に従ってほとんど勝手にAIがCADモデリングをしてくれることを確認しました。
今回ChatGPTくんが設計してくれた板金部品は(納期3日だと)2890円で実際に製造可能であることが分かりました。
以下はAIの一連の作業風景をgif動画にしたものです(途中人がカーソルを動かしているシーンもあります)。
課題2 : モーターブラケットの制作
課題1がうまく行ったので、発展的なお題としてもう少し実用的な部品を設計してもらうことにします。
といっても課題1で文字を入れていたところをモーターの取り付けに変更しただけです。
上記のポンチ絵画像そのままを実際にAIに渡します。
取り付けるモーターの種類はプロンプトで指定して、かつ寸法も自分で調べてもらうこととします。
課題1のときと同様に3Dモデルが正常に作られるかを試してみます。
実践
まずは寸法を調査してもらいます。
GP 22 Cというmaxonモーターの取り付け関係寸法を調べて。 図面をよく見て取り付けに必要な寸法をピックアップして。
* 取り付けネジ穴
* 取り付けネジ穴がある平面のシャフトの直径
(ChatGPT画面のスクリーンショット。またChatGPTの情報源はMaxon motor Webサイト)
おおよそ問題なく調査できたようです。
ただし、ここにたどりつくまでに何度か失敗しています。今回指示したモーターの取り付け寸法はモーターメーカーのホームページに以下のような感じで図面で掲載されています(他にも掲載箇所はあるかもしれません)。
https://www.maxongroup.co.jp/maxon/view/product/gear/planetary/gp22/143988 (maxon motorホームページより引用)
実際、何度か失敗したうえでこのプロンプトにたどり着いているのですが、板金に開ける穴がシャフトの径(=Φ4mm)ではなくボス径(Φ10mm)であることに気づくまで、苦労しているようでした(プロンプトにボス径と書かないように落ち着きました)
作図を依頼
上述のポンチ絵とともに以下のプロンプトで作図を依頼します。
画像のようなモーター用の板金ブラケットを作成してください。 モーターはmaxon GP 22 Cギヤヘッドが搭載されたもので、取り付けねじ用の穴とセンタリング用のボスの穴を設ける必要があります。
* その他の寸法は画像中のものを参照してください。画像にも指定が無い寸法は任意に指定してください。
* 文字の刻印は大きさの指定がありません。大きすぎても小さすぎてもエラーの可能性があるため、適度な大きさにしてください。特にエッジに近すぎるとエラーが起きやすいため、エッジから適度な距離に文字を刻印してください。
以下は共通ルール:
* 変数を定義する場合は予約語との競合を避けるため、任意のプレフィックスを使用すること
* まずは穴などに着目せずに板形状のみ再現すること
* 板を曲がり角ごとに分解し、各辺ごとにboxコマンドを用いて板を生成すること
* 各ステップにおいて定期的にevaluateを実行し、エラーが出ないか確認すること。
* エラーが出てしまい、その解消が困難なときにはブラウザのリフレッシュにより解決する場合があるので実施すること。
* 板が完成したあと、 穴や刻印などより詳細なモデリングを実施すること
* 完成したデータは後日misumi meviyにて製造される。misumi meviyで製造可能なデータが出力されるよう、必要に応じてモデリングのルールを確認すること。https://jp.meviy.misumi-ec.com/help/ja/technical_info/shm_guideline/
数分後....
惜しい。
コードを私が解析したところ
修正前:
let bracket_board = Union(bottom_flange_left, bottom_flange_right, web_left, web_right, central_plate);
修正後:
let bracket_board = Union([bottom_flange_left, bottom_flange_right, web_left, web_right, central_plate]);
必要なかっこ[]が抜けていました。かなりの時間かけて試行錯誤していたようですが気づけなかったようです。
修正したあとのデータは
かなりいい感じではないでしょうか?やはり板金が途切れてしまう問題は引き続き起きています。
M2.5のネジが通る穴を直径2.5mmにするのは良くないとか寸法公差とか考慮が足りていない部分はもちろんありますが、思った以上の成果でした。
AIによる作業風景をgif動画にしたものです。(最後人間によりモデルの修正を行っています。途中人がカーソルを動かしているシーンもあります。)
よく起きた失敗と対策
予約語との競合によるエラー(?)
widthやheightといった一般的な単語がおそらく予約語のようで、予期せぬエラーが発生します。その上、そのエラーの解消が現状のChatGPTには困難なようで、エラーの解消を試みてどんどんコードの修正を繰り返し取り返しのつかないことになっていくというのが散見されました。プロンプト上であらかじめ変数にはプレフィックスをいれるように指定することで問題を解消できました。
板金形状の表現
人間には簡単な折り曲げ板金のモデリングですが、現状のChatGPTはとても苦労していました。特に「合理的にモデリングしよう」という感覚が邪魔をして、1つ1つの折り曲げを順番にやるのではなく、全体のラフ形状を作ってから細部の修正により解決する手段を試みる傾向にあります。
ただし、この方法では最後までやりきることは難しく、結果的に全然形が異なるモデルができる傾向にあります。
そこでプロンプトにて折り曲げごとに1つずつ板を出力するように矯正しました。
エラーを修正してもエラーが解消しない(?)
まだ良くわかっていないのですが、エラーの原因を取り除いてもevaluateがうまく行かず、エラーが出続けてしまうことがあります。この場合ブラウザを更新すると解決するため、これもプロンプト上で更新を指示しました。
今回AtlasによりUIの操作を任せてみたのですが、Atlasが何度も試行錯誤しながら、Cascade Studioのエラーの解消を試みる様を確認しています。何度どのようにデバッグしてもエラーが解消せずあきらめてしまうことが多々あり、そもそも安定なCAD環境をAIに与えないといけないなという当たり前のことを痛感しました。
感想
あれこれ苦戦しながらAIがモデリングしているさまを眺めるのはとても良い体験でした。
感覚的にはChatGPT 3.5のあたりの「あんま実用的じゃないけどすげー」などと感じていた頃のAIを見ている気分です。LLMは簡単な算数もできないとか言われていたそんな時代もありましたよね。
このまま成長してゆけば、極近い将来には、設計の考える部分だけを人間が行って、簡単な部品のモデリングはAIに任せられるような時代がくるのだろうと感じました。
現状のAIの3Dモデリング能力は不十分なのか?
現状、今回取ったアプローチでは、きわめて簡単なエラーの解消すらできず、多くの落とし穴にハマってほとんど自動化できているとは言えない状態でした。
今回わざわざAtlasなどのGUI環境を用いた意図としては、「AIがUIに浮かぶ3Dモデルの表示を見て、自身のモデリングをフィードバックし修正していくさまがみられるのでは?」という期待感からだったのですが、実際にはそういったフィードバックはほとんど行えませんでした。
ただし、これはあくまで今回取ったアプローチによる限界と考えています。世の中にはすでに2Dイメージから3Dモデルを出力する研究はいたるところで行われており(MetaのSAM3Dなど)、近い将来には機構部品のようなものの3Dモデルを簡単につくれるようになると感じています。
(Meta SAM3Dに課題1のブラケットの画像を投げたときの様子。左が画像、右がモデル。)
AIに機構エンジニアの仕事は奪われるのか?
私は普段ビットキーで機構設計エンジニアとして働いています。念の為弁解しておくと、今回のような簡単なブラケットの設計などをすることはあまりなく、(詳細は話せませんが)どちらかというとなかなか複雑なメカトロニクスの設計を行っています。
メカトロニクスの設計は動的な要素など多くの検討事項がからみ、特にただモデリングすればいいという工程は全体の極一部でしかありません。そういう意味で、まだまだ機構設計エンジニアの仕事がAIに奪われる状態ではないと感じました。
ただし他の業界を取り巻くAIの進化の早さを考えると、そんな悠長なことをいってもいられないのかもしれません。
今回私は会社の机でAIが設計している様子を横目に見ながら、その机で試作品の組み立てをやっていました。AIが成長し、設計をAIにとって変わられるようになったら、我々ハードウェアエンジニアは文字通りAIの手足となって、AIに言われた通りねじを締める日々がやってくるのかもしれません。
ビットキーに関して
この記事はBitkey Developers Advent Calendar 2025 を構成する記事です。
ビットキーでは「つなげよう。人はもっと自由になれる。」をテーマに、人の移動を妨げる分断や、システムとシステムの分断、現実世界とデジタル世界を隔てる分断などの解決に取り組み、多くのソリューションを開発・提供しています。
代表的な製品はスマートロックですが、それにとどまらない多くの開発が行われており、機械設計や電気設計を始めとするハードウェアエンジニアからAndroid、Web、バックエンドなどほぼ全領域のソフトウェアエンジニアまで様々なエンジニアを募集しています。
私たちのビジョンの実現に共感を持てる方はぜひお気軽にビットキーの選考に応募してみてください!
注記
本記事に記載されている会社名および製品・サービス名は、各社の商標または登録商標です。
















