AIにDXFを修正させてみた|穴径・移動・寸法の変更を検証

アイキャッチ:横幅120mmの板が、横幅150mmの板に直される図

結論:小さなDXFなら、AIは頼んだ所だけを直せました。大きくなると「全文を書き直す」方式は成立しません

「取引先のDXFの、穴の大きさだけ変えたい」「図形を全部ずらしたい」。CADソフトがない、あるいは操作が面倒なとき、AIに直してもらえるのか。そこで、自作のダミー図面をClaudeに直させ、変更前後のファイルを比べて確かめました。

  • 直せたこと:穴径の変更、図形全体の移動、穴の追加、画層名の変更、板の横幅を伸ばす(寸法の数字も150に更新)。全文を書き直させる方式は5回すべて、Pythonコードで直す方式は11回中10回、頼んだとおりになりました
  • 頼んでいない所は触らなかった:穴径の変更では、8,038行あるファイルのうち変わったのは1行だけでした(行頭の空白を除いて比較)
  • 壁があったこと:全文を書き直させると、48KBのファイルで約3万トークン・2分以上。77KB(円300個)で約4分。395KB(円3,000個)では、AIが「全文は出力しない」と断りました。コード方式は、395KBでも約10秒でした
  • 失敗もありました:コード方式の1回は、存在しないモジュールを読み込もうとして、動きませんでした
  • 試していないこと:ChatGPTなどほかのAI、AutoCADやJw_cadで開き直せるか、複雑な実務の図面

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

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

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

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

AIにDXFを直させる2つの方法

DXFの多くは、メモ帳で開くと文字が並んで見えるテキスト形式です。AIにそのテキストを渡して直してもらえます。方法は2つあります。

  • 方式A:全文を書き直させる。DXFの中身を全部貼り付け、「直したあとの全文を出して」と頼む。返ってきた文字をメモ帳に貼って、別名の「.dxf」で保存します。Pythonは要りません
  • 方式B:直すPythonコードを書かせる。DXFの中身を貼り、「このファイルを読み込んで、こう直して、別名で保存するコードを書いて」と頼みます。Pythonと、DXFを扱う道具「ezdxf」(pip install ezdxf)が要ります

どちらも、元のファイルは上書きせず、別名で保存してください。AIの直しが間違っていても、元に戻せます。

実験に使った図面と依頼

板金のベースプレートを想定した、120×70mmの板(約48KB・8,038行)です。四隅の近くにφ8の穴が4つ、中央にφ20の穴が1つ。全長120と全高70の寸法線、文字2つ(「4-φ8 穴」と品名)があり、画層は「外形」「穴」「寸法」「文字」です。DXFの中身を貼り付けて頼みました(ツールなし。チャットに貼るのと同じ条件)。

記号 頼んだこと 意図
T1 中央の穴(φ20)をφ25にする いちばん簡単な変更
T3 図形全体を、X方向に+200、Y方向に−50移動する 寸法線や文字も一緒に動くか
T4 φ8の穴を、(60,12)にもう1つ追加(画層は他の穴と同じ) 追加
T5 画層「穴」の名前を「HOLE」に変える(図形もそのまま) 名前の一括変更
T6 板の横幅を120から150に伸ばす(右辺と右側の穴2つを30mm右へ。寸法線も合わせる) 寸法の数字の更新

判定の方法:直ったファイルを、Pythonのezdxfで厳密に読み込み、穴の中心・直径・画層名・外形の頂点・寸法の中身をプログラムで測って、依頼と照らし合わせました。さらに、変更前後を行単位で比較して、頼んでいない所が変わっていないかを見ました。

実験結果① 5種類の変更は、ほとんど成功した

依頼 方式A(全文を書き直す) 方式B(コードで直す)
T1 穴径 20→25 成功(1回) 2回とも成功
T3 全体を移動 成功(1回)。寸法線の見た目の部品も一緒に動いていた 2回とも成功
T4 穴を追加 成功(1回) 2回とも成功
T5 画層名を変更 成功(1回)。画層の定義と円5個の指定、計6か所を書き換えた 2回とも成功
T6 横幅を伸ばす 成功(1回)。寸法の数字も「150」に 3回中2回成功。1回は動かなかった

方式Aは5回すべて、方式Bは11回中10回、ezdxfでの読み込みはエラーなし、ファイルの検査(audit)でもエラー0件でした。CADなんです(v1.1.1)でも、直したファイルは開けました。

頼んでいない所を触っていないかを、変更前後の行単位の比較で見ると、方式AのT1(穴径)は8,038行のうち、変わったのは1行(中央の穴の半径 10.0 → 12.5)だけでした。ほかの穴・寸法・文字は、そのままでした。移動(T3)のように多くの座標が変わる依頼では、変わった行が増えます(約90行)。そのぶん、AIが「どこをどう変えたか」を文章で説明してくれました。

直す前(左:横幅120)と直した後(右:横幅150)。AIに全文を書き直させたDXFを、ezdxfで描画したもの。寸法の数字も150に変わり、右側の穴が30mm右へ動いている

(この画像は、ezdxfというPythonの道具で描画したものです。CADなんですでは寸法線が表示されないため、寸法の変化は載せられません。)

実験結果② AIが「やっていないこと」を自分で言った

AIは、頼んだことしかしません。そして、頼んでいないことで困りそうな所を、自分で報告してくれました。

  • 穴を足したあと(T4):「図面内の注記テキスト『4-φ8 穴』は、そのままにしてあります。φ8の穴が5個になったので、必要なら『5-φ8 穴』への変更もできます」と報告しました。文字の注記は、穴の数が変わっても自動では直りません
  • 板を伸ばしたあと(T6):「中央の穴は動かしていません」と報告しました。中央の穴は板の中心から外れた位置になります。頼み方に含めなければ、そのままです
  • 全文を書いたとき:「ファイル操作はできないため、実行や検証はしていません」と、確認していないことも書いていました

AIの返事の説明は、必ず読んでください。直し漏れは、AIが気づいていても、頼まなければ直りません。

実験結果③ 大きなファイルの壁:全文を書き直させるのは、すぐに限界が来る

方式Aは、ファイルの全文をそっくり出力する必要があります。ファイルが大きいほど、時間も量も増えます。

ファイル 方式A(全文を書き直す) 方式B(コードで直す)
板の図面(約48KB・8,038行)T1〜T6 出力約3万トークン・135〜145秒 出力約750〜4,600トークン・8〜37秒
円300個(約77KB):半径を3→4に 出力約4万8千トークン・221秒。正解(300個すべて半径4・位置も同じ) 出力約520トークン・6〜9秒。2回とも正解
円3,000個(約395KB):半径を3→4に AIが断った(下記) 出力約500トークン・6〜10秒。2回とも正解(3,000個すべて半径4)

395KBでは、AIは次のように返しました(要旨)。

3,000個の円があり、全文は約5万行になります。ここに省略なしで貼ると途中で切れて壊れたDXFになるため、全文は出力しません。代わりに、元のファイルの書式を保ったまま半径だけを書き換えるスクリプトを用意しました。

(AIは「約5万行」と言いましたが、実際のファイルは67,030行でした。AIの数え間違いです。)

途中で切れて壊れたファイルを、そのまま出さなかったのは、誠実な対応でした。ただ、このとき渡されたのは「全文」ではなく「スクリプト」です。つまり、ある大きさを超えたら、方式Aは成立しないということです(この断りは、筆者が試した395KBの1回だけで確かめました)。実務のDXFは、数百KB〜数MBになるのも珍しくありません。

なお、方式Aの出力量は、48KBで約3万トークン、77KBで約4万8千トークンでした。使っているAIサービスの1回の出力の上限によっては、もっと小さいファイルでも切れるかもしれません(上限はサービスやプランで違うので、各サービスの案内を確認してください)。

失敗した1回:存在しないモジュールを読み込んだ

方式BのT6(横幅を伸ばす)の1回目は、実行すると次のエラーで止まりました。

ModuleNotFoundError: No module named 'ezdxf.dimstyleoverride'

AIが、ezdxfの中にない場所からクラスを読み込むコードを書いていたのです。2回目と3回目は動き、寸法の数字も「150」に更新されました(寸法の見た目の部品を作り直す処理が入っていました)。

エラーで止まったので、失敗には気づけました。怖いのは、動くのに間違っているケースです。実験では、コード方式のDXFで、寸法の数字が100倍で保存される例がありました(姉妹記事「AIにDXFを作らせてみた」で紹介しています)。直したあとの数字は、必ず目で確かめてください。

直させるときの手順とコツ

  1. 直したいDXFを、メモ帳などで開いてみる(文字が並んでいればテキスト形式です。DWGは対象外)
  2. ファイルの大きさを確認する。目安は数十KBまでなら方式A、それ以上なら方式B(またはPythonの得意な人に相談)
  3. AIに頼む。例(方式B):
次のDXFを直したいです。
「中央の穴(直径20mm)を直径25mmに変更」
このファイルを直接書き換えるのではなく、"plate_base.dxf" を読み込み、変更して "plate_edited.dxf" に保存するPythonコード(ezdxf)を書いてください。

(ここにDXFの中身を貼る)
  1. 返ってきたコードを実行し、別名のファイルができたことを確認する
  2. 直したファイルを、元のファイルと見比べる(開いて重ねる、テキスト比較ソフトで比べる、など)

コツは3つです。

  • 「どこを・どう」を数字で書く(「中央の穴を大きく」より「直径20→25」)
  • 関連する所も書く(穴を足したら注記の「4-φ8」を「5-φ8」にする、など)
  • 元のファイルは残す(別名で保存し、変更前のファイルを消さない)

試していないこと・限界

  • 試したAIはClaude 1種類(Claude Code経由・Sonnet 5.5)です。ChatGPTやGeminiでは試していません
  • 同じ依頼の再実行は、最大3回(T6のコード方式のみ3回、ほかは多くて2回、方式Aは各1回)です。統計的な精度ではありません
  • CADなんです・ezdxf以外のソフトでは、直したファイルを開いていません。AutoCADやJw_cadで開けるか、寸法が正しく表示されるかは未確認です
  • 図面が単純でした。部品が数百ある組み立て図、ブロック(部品の登録)が多用された図面、スプライン曲線やハッチなどは試していません
  • 最初の依頼文では、AIが「ファイルを保存します」と実行ツールを呼ぶ文章を返した回があり、取り直しています。実験では「ここではファイル操作や実行はできません。回答の文章とコードブロックだけで答えてください」と一言添えています
  • 機密図面は入れないでください。会社や取引先の図面は、社内ルールや契約で外部のAIに送れないことがあります

直したあとの形を、自分の目で確かめる

AIが「直しました」と言っても、本当に頼んだとおりになっているかは、開いて見るまで分かりません。直す前と後を、図面として見比べるのが一番確実です。

DXFを開くソフトがない場合は、取引先からDXFが届いたけど開けない人へやDXFファイルをソフトなしで開く方法まとめで、いくつかの方法を紹介しています。AIにDXFを読ませる実験は、DXFをAIに読ませたら何が分かる?にまとめました。

筆者が作った2D CAD「CADなんです」(HTMLファイル1個。インストール不要)もそのひとつです。体験版でもDXFを開く機能は使えます。ただし、DXFを読み込むときに、寸法(DIMENSION)とハッチ(HATCH)は表示されません。今回の板の図面も、「未対応: DIMENSION×2」と表示され、板と穴と文字は見えましたが、寸法線は見えませんでした。つまり、T6のように「寸法の数字を直した」確認には、CADなんですは使えません。穴の位置や大きさ、図形の移動、画層の名前など、形に関わる直しの確認には使えます。

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

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

よくある質問

Q. ChatGPTでもできますか?
試していないので分かりません。方式A(DXFの中身を貼って、全文を書き直させる)は、どのAIでも使えるはずです。ただし、出力の上限は各サービスで違います。小さな例で、まず試してください。

Q. 元のファイルが壊れませんか?
どちらの方式も、元のファイルは書き換えず、別名で保存します。今回の実験でも、元のファイルは別に残していました。AIの直し方が間違っていても、元に戻せます。

Q. 大きなDXFは直せませんか?
今回の実験では、方式B(Pythonコード)なら、395KB(円3,000個)でも約10秒で直せました。ただ、Pythonを使える環境が要ります。使えない場合は、図面の一部を別ファイルに切り出して直す、CADソフトで直す、などの手があります。

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

まとめ

  • 小さなDXFなら、Claudeは頼んだ所だけを直せた(全文方式5回/5回、コード方式10回/11回)。穴径の変更では、8,038行のうち変わったのは1行だった
  • 全文を書き直させる方式は、48KBで2分以上、77KBで約4分、395KBはAIが断った。大きなファイルはコード方式が現実的
  • AIは頼んだことしかしない。直し漏れ(注記の穴数、中央の穴の位置など)は、頼まなければ直らない
  • 試したのはClaudeだけ、図面は筆者のダミー。「できそうだ」の確認であって、精度の保証ではない

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

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

この記事を書いた人

目次