CADOCR.exe Ver.0.97e 2025/12/15

■ 概要

　・スキャンした PDF
　・CAD から出力された PDF でストーロークフォントがポリラインに変換された PDF
　・CAD 上の画像
　・CAD 上の文字
　の OCR に使えます。
　図面の微妙な回転を修正してから使って下さい。
　尺度は元の用紙サイズに合わせておくと、文字サイズがイメージしやすいです。
　
　OCR は Windows 11 標準の Snipping Tool の「テキストアクション」で使われている
　ライブラリを使用しています。
　このため、提供ファイルにはライブラリを同梱していません。
　ご自身で、ライブラリを追加する必要があります。
　
　一括で文字角度の丸めが行えます。
　微妙な角度の文字列が無いのであれば、15°毎に丸めとか出来ます。
　文字高さは、CAD 上で変更したほうが速くて間違いが少ないです。
　
　OCR 結果は、result.txt に保存されます。
　TEXT は DXF ファイルを作成して、分解挿入しています。temp.dxf が作成されていれば、
　再利用できます。
　
　一応、BricsCAD V20、V26、IJCAD 2025、ZWCAD 2026、GstarCAD 2023, AutoCAD 2026, 
　ARES 2026 での動作を確認しています。

　文字基点を画面中央に表示、オレンジ色の三角で位置を示す機能がありますが、CAD に
　よって期待どおりには動きませんでした。

　ZWCAD 用として、切り取り画像から OCR 後の文字と思われる範囲を削除した画像ファイルを
　作成できます。（画像のサイズは、2048 x 2048 以下に縮小されます）
　そのファイルを ZWCAD にドラッグ＆ドロップすると、「ベクトル化」の画像として使えるよう
　になります。

　※確認用画像の作成は、「切り取り」後の元画像と OCR 結果のファイルから作成されます。
　　どちらかが変更されると、正しい結果にはなりません。
　　例えば、画像ファイルを SnippingToolOcrText.exe に画像ファイルをドラッグ＆ドロップ
　　したときは、OCR 結果のファイルだけが更新され、「切り取り」後の元画像と合わなくなります。
　
■ 使い方

　対象の PDF ファイル
　・スキャンした PDF
　・CAD から出力された PDF で SHX（ストロークフォント）が使われている PDF
　　(PDFIMPORT で文字が TEXT ではなくポリラインになっている)

　予め、PDFATTACH コマンドで PDF ファイルをアタッチしておきます。
　画像（PNG、JPG）ファイルの時は、IMAGEATTACH です。
　スキャンした図面の時は、微妙に傾いているので、ROTATE .. R（参照）で補正。
　尺度用紙サイズに合わせておくと、文字高さが確認しやすくなります。

　アタッチした PDF、画像 が不要になった時は、CAD 上の PDF、画像を削除。
　XREF でアタッチ解除を行って下さい。

　1. [CAD] ボタンで対象の CAD を変更。
　2. CAD 画面を対象の範囲が見えるように適当にズーム。
　3. [切り取り] ボタンをクリック。
　4. CAD 上で切り取り範囲の左上コーナーの座標を指示。
　5. 右下コーナーの座標を指示。
　※マウスドラッグでは無くて２点の座標指示です。

　しばらく待つと、OCR 結果が一覧で表示されます。

　文字の角度は微妙な数値なので、これを丸めます。
　[角度丸め] ボタンの右横の数値を変更して、[角度丸め] をクリックすると、すべての
　角度が丸められます。
　文字の角度が、水平、垂直のみであれば、90　にします。
　
　CAD 上の文字の角度が水平だけの時に、リストの角度が 90、270 に近い値になっている
　ときは、基点と文字の方向を間違えているので、CAD 上で何かマークを付けておいて、
　あとで修正して下さい。

　文字数が 2 以上で「文字高さ >= 文字幅 x 1.4」の時は、自動で補正しています。
　文字数が 1 または文字数が少なくて文字幅が小さい時に間違えるようです。

　リストの項目名をクリックすると、昇順でソートされて見つけやすくなります。
　元の順に戻すには No. をクリックします。

　位置と文字高さは、「TEXT 挿入」後に CAD 上で変更して下さい。

　リスト上でマウスをスクロールすると、一行ずつの画像と OCR 結果が表示されます。
　これを比較し、画像下の OCR 文字を編集して下さい。不要な文字は削除して下さい。
　例えば、破線の一部が数字の 1 に、小さい円が O に変換されたりします。

　画像下の編集ボックスで [Enter] キーを押すと、次の行に移動します。
　[Shift] + [Enter] キーで１つ前の行に移動します。

　リスト内のキー操作も同様ですが、一度リスト内の文字編集モードになります。
　文字確定のために [Enter] キーを押す必要があります、

　文字の編集は、画像下の編集ボックスだけでなく、リスト内のセルで [Enter] キーを押す
　と編集できるようになります。

　今のところ、UNDO 機能はありません。「再読み込み」ボタンで OCR 直後に戻ります。

　対象の文字の CAD 上で確認したいときは、「中央」のチェックをオンにします。

　画像下部の OCR 表示。編集ボックスの右側の ">" を CAD 画面の中央に合わせておくと、
　画像、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
　画像表示を関連付けられたアプリで開くに変更

■ 使用ライブラリ

　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 : キャプチャ画像（「切り取り」時に自動で作成）

　・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 で使えます。
　http://www.izawa-web.com/zip/CADOCR_20250827.zip
　※ 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 2026 で BMPOUT ができない（直前のキャンセルがエラーになる）のを対策
　Ver.0.93a 2025/08/20a TAB 区切りファイルの出力を追加
　Ver.0.93b 2025/08/20b AutoCAD での三角矢印の描画と遅延の設定を追加
　Ver.0.93c 2025/08/20c ARES 2026 にて動作確認（基本的な変更なし）
　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.97b 2025/08/26  切り取り画像サイズが 2048x2048 以下の時、塗りつぶし画像ファイルが作成されないのを手直し
　Ver.0.97c 2025/08/27  不要な "savebmp2" のダイアログが表示されるのを手直し
　Ver.0.97d 2025/11/19  OCR 後の OCR 対象文字の確認画像の表示を取りやめ
　Ver.0.97e 2025/12/15  「画像確認」ボタンで OCR 後の OCR 対象文字の確認画像が表示されないのを手直し
　　　　　　　　　　　　nanoCAD 5 専用版 NCADOCR.exe を追加
■ 謝辞

　SnippingTool ライブラリについて GitHub に公開して下さった方々に感謝いたします。

　AutoCAD 2025 での動作状況を教えて下さった LUNE 様に感謝いたします。

■ 作者連絡先
 
　e-mail : f.izawa@dream.com
　URL : http://www.izawa-web.com

