図面よみ中小企業のAI導入支援|図面の読み取り・管理・見積もりの自動化から図面の読み取り・版管理 専門

コラム読み取りと検索の技術

図面のDXF・PDF・TIFFで、読み取りの違いは?同じ架空図面20枚で比べた

図面のDXF・PDF・TIFFで、読み取りの違いは?(記事の表紙)

図面の読み取りの違いは、文字が「文字のデータ」として残っているかで決まります。DXFとCADから書き出したPDFは文字をそのまま取り出せるのでOCR(画像の文字を読む技術)が要らず、スキャンのTIFFは画像なのでOCRと読み違いの確認が要ります。図面よみが同じ架空図面20枚で比べると、200項目のうちDXF(記号の変換後)とPDFは全部、TIFFは70.0〜79.5%を正しく取り出せました。(2026年10月時点)

全体の流れと読める項目は読み取りの進め方のページにまとめています。

要点

  • DXFと文字の層があるPDFは、架空図面20枚の200項目をすべて正しく取り出せ、1枚0.10秒でした。
  • スキャン相当のTIFFをOCRで読むと、正しく取り出せたのは200項目の70.0〜79.5%で、1枚7〜8秒かかりました。
  • TIFFでは直径の記号を「0」と読み、「φ16H7」を自信の値0.99で「016H7」と返しました。
  • DXFでも、直径の「%%c」などの制御コードを変換しないと、200項目のうち70.0%しか合いません。
  • 届いた図面は、まず形式と文字の層の有無で振り分け、OCRが要る図面だけ人の確認に回します。
目次
  1. 図面の形式で、読み取りはどう違うのですか?
  2. 同じ図面20枚を形式ごとに読ませると、どれくらい差が出ましたか?
  3. DXFなら、文字はそのまま正しく取れるのですか?
  4. CADから書き出したPDFなら、OCRは要らないのですか?
  5. スキャンのTIFFでは、どこを読み違えましたか?
  6. 形式がばらばらな図面は、どう振り分ければよいですか?
  7. STEPなどの3Dデータも一緒に届いたら、どう扱いますか?
  8. このサイトで相談するには?
  9. よくある質問

図面の形式で、読み取りはどう違うのですか?

違いは、文字が「文字のデータ」として残っているかどうかです。DXFとCADから書き出したPDFは文字をそのまま取り出せるので、OCRは要りません。スキャンのTIFFは画像です。OCRで読み、人が読み違いを確かめる手間が加わります。

同じ架空図面20枚を形式ごとに保存し、図番・材質・公差など10項目(計200項目)を取り出して比べました。文字が残る形式は全部取れて、画像の形式は7〜8割にとどまり、時間も70倍以上かかりました。読み取り全体の流れは読み取りの進め方にまとめています。

形式 中に入っているもの OCR 200項目の正解率(%) 1枚の秒数(中央値)
DXF(制御コードを変換) 線と文字のデータ 不要 100.0 0.10
PDF(文字の層あり) 線と文字のデータ 不要 100.0 0.10
PDF(文字が線) 線だけ 必要 0.0(OCRなし) 0.12
TIFF 300dpi グレー 画像 必要 70.0 7.26
TIFF 200dpi 白黒 画像 必要 79.5 8.49

同じPDFでも、文字が線になっていると、文字の層がないので取り出せる文字は0字でした。形式の名前だけでなく、中身を見て振り分ける必要があります。

同じ図面20枚を形式ごとに読ませると、どれくらい差が出ましたか?

文字が残る形式は200項目すべてを1枚0.10秒で取り出せました。TIFFのOCRは70.0〜79.5%で、1枚7.26〜8.49秒かかりました。差がついたのは、直径の記号を含む寸法と注記です。

図面はPythonで作った架空の部品図(A4横)で、右下に表題欄を置きました。読むのは表題欄の6項目と、外形寸法(例:80±0.1)・穴(例:6-φ9)・はめあい(例:φ16H7)・注記です。

TIFFは、文字の層のあるPDFを300dpiのグレーと、傾きと汚れを足した200dpiの白黒にしました。OCRは社外に送らないRapidOCR(PP-OCRv5)です。ノートPC(Ryzen 7 7735U、CPUのみ)で動かしました。

同じ架空図面20枚を6つの形式・条件で読んだ結果の横棒グラフ。DXF(制御コードを変換)とPDF(文字の層)は200項目の100%を0.10秒で取り出し、TIFFのOCRは70.0〜79.5%で1枚7.26〜8.49秒
図1 形式ごとの正解率と1枚あたりの秒数。図面よみの実験(架空の図面20枚、2026年10月)。秒数は実行したPCでの実測で、PCが変われば変わります。

取り出しの中心は数行です。DXFはezdxf、PDFはPyMuPDFを使いました。

doc = ezdxf.readfile(path)   # DXF:文字の要素を集め、書式と制御コードを外す
lines = [ln for e in doc.modelspace().query('TEXT MTEXT') for ln in e.plain_text().split('\n')]
text = fitz.open(pdf)[0].get_text()   # PDF:文字の層をそのまま読む
result = ocr(np.asarray(Image.open(tif).convert('RGB')))   # TIFF:OCRで読む

限界もあります。図面は1種類の様式で、文字はMSゴシックだけです。客先のCADや書体、手書きの書き込みが入れば、TIFFの結果はさらに変わります。乱数の種を固定しているので同じ図面を作り直せます。コードは相談のときにお見せします。

DXFなら、文字はそのまま正しく取れるのですか?

取れますが、CADの制御コードを変換しないと記号の入った寸法が合いません。直径の記号は「%%c」、±は「%%p」という文字列でDXFに入っているからです。変換しないまま読むと、200項目のうち70.0%しか合いませんでした。

外れたのは、外形寸法・穴・はめあいの3項目です。たとえば「φ16H7」は「%%c16H7」のまま取り出されます。ezdxfの plain_text() を通すと、制御コードと書式のコードが外れ、全200項目が合いました。

変換した後にも、もう1つ注意があります。ezdxf 1.4.4で変換した直径の記号は、ギリシャ文字のφではなくラテン文字の「Ø」でした。台帳で「φ」と打っている会社なら、照合の前に記号をそろえる処理を1行入れます。

複数行の注記(MTEXT)は、改行や書体の指定が文字列に混ざりますが、plain_text() で外れます。DWGは試していないので、ここでの結果はDXFに限った話です。

CADから書き出したPDFなら、OCRは要らないのですか?

文字の層が残っていれば要りません。ただ、書き出し方によっては文字が線(字の形の図形)になり、文字の層が残りません。この実験では、同じDXFを文字を線にしてPDFにすると、20枚とも取り出せた文字は0字でした。

文字の層があるPDFは、DXFと同じく200項目すべてを1枚0.10秒で取り出せました。PyMuPDFの公式ドキュメントも、OCRが要るページの目安を挙げています。ページ全体が画像で覆われている場合と、文字の代わりに小さな図形が数千並ぶ場合です。

見分け方は簡単です。PDFを開いて、図番の文字を選択できるか、検索で見つかるかを試します。選択できなければ、そのPDFはスキャンのTIFFと同じ扱いにして、OCRに回します。

書き出し方は客先ごとにほぼ決まっているので、最初の1枚で確かめて台帳に残しておきます。

スキャンのTIFFでは、どこを読み違えましたか?

いちばん多かったのは、直径の記号を数字の「0」と読む誤りです。「6-φ9」は「6-09」など、「φ16H7」は「016H7」になり、穴とはめあいは2つの条件とも20枚中0枚でした。表題欄の図番・品名・材質・表面処理・版数・尺度は、どちらの条件でも全部読めています。

架空図面の部品の周りをTIFF 300dpiグレーと200dpi白黒で切り出した図。どちらもOCRが6-φ9を6-09、φ16H7を016H7と、自信の値0.98〜0.99で読んでいる
図2 直径の記号の読み違い。「φ16H7」を、OCRは自信の値0.99で「016H7」と返しました。自信の値だけでは、この誤りを拾えません。

困るのは、OCRが自信の値0.99で「016H7」と返したことです。自信の低い所だけを人が見る仕組みでは、この誤りは素通りします。私が仕組みを作るときは、寸法の欄に決まりを足します。「数字が0で始まる」「穴数-径の形が崩れている」に当てはまれば、要確認に回します。

注記の「C0.5」は、200dpiで1枚だけ「CO.5」になりました。300dpiでは20枚とも「角」の後ろに余計な「I」が入り、注記の正解率は200dpiより低くなりました。解像度を上げても、誤りの出方が変わるだけのことがあります。

形式がばらばらな図面は、どう振り分ければよいですか?

まず形式で分け、PDFは文字の層の有無で分けます。文字が残る図面はOCRを通さずに取り出し、画像の図面だけをOCRと人の確認に回します。図面よみでは、受け取りの入口でこの振り分けをすることを、仕組みの最初の一歩にしています。

届いた図面をDXF・PDF・TIFFに分け、PDFは文字の層の有無で分ける流れ図。DXFと文字の層ありのPDFはOCRなしで取り出し、文字の層なしのPDFとTIFFはOCRで読んで要確認を人が見る
図3 届いた図面の振り分け。文字の層のないPDFは、スキャンのTIFFと同じ道に回します。
  1. 拡張子で、DXF・PDF・TIFFやJPEGに分ける
  2. DXFは制御コードを変換して文字を取り出し、直径の記号をそろえる
  3. PDFは文字の層があるかを確かめ、あれば文字をそのまま取り出す
  4. 文字の層のないPDFと画像は、OCRで読んで、寸法の決まりに合わない項目を要確認にする
  5. 客先ごとに、届く形式と文字の層の有無を台帳に残す

届く図面のうち画像の割合が分かれば、確認にかかる手間の大きさも見えてきます。方式ごとの比べ方は図面管理システムの比べ方に書いています。

STEPなどの3Dデータも一緒に届いたら、どう扱いますか?

2D図面と図番で結び付けて保管し、読み取りは2D図面から行います。見積と加工に使う材質・公差・表面粗さ・表面処理は、2D図面の表題欄と注記に書かれていることが多いからです。客先によっては、2D図面のPDFと一緒にSTEPやIGESの3Dデータを送ってくることがあります。

3Dデータに寸法や公差の注記を入れて渡す客先もあります。その場合も、2D図面と食い違いがないかを人が確かめます。どちらを正とするかは、客先との取り決めに従います。

3Dデータが役に立つのは、形で似た図面を探すときです。外形の大きさや体積のように、2D図面の画像からは取りにくい値を、3Dデータからは計算で取り出せます。今回の実験では3Dデータは試していないので、形で探す方法は類似図面検索の記事とあわせて読んでください。

届くもの 図面よみでの使い道 結び付け方
2D図面(DXF・PDF・TIFF) 図番・材質・公差・注記を読む 台帳の1行の元
3Dデータ(STEP・IGES) 形で似た図面を探す、外形の大きさを取り出す 同じ図番・版数の行に、ファイルの置き場所を足す

このサイトで相談するには?

客先から届く図面の形式に合わせて、読み取りの入口を作れます。図面よみの無料で相談するからどうぞ。何をどう頼むか決まっていなくても大丈夫で、準備は要りません。図面をお見せいただかなくても、御社のやり方に合わせて進め方を一緒に考えます。

よくある質問

DWGで届いた図面も、文字をそのまま取り出せますか?
この実験ではDWGを試していません。客先のCADでDXFに書き出してもらえれば、この記事と同じ方法で文字を取り出せます。
PDFに文字の層があるかは、どう見分けますか?
PDFを開いて、図番の文字を選択や検索できるか試します。選択できなければ、文字が線か画像になっていて、OCRが要ります。
スキャンは300dpiにすれば十分ですか?
十分とは限りません。この実験では300dpiのグレーが70.0%、200dpiの白黒が79.5%で、差は注記の1項目の読み違いから出ました。
客先にDXFで送ってもらうよう頼むべきですか?
頼める客先には効果があります。CADデータを出さない方針の客先もあるので、文字の層を残したPDFで送ってもらうだけでもOCRが要らなくなります。

出典

  1. ezdxf 公式ドキュメント「MText」(plain_text は書式コードを除いた文字を返す)(2026年10月16日確認)
  2. ezdxf 公式ドキュメント「Text」(2026年10月16日確認)
  3. ezdxf 公式ドキュメント「Tutorial for Getting Data from DXF Files」(エンティティの query)(2026年10月16日確認)
  4. PyMuPDF 公式ドキュメント「OCR - Optical Character Recognition」(OCRが要るページの見分け方)(2026年10月16日確認)
  5. PyMuPDF 公式ドキュメント「Text」(文字の取り出し)(2026年10月16日確認)
  6. 図面よみの実験(2026年10月16日)。架空の部品図20枚をDXF・PDF2種・TIFF2種で保存し、10項目の取り出しと処理秒数を比べた。ezdxf 1.4.4、PyMuPDF 1.27.2、RapidOCR 3.6.0(PP-OCRv5)。コードは相談のときにお見せします(2026年10月16日確認)