【入門編】【実務中級者向け】保存前に「Zoom Extents(全体表示)」を強制実行:サムネイルの視認性を高める一括セーブ術 – AutoCAD VBA解析バイブル

スポンサーリンク

現場の「見え方」を支配せよ:Zoom Extents強制保存術

こんにちは。AutoCADの自動化という深淵な世界へようこそ。

現場で図面を管理していると、「エクスプローラーのプレビューが真っ黒で、何が描いてあるか分からない!」という経験はありませんか?あるいは、図面管理システムから目的の図面を探すのに、一つずつ開いて確認する無駄な時間を過ごしていませんか?

実は、AutoCADのファイル保存時のプレビュー画像は、「保存直前の表示領域(View)」がそのまま記録されます。つまり、最後に変なズーム位置で保存されたファイルは、誰にとっても「中身不明のブラックボックス」なのです。

今回は、VBAを使って「保存前に必ず全体表示(Zoom Extents)を行い、サムネイルを最適化する」という、実務の質を劇的に変える自動化テクニックを伝授します。

—

なぜ「マクロの記録」では限界があるのか

多くの人が「マクロの記録」ボタンから入門しますが、AutoCADのVBAには「記録」ボタンが存在しません。これは、AutoCADが単なるお絵描きツールではなく、「オブジェクトデータベース」を操作するエンジニアリング環境だからです。

保存というクリティカルな操作を制御するには、AutoCADのイベント(保存という動作をトリガーにする仕組み)を理解する必要があります。

—

実践コード:保存を自動制御する「心臓部」

このコードは、`ThisDrawing` モジュールに記述してください。AutoCADが「保存しようとした瞬間」を横取りして、強制的にZoom Extentsを実行してから上書き保存を完了させる魔法のロジックです。

‘ ThisDrawing モジュールに記述してください

Private Sub AcadDocument_BeginSave(ByVal FileName As String)
‘ 【重要】保存プロセスが開始される直前に介入するイベント

On Error GoTo ErrHandler

‘ 1. 現在のビューを全体表示に切り替える
‘ SendCommandは「コマンドラインに文字を入力する」のと同じ挙動です
ThisDrawing.SendCommand “_ZOOM” & vbCr & “_E” & vbCr

‘ 2. 再描画を強制し、視覚情報を確定させる
ThisDrawing.Regen acActiveViewport

Exit Sub

ErrHandler:
MsgBox “保存前の自動調整中にエラーが発生しました。” & vbCr & Err.Description
End Sub

コードの深掘り解説

  • `AcadDocument_BeginSave`: これは「イベントハンドラ」です。ユーザーが「保存」ボタンを押すたびに、AutoCADが自動的にこのコードを呼び出します。
  • `SendCommand “_ZOOM” & vbCr & “_E” & vbCr`:
  • なぜVBAのオブジェクト操作(`ZoomExtents`メソッド)を使わないのか?と疑問に思うかもしれません。実は、保存直前のタイミングでは、GUIの描画エンジンが不安定な場合があります。コマンドライン経由で命令を送ることで、最も確実かつ泥臭く「全体表示」を強制できます。`vbCr`はEnterキーを意味します。
  • `Regen`: これを忘れると、表示上のズームが内部データと同期せず、サムネイルが正しく更新されないことがあります。「見たままを保存する」ための仕上げです。

—

陥りやすい罠:無限ループの恐怖

初心者がやりがちなミスがあります。それは、`BeginSave`の中で「`ThisDrawing.Save`」と書いてしまうこと。

これをやると、「保存しようとする→保存イベントが発火する→保存しようとする…」という無限ループに陥り、AutoCADがクラッシュします。イベントハンドラの中では、あくまで「保存される直前の下準備」だけを行い、実際の保存処理自体はAutoCADのメインプロセスに任せるのが鉄則です。

—

この知見を「あなたの武器」にするために

今回紹介した手法は、単にプレビューを綺麗にするだけではありません。

  • 品質管理: 全ての図面が常に全体表示で開かれるため、作業者がどこかの隅っこにゴミオブジェクトを残していないか一目で確認できます。
  • 標準化: チーム全体の図面ルールを強制的に統一できます。

プロのエンジニアは、ツールを使うだけでなく、「ツールがどう振る舞うべきか」を定義します。

ここをクリアしたあなたは、もう「マクロを使う人」ではありません。「AutoCADの挙動を設計するエンジニア」の入り口に立っています。次に目指すべきは、この保存処理に加えて「図面プロパティの自動書き込み」や「不要レイヤーの削除」を組み合わせること。

あなたのデスクのAutoCADを、あなた専用の最高性能の自動化マシンへと育て上げていってください。応援しています。

タイトルとURLをコピーしました