AIにDXFを作らせてみた|寸法つき・三面図まで試した結果

アイキャッチ:「100×50の板で、中央にφ10の穴」という依頼文から、DXFの図形(板と穴と寸法)ができあがる図

結論:簡単な図面なら、AIはDXFを作れました。ただし「寸法の数字」は必ず自分の目で確かめてください

「AIにDXFファイルを作らせたい」。そこで、Claudeに6種類の図面を頼み、できたDXFを開いて座標・寸法・画層をプログラムで測って確かめました。

  • 図形は23本すべて、指定どおりでした。外形、穴の位置と直径、内側の角R、画層名、日本語の文字、円周上に等間隔の穴8個、三面図(隠れ線つき)まで。
  • 危なかったこと:Pythonのコードを書かせる方式では、寸法の数字が100倍(「100」が「10000」)になって保存されました(2回中2回)。エラーは出ません。AIに症状を伝えたら、2回とも直りました。
  • AIが勝手に決めたこと:「M6のボルトを通す穴」と頼むと、直径を6.6mmにしました。頼んでいない中心線を足すこともありました。
  • 試していないこと:ChatGPTなどほかのAI、AutoCADやJw_cadで開けるか、複雑な実務の図面。

同じ依頼の再実行は多くて2回なので、「成功率◯%」ではなく「この条件ではこうなった」という記録として読んでください。

この記事について(先にお断り)

筆者は商品開発の仕事を15年以上してきた者で、2D CAD「CADなんです」を自作して販売しています。記事の最後で触れるCADなんですは、筆者自身の製品です。

実験は、AI(Anthropic社のClaude)に実際に答えさせて記録しました。記事の文章もAIの助けを借りて下書きし、筆者が内容を確認して公開しています。図面はすべて、筆者がこのために考えた架空のものです(他社や他人の図面、個人情報は使っていません)。

そもそも、AIにDXFが作れるのはなぜ?

DXFの多くは、メモ帳で開くと文字が並んで見えるテキスト形式です。「0」「LINE」「10」「25.0」のように、番号と値が交互に並ぶ書き方で、線や円の座標が記録されています。AIは文字を書くのが得意なので、このテキストを書けば、理屈の上ではDXFになります。

作らせ方は2つあります。今回は、同じ依頼を両方で試しました。

  • 方式A:DXFの中身を直接書かせる。出てきた文字をメモ帳に貼って「.dxf」で保存するだけ。Pythonは要りません
  • 方式B:Pythonのコードを書かせる。「ezdxf」というPythonのライブラリ(DXFを作る・読む道具)を使うコードを書いてもらい、自分のPCで実行してDXFを作ります。Pythonと pip install ezdxf が要ります

(AIがコードを実行できる機能がある場合は、そこで実行してもらう手もありますが、今回は試していません。)

作らせ方の手順とコツ

方式A(直接書かせる)

  1. 次のように、図面の仕様を数字で書いて頼む
  2. 返ってきたコードブロックの中身を、全部コピーしてメモ帳に貼る
  3. ファイル名の最後を「.dxf」にして保存する
次の図面のDXFファイルを作ってください。単位はmm。
・100mm×50mmの長方形の板(左下が原点(0,0))
・中央に直径10mmの穴を1つ
ファイルの中身(DXFのテキスト)を、省略せずそのまま全部出力してください。

方式B(コードを書かせる):上の最後の一文を、「Pythonのezdxfで作るコードを書いてください。」に変えます。

コツは3つです。

  • 原点と単位を書く(書かないと、板の中心が原点になることがあります)
  • 数字で頼む(「中央に」より「穴の中心は(50,25)」のほうが確実です)
  • 頼んでいないことをされたくなければ、「それ以外は足さないで」と書く

実験:6種類の図面を、2つの方式で

記号 頼んだ図面 見たところ
A1 100×50の板、中央にφ10の穴 いちばん簡単な例
B1 L字金具(60×80・腕の幅20)、内側の角にR5、φ8の穴3つ、画層「外形」「穴」、日本語の文字 画層名・日本語・円弧
C1 「M6のボルトを通す穴」をあけた50mm角の板 あいまいな頼み方
D1 A1に、全長・全高・穴径の寸法線を追加 寸法(DIMENSION)
P1 外径80の円板、PCD50の円周上にφ6の穴を8個(1個目は真上) 三角関数の計算
F1 50×30×20の直方体(中央に貫通穴φ10)の三面図、第三角法、隠れ線は破線、図の間隔20mm 空間の理解

判定の方法:AIが作ったファイルを、Pythonのezdxfで厳密に読み込み(壊れていれば、多くの場合は読み込みの時点でエラーになります)、外形の範囲・穴の中心と直径・円弧・画層名・文字・寸法の中身をプログラムで測って、依頼と照らし合わせました。三面図だけは、描画した絵を筆者が目で確認しました。

方式Aは11回(A1・B1・D1・P1・F1を各2回、C1を1回)、方式Bは12回(6種類を各2回)、合計23本です。

実験結果① 図形は、23本すべて指定どおりだった

図面 方式A(直接) 方式B(コード)
A1 板+穴 2回とも正解 2回とも正解
B1 L字金具 2回とも正解(内側R5は、円弧になった回とポリラインの膨らみになった回がありました) 2回とも正解
C1 M6の穴 1回、中央に穴1つ 2回とも中央に穴1つ
D1 寸法つき 外形・穴・寸法3本とも指定どおり 外形・穴・寸法3本とも指定どおり(ただし後述の落とし穴あり)
P1 PCD50×8穴 2回とも、8個の座標が計算値と0.01mm以内で一致 2回とも一致
F1 三面図 2回とも、平面図・正面図・右側面図の配置と隠れ線が正しい 2回とも正しい

どれも、ezdxfでの読み込みはエラーなし、ファイルの検査(audit)でもエラー0件でした。CADなんです(v1.1.1)でも23本すべて開けました。

AIにDXFで作らせた三面図を、CADなんですで開いた画面。上が平面図(穴φ10の円)、下が正面図と右側面図(隠れ線の破線)

驚いたのは、三角関数の計算が要るP1(穴8個)を、計算ツールなしで直接書かせても座標がすべて合っていたことです(0, 25)(17.68, 17.68)などを、AIが頭の中で計算して書いていました。三面図も、隠れ線を別の画層(HIDDEN)にして破線にするところまで、依頼の意図どおりでした。

実験結果② AIが勝手に決めたこと

指定していない部分は、AIが補います。補い方を知っておくと、後で困りません。

  • 穴の直径:C1の「M6のボルトを通す穴」は、3回とも直径6.6mmでした。AIは「通し穴の呼び径は精級6.4・中級6.6・粗級7.0で、中級を採用」と理由まで書いていました。ただ、使う穴径を決めるのは設計者です。数字は自分で指定したほうが安全です
  • 頼んでいない線:方式Bのコードは、C1(2回とも)とF1(2回とも)で、中心線を勝手に足しました。P1の1回では、PCDの基準円(直径50)も足しています。不要なら「それ以外は足さないで」と一言添えます
  • 画層名:指定しなかったとき、方式Aは画層「0」、方式Bは「OUTLINE」のような英語名にすることがありました。画層名を決めたい図面は、名前まで指定してください
  • DXFの形式:方式Aは、英数字だけのときは最も古いR12(AC1009)、日本語の画層名や文字があるとR2007(AC1021)で書きました。どちらも今回のソフトでは読めました

実験結果③ 落とし穴:コード方式の「寸法の数字が100倍」

D1(寸法つき)で、方式Bのコードはエラーなく動き、寸法線も描かれました。ところが、寸法の数字を調べると、2回とも「10000」「5000」「φ1000」と保存されていました(正しくは100・50・φ10)。

寸法つきの板を、左:直接書かせた方式、中・右:コード方式で作ったものをezdxfで描画。コード方式は寸法の数字が10000・5000・φ1000になっている

原因は、AIが使ったezdxfの標準の寸法スタイル(EZDXF)が、測った値に100を掛けて表示する設定(dimlfac=100)になっていたことでした(作られたファイルの中身で確認しました)。寸法が測っている値そのものは100で正しく、「表示する数字」だけがずれます。CADソフトで寸法を再計算しても、同じ設定が使われるので、同じ表示になるはずです(推)。

方式A(直接書かせた)では、この問題は起きませんでした。AIが寸法の文字(「100」「50」)を直接書いていたためです。

直し方をAIに聞いてみました。「開いたら寸法が10000と表示された」と症状だけを伝え、元のコードを添えて頼むと、2回とも原因(dimlfac=100)を言い当て、dimlfac = 1 の1行を足したコードを返しました。実行して、寸法の数字が100・50・φ10になったことを確かめています(2回とも)。

ここからの教訓:AIのコードは「動いた」だけでは足りません。寸法の数字は、開いて目で見る。AIが作った寸法は、そこが一番危ない場所でした。

実験結果④ 時間と量:寸法つきだと、直接書かせるのは重い

図面 方式A(直接)の出力量・時間 方式B(コード)の出力量・時間
A1 板+穴 約900〜1,100トークン・8〜10秒 約500トークン・6〜8秒
D1 寸法つき 約5,800〜6,800トークン・43〜50秒 約1,300トークン・10〜11秒
F1 三面図 約2,700〜2,800トークン・21〜22秒 約2,500〜3,100トークン・20〜24秒

寸法は、見た目を作るための部品(寸法ブロック)まで含めて書く必要があり、直接書かせるとDXFが長くなります。図形が増えるほど、直接方式は遅く、コード方式は軽い傾向でした。

試していないこと・限界

  • 試したAIはClaude 1種類(Claude Code経由・Sonnet 5.5)です。ChatGPTやGeminiでは試していません。方式Aは、貼り付けるだけなので、ほかのAIでも同じように使えるはずですが、結果は分かりません
  • 同じ依頼の再実行は、最大2回です。統計的な精度ではありません
  • CADなんです・ezdxf以外のソフトでは開いていません。AutoCADやJw_cadなどで開けるかは未確認です。文字コードの違う環境(日本語をメモ帳で保存する場合の文字コードなど)も試していません。確実さを求めるなら、日本語を使わないか、コード方式(方式B)にしてください
  • 図面が単純でした。スプライン曲線、ハッチ(斜線の塗り)、部品の組み立て図などは試していません
  • 最初の依頼文では、AIが「ファイルを保存します」と実行ツールを呼ぶ文章を返した回が2回あり、除外して取り直しました。実験では「ここではファイル操作や実行はできません。回答の文章とコードブロックだけで答えてください」と一言添えています
  • 機密図面は入れないでください。会社や取引先の図面は、社内ルールや契約で外部のAIに送れないことがあります。AIに作らせる実験なら、自分で考えたダミー図面で足ります

AIが作ったDXFを、自分の目で確かめる

AIが「作りました」と言っても、そのDXFが本当に開けて、数字が合っているかは、開いてみるまで分かりません。大事なのは、AIの答えを、図面として目で見て確かめることです。

DXFを開くソフトがない場合は、取引先からDXFが届いたけど開けない人へやDXFファイルをソフトなしで開く方法まとめで、いくつかの方法を紹介しています。AIの得意・不得意は、姉妹記事のDXFをAIに読ませたら何が分かる?と図面の画像・PDFをAIに検図させてみたも参考になります。

筆者が作った2D CAD「CADなんです」(HTMLファイル1個。インストール不要)もそのひとつです。体験版でもDXFを開く機能は使えます。ただし、DXFを読み込むときに、寸法(DIMENSION)とハッチ(HATCH)は表示されません(画面に「未対応」と件数が出ます)。今回のD1も、4本すべてで「未対応: DIMENSION×3」と出て、板と穴は表示されましたが、寸法線は表示されませんでした。つまり、寸法の数字の確認には、CADなんですは使えません。寸法を表示できるビューアで確かめてください。板・穴・円弧・画層といった形の確認には使えます。

すでにあるDXFを直させる実験は、AIにDXFを修正させてみた にまとめました。

CADなんですの詳細と体験版はこちら →

製品版は2,980円の買い切りです。DWGは読み書きできません(DXFを経由します)。できないことは、製品ページと同梱のreadmeに書いてあります。

よくある質問

Q. ChatGPTでもできますか?
試していないので分かりません。方式A(DXFの中身を直接書かせる)は、どのAIでも使えるはずです。まず、100×50の板のような小さな例で試してください。

Q. 方式AとB、どちらがいいですか?
今回の範囲では、Pythonを使える人は方式B、使えない人は方式Aで十分でした。方式Bは速く軽い反面、寸法の数字の落とし穴がありました。方式Aは長くなるほど遅くなりますが、寸法の数字は正しく書けました。どちらでも、仕上がりを目で確認してください。

Q. AIが作った図面を、そのまま製造や見積もりに使っていいですか?
いいえ。今回うまくいったのは、図面が小さく単純だったからです。寸法や穴の位置など、間違えると困る数字は、CADの画面や手計算で確かめてください。

Q. 会社の図面を作らせていいですか?
会社や取引先のルールが優先です。外部のAIに送ってよいか、先に確認してください。

まとめ

  • 簡単な図面なら、ClaudeはDXFの中身を直接書いても、Pythonコードを書いても、図形を指定どおりに作れた(23本すべて)
  • コード方式の寸法は、数字が100倍で保存された(2回中2回)。症状を伝えれば直せた(2回中2回)
  • 指定しない部分(穴径・中心線・画層名)は、AIが補う。大事な数字は自分で指定する
  • 試したのはClaudeだけ、再実行は最大2回、図面は筆者のダミー。「できそうだ」の確認であって、精度の保証ではない

体験版をダウンロードしてみる →

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次