CAD OCR 試作版 Ver.0.97c 2025/08/27
とりあえず、どんな感じか試すには、適当な図面を開いて、「切り取り」をクリック。
CAD 上で OCR 範囲の左上、右下の2点を指示。
切り取り範囲の画像が表示されて OCR が始まります。
しばらく待つと、OCR 結果がリストに表示されます。
「TEXT 挿入」をクリックすると、CAD 上に OCR 文字が作成されます。
文字高さ、角度は別にして、基点の位置はほぼ合っていると思います。
CAD をアクティブにして、[CTRL]+[Z] で挿入前に戻ります。
短い動画→:https://youtu.be/nmaSm8f5JO4
・スキャンした PDF(ラスタPDF)、
・CAD から出力された PDF (ベクタPDF)のうちストーロークフォントがポリラインに変換された PDF
・CAD 上の任意の範囲
・・・ OCR に使えます。
図面の微妙な回転を修正してから使って下さい。
OCR は Windows 11 標準の Snipping Tool のライブラリを使っています。
一括で文字角度の丸めが行えます。微妙な角度の文字列が無いのであれば、15°毎に丸めとか出来ます。
文字高さは、CAD 上で変更したほうが、速くて間違いが少ないです。
OCR 結果は、result.txt に保存されます。
TEXT は DXF ファイルを作成して、分解挿入しています。temp.dxf が作成されていれば、再利用できます。
一応、BricsCAD V26、IJCAD 2025、ZWCAD 2026、GstarCAD 2023, AutoCAD 2026 での動作を確認しています。
文字基点を画面中央に表示、オレンジ色の三角で位置を示す機能がありますが、CAD によって期待どおりには動きませんでした。
IJCAD, GstarCAD で画面中心ズームの位置が違うのを修正しています。
ZWCAD, AutoCAD で三角矢印が消える、動きが遅いときは、起動していない状態で、ini ファイルの
Zcad Sleep=300、Acad Sleep=200 の値を変更してみて下さい。
三角矢印が消えない程度の小さい値にしてください。
キャプチャ画像と、OCR 文字を比較しながら修正します。CAD 画面と比較するよりは、便利です。
画像が縦長の時は小さく表示されます。画像の下のほうにマウスを移動すると、スプリッターが表示されます。
スプリッターを下にドラッグすると、大きく表示されようになります。
スキャンした図面の OCR 結果です。図面の微妙な傾きは ROTATE R で補正しています。
紫色が作成した文字です。CADOCR 画層に作成されます。位置もほぼ合っています。文字基点は ML(左中)、横幅係数は 0.8 固定。
所々検出されていない文字や、基点、角度を間違えている文字があります。
回転した文字にも対応していますが、文字高さ、回転角度は正確ではありません。
「表示灯、ボタン」の文字が異常に大きいのは、縦書き文字(想定外)が原因のようです。
文字高さ、幅係数、削除されているスペースは、CAD で変更したほうが速いです。
手書き文字 の OCR 結果
Ver. 0.94
画像下部の OCR 表示、編集ボックスの右側の ">" を CAD 画面の中央に合わせておくと、
一度に3つの文字(画像、OCR、CAD 上)の確認がしやすくなります。「矢印」のチェックをオフにしておくと、画面移動が速くなります。
Ver.0.96
OCR 対象の文字範囲を「文字枠の色」で線分を描画し、OCR モレの文字を確認しやすくなりました。
「切り取り」後に、エクスプローラーが開き、画像ファイル名がアクティブになります。
ダブルクリックすると、関連付けられたプログラム(こちらでは、Photos.exe )が起動します。
※画像に関連付けするアプリとして、フォト(Photos)を登録しておくと、マウス操作が CAD ライクで使いやすくなります。
また、テキストアクション機能があり、OCR が使えます。
後から確認するときは、「画像確認」ボタンをクリックしてメニューから「OCR 後の...」を選択して下さい。
「画像確認」ボタンの使い道
たとえば、「画像確認」ボタンのメニューから「CAD からの切り取り画像,,,」をクリックして、関連付けられたアプリで画像を開きます。
こちらの環境では、ファイル名のダブルクリックでフォト( Phtos) が開きます。
下段の真ん中のアイコン「テキストアクション」をクリックします。
OCR された文字の背景色が変わります。
必要な文字をマウスドラッグで選択、または [CTRL]+[A] ですべてを選択して [CTRL]+[C] で、クリップボードに文字がコピーされます。
他には、ZWCAD 用として、切り取り画像から OCR 後の文字と思われる範囲を削除した画像ファイルを
作成できます。(画像のサイズは、2048 x 2048 以下に縮小されます)
そのファイルを ZWCAD にドラッグ&ドロップすると、「ベクトル化」の画像として使えるようになります。
が、こちらの図面では、期待したほどの成果は得られませんでした。表の罫線には有効化も知れません。
いずれにしても、尺度を合わせてトレースしたほうが、精度も良くて早くて確実・・・という結論です。
■ CADOCR の使い方
対象の PDF ファイル
・スキャンした PDF
・CAD から出力された PDF で SHX(ストロークフォント)が使われている PDF
(PDFIMPORT で文字が TEXT ではなくポリラインになっている)
その他、CAD 上の画像、文字
予め、PDFATTACH コマンドで PDF ファイルをアタッチしておきます。
画像(PNG、JPG)ファイルの時は、IMAGEATTACH です。
スキャンした図面の時は、微妙に傾いているので、ROTATE .. R(参照)で補正。
尺度用紙サイズに合わせておくと、文字高さが確認しやすくなります。
アタッチした PDF、画像 が不要になった時は、CAD 上の PDF、画像を削除。
XREF でアタッチ解除を行って下さい。
1. [CAD] ボタンで対象の CAD を変更。
2. CAD 画面を対象の範囲が見えるように適当にズーム。
3. [切り取り] ボタンをクリック。
4. CAD 上で切り取り範囲の左上コーナーの座標を指示。
5. 右下コーナーの座標を指示。
※マウスドラッグでは無くて2点の座標指示です。
しばらく待つと、OCR 結果が一覧で表示されます。
文字の角度は微妙な数値なので、これを丸めます。
[角度丸め] ボタンの右横の数値を変更して、[角度丸め] をクリックすると、すべての
角度が丸められます。
文字の角度が、水平、垂直のみであれば、90 にします。
CAD 上の文字の角度が水平だけの時に、リストの角度が 90、270 に近い値になっている
ときは、基点と文字の方向を間違えているので、CAD 上で何かマークを付けておいて、
あとで修正して下さい。
文字数が 2 以上で「文字高さ >= 文字幅 x 1.4」の時は、自動で補正しています。
文字数が 1 または文字数が少なくて文字幅が小さい時に間違えるようです。
リストの項目名をクリックすると、昇順でソートされて見つけやすくなります。
元の順に戻すには No. をクリックします。
位置と文字高さは、「TEXT 挿入」後に CAD 上で変更して下さい。
リスト上でマウスをスクロールすると、一行ずつの画像と OCR 結果が表示されます。
これを比較し、画像下の OCR 文字を編集して下さい。不要な文字は削除して下さい。
例えば、破線の一部が数字の 1 に、小さい円が O に変換されたりします。
画像下の編集ボックスで [Enter] キーを押すと、次の行に移動します。
[Shift] + [Enter] キーで1つ前の行に移動します。
リスト内のキー操作も同様ですが、一度リスト内の文字編集モードになります。
文字確定のために [Enter] キーを押す必要があります、
文字の編集は、画像下の編集ボックスだけでなく、リスト内のセルで [Enter] キーを押す
と編集できるようになります。
今のところ、UNDO 機能はありません。「再読み込み」ボタンで OCR 直後に戻ります。
対象の文字の CAD 上で確認したいときは、「中央」のチェックをオンにします。
画像下部の OCR 表示、編集ボックスの右側の ">" を CAD 画面の中央に合わせておくと、
一度に3つの文字(画像、OCR、CAD 上)の確認がしやすくなります。
「矢印」のチェックをオフにしておくと、画面移動が速くなります。
「矢印」のチェックがオンのときは、画面中央が文字位置になり、オレンジ色の三角で示されます。
CAD によって、画面移動が遅かったり三角が表示されなかったりします。
画面移動が遅すぎる場合は、必要時にのみオンにして下さい。
ZWCAD, AutoCAD で三角矢印が消える、動きが遅いときは、起動していない状態で、ini ファイルの
Zcad Sleep=300、Acad Sleep=200 の値を変更してみて下さい。
三角矢印が消えない程度の小さい値にしてください。
※ARES では、異なる位置に描画されます。
[TEXT 挿入] ボタンをクリックすると、CADOCR 画層に TEXT が作成されます。
CAD 上で文字高さと横幅係数を変更して下さい。
Ver.0.96、 Ver.0.97a
OCR 対象の文字範囲を「文字枠の色」で線分を描画し、OCR モレの文字を確認しやすくなりました。
「切り取り」後に、関連付けられたプログラム(こちらでは、Photos.exe )が起動します。
後から確認するときは、「画像確認」ボタンをクリックしてメニューから「OCR 後の...ライン描画」
を選択して下さい。
Ver.0.97
OCR 後の文字の範囲を切り取り画像から削除(塗りつぶし)した画像の作成を追加しました。
「画像確認」ボタンをクリックして、メニューから「OCR 後の...白色で塗りつぶし」、または
「OCR 後の...黒色で塗りつぶし」を選択してください。
背景が黒色のときは、ZWCAD の「ベクトル化の構成」から設定を変更するか、新規作成で追加する
必要があります。
Ver.0.97a
画像表示を関連付けられたアプリで開くに変更
Ver.0.97b
切り取り画像サイズが 2048x2048 以下の時、塗りつぶし画像ファイルが作成されないのを手直し
■ 使用ライブラリ
Windows11 SnippingTool OCR from commandline
https://b1tg.github.io/post/win11-oneocr/
上記の C# ラッパー(Apache-2.0 license)
https://github.com/ksasao/SnippingToolOcrSharp
SnippingToolOcr.dll
■ ファイル構成
・CADOCR.exe : プログラム本体
CAD 画面を切り取り、PNG ファイルを作成。それを起動オプションとして SnippingToolOcrText.exe を起動。
OCR 結果を result.txt で受けとり、フォームに一覧表示しています。
・ReadMe.txt : 説明ファイル
・TargetCAD_APIVersion.txt : CAD ごとの ProgID(プログラム識別子) のリスト
・CADOCR.ini : 終了状態保存ファイル(自動作成)
・source.png : CAD から切り取ったキャプチャ画像(自動作成)
・source.png : キャプチャ画像(「切り取り」時に自動で作成)
・resultLN.png : OCR 対象の文字範囲を確認するための画像(「切り取り」時に自動で作成)
・resultBK.png : OCR 対象の文字範囲を黒色で塗りつぶした画像(必要であれば、「切り取り」後に手動で作成)
・resultWH.png : OCR 対象の文字範囲を白色で塗りつぶした画像(必要であれば、「切り取り」後に手動で作成)
・result.txt : OCR 結果ファイル(自動作成)
・temp.dxf : TEXT 作成用一時 DXF ファイル(自動作成)
R12 形式の DXF ファイルです。他の CAD での読み込み、挿入に使えます。
再利用の方法は、ご自由に・・・。
・CADOCR.tsv : result.txt を CAD 座標に変換したタブ区切りファイル(自動作成)(プログラム内では使用していません)
1 行目 = 1 ピクセルあたりの CAD 上の距離 : 切り取り画像の W, H : CAD 上の左下 X,Y 座標
2 行目以降 = 文字列 : 文字を囲う切り取り画像上の 4 点の X,Y 座標の繰り返し : CAD の 4 点の X,Y
座標の繰り返し
-------------
・SnippingToolOcrText.exe : SnippingToolOcrSharp のソースをこちらでコンパイルしたものです。
同じフォルダ内の PNG, JPG ファイルを SnippingToolOcrText.exe にドラック&ドロップすると、
result.txt が作成されます。単体でも使えます。
・SnippingToolOcr.dll : C# ラッパー(Apache-2.0 license)
-------------
以下、Windows 11 の SnippingTool.exe のフォルダからコピーしてください。
SnippingTool.exe と同じフォルダ内の 3 つのファイル
・oneocr.dll
・oneocr.onemodel
・onnxruntime.dll
を CADOCR.exe と同じフォルダ(正確には SnippingToolOcrText.exe と同じフォルダ)にコピーしてください。
こちらの環境での SnippingTool.exe のインストールフォルダは
C:\Program Files\WindowsApps\Microsoft.ScreenSketch_11.2506.25.0_x64__8wekyb3d8bbwe\SnippingTool でした。
Snipping Tool を起動中に、タスクバーを右クリック。タスクマネージャーを起動。
アプリの一覧から >Snipping Tool を探し、先頭の > をクリック。SnippingTool.exe を右クリック。
ポップアップメニューから「ファイルの場所を開く」をクリックすると、インストールフォルダが開きます。
■ 著作権、制限事項
使用しているライブラリの著作権は、それぞれの作者、企業が所有しています。
本ツールの著作権は、作者 f.izawa が所有し、これを主張します。
本ツールを使用したことによる事故、損害等の一切について、作者はその責を負いません。
使用される方の責任において、使用して下さい。
高解像度 DPI 環境で作成しています。他の環境での検証はしておりません。
■ ダウンロード
Windows 11 で使えます。
Ver.0.97c : 切り取り後、画像表示で不要なメッセージが表示されるのを削除
http://www.izawa-web.com/zip/CADOCR_20250827.zip
http://www.izawa-web.com/zip/CADOCR_20250827.7z
http://www.izawa-web.com/zip/CADOCR_20250827.tar
※ いずれも oneocr.dll、oneocr.onemodel、onnxruntime.dll は、同梱していません。
※ 以前のバージョンを使われている場合は、CADOCR.exe と ReadMe.txt だけを上書きコピーしても使えます。
■ 履歴
Ver.0.90 2025/08/17
初版作成
Ver.0.91 2025/08/17a
IJCAD, GstarCAD で画面の中央ズームの位置が違うのを対策
Ver.0.91a 2025/08/17b
ZWCAD で文字位置の三角矢印が消えるため、INI ファイルに Zcad Sleep=500 を追加
Ver.0.91b 2025/08/17c
IJCAD のバージョンによって OSMODE の復帰ができないのを対策
Ver.0.92 2025/08/18
文字枠に文字基点の描画を追加
文字数が 2 以上で「文字高さ >= 文字幅 x 1.4」の時、基点を自動で補正するを追加
ソートを修正、座標丸めを追加、リスト数字表示を整理
Ver.0.92a 2025/08/18a
文字基点の X 座標が文字列幅の 1/2 ずれるのを手直し
Ver.0.93 2025/08/20
AutoCAD で BMPOUT が実行できない(直前のキャンセル発行がエラーになっていた)のを対策
Ver.0.93a 2025/08/20a
TAB 区切りファイルの出力を追加
Ver.0.93b 2025/08/20b
AutoCAD での三角矢印の描画と遅延の設定を追加
Ver.0.94 2025/08/21
矢印描画のチェックボックスを追加
Ver.0.95 2025/08/23
文字編集ボックスでの[Enter]、[Shift]+[Enter] で対象行の移動を追加
Ver.0.96 2025/08/25
OCR 後の OCR 対象文字の確認画像の作成を追加
Ver.0.97 2025/08/26
OCR 後の OCR 対象文字範囲の塗りつぶし画像の作成を追加
Ver.0.97a 2025/08/26
画像表示を関連付けられたアプリで開くに変更
Ver.0.97c 025/08/27
切り取り後、画像表示で不要なメッセージが表示されるのを削除
■ 謝辞
SnippingTool ライブラリについて GitHub に公開して下さった方々に感謝いたします。
AutoCAD 2025 での動作状況を教えて下さった LUNE 様に感謝いたします。
■ 作者連絡先
e-mail : f.izawa@dream.com
URL : http://www.izawa-web.com