【入門編】【初心者向け】図面内の「点(Point)」の表示形式を一括変更!システム変数 PDMODE と PDSIZE のVBA制御 – AutoCAD VBA解析バイブル

スポンサーリンク

AutoCAD VBAで「点」を支配せよ:PDMODEとPDSIZEで図面の視認性を劇的に改善する

こんにちは。AutoCADの自動化の世界へようこそ。

「図面に点を打ったはずなのに、どこにあるか分からない」「点が小さすぎて選択すらできない」……そんなストレスを感じたことはありませんか?

AutoCAD初学者が最初にぶつかる壁の一つが、この「点(Point)の表示」です。実は、AutoCADの『点』は、単なるドットではなく、システム変数によってその姿形を自在に変えることができる「カメレオン」のような存在なのです。

今回は、VBAを使ってこの設定を一括制御し、作業効率を劇的に高める「点スタイル最適化ツール」の作り方を解説します。これができるようになれば、AutoCADの「設定の自動化」という強力な武器を手に入れたも同然です。

なぜ「システム変数」をVBAで扱うのか?

AutoCADには数多くの設定がありますが、それらは「システム変数」という形で管理されています。
中でも、点の表示に関わるのが以下の2つです。

  • PDMODE(点モード): 点の形状(単なる点なのか、×印なのか、円で囲むのか)を決めます。
  • PDSIZE(点サイズ): 点の大きさを決めます。

普段はコマンドラインで入力しているこれらの設定をVBAで制御するメリット。それは、「どんな図面を開いても、一瞬で自分好みの作業環境を構築できる」という点にあります。マクロの記録を超え、AutoCADという巨大なエンジンを直接操作する第一歩です。

開発の準備:AutoCAD VBAの基本構成

まず、VBAのコードを書く前に、AutoCADのオブジェクトモデルを少しだけ理解しましょう。

1. AcadApplication: AutoCADそのもの。
2. AcadDocument: 現在開いている図面ファイル。
3. SetVariable: システム変数を書き換えるための魔法のメソッド。

これさえ押さえておけば、大抵の自動化は可能です。

実践:点スタイルを一括変更するVBAコード

以下のコードをVBAエディタ(`Alt + F11`)に貼り付けてみてください。このコードは、現在アクティブな図面の点スタイルを「×印」かつ「画面サイズに対して5%の大きさ」に変更します。

Sub SetPointStyleOptimized()
‘ AutoCADのオブジェクトを定義
Dim acadApp As AcadApplication
Dim activeDoc As AcadDocument

‘ アプリケーションと図面の参照を取得
Set acadApp = ThisDrawing.Application
Set activeDoc = ThisDrawing

‘ エラーハンドリング:万が一の事故を防ぐための防壁
On Error GoTo ErrorHandler

‘ PDMODEの設定(3は「×」印)
‘ 0:点, 1:何も表示しない, 2:+, 3:X, 4:|
activeDoc.SetVariable “PDMODE”, 3

‘ PDSIZEの設定(負の値は画面サイズに対するパーセンテージ)
‘ -5 は画面サイズの5%という意味
activeDoc.SetVariable “PDSIZE”, -5

‘ 変更を反映するために再描画(Regen)を実行
activeDoc.Regen acActiveViewport

MsgBox “点スタイルを最適化しました!”, vbInformation, “完了”

Exit Sub

ErrorHandler:
MsgBox “エラーが発生しました: ” & Err.Description, vbCritical
End Sub

コードの重要ポイントを解説

1. `SetVariable` メソッド:
これがVBAでシステム変数をいじるための標準的な命令です。「何という変数を」「どんな値にするか」を引数で渡すだけで、AutoCADの設定が書き換わります。
2. PDSIZEに「負の値」を使う理由:
ここがプロの知恵です。正の値を指定すると「固定サイズ」になりますが、図面を拡大縮小するたびに点が見えなくなったり巨大化したりして不便です。マイナス値を指定すると「画面表示サイズに対する相対的な大きさ」になるため、常に快適な視認性を維持できます。
3. `Regen` (再描画):
システム変数を変えただけでは、画面上の表示が更新されないことがあります。忘れずに `Regen` を呼び出すのが、エンジニアとしての配慮です。

陥りやすい罠と対策

初学者がよくやる失敗が「変数の型指定忘れ」「図面が開いていない状態での実行」です。

  • エラー対策: 上記のコードには `On Error GoTo` を入れています。これがあるだけで、万が一図面が開いていない時や、権限の問題で変数が変更できない時に、プログラムが強制終了してAutoCADごと落ちるのを防げます。
  • 「動かない?」と思ったら: まずはコマンドラインで `PDMODE` と入力し、値が変わっているか確認してください。もし変わっていれば、コードは正しく動いています。その場合は `Regen` が足りていない可能性が高いです。

次のステップへ

いかがでしたか?

たった数行のコードですが、これであなたは「AutoCADの挙動を自分の手でコントロールする」という感覚を掴んだはずです。

これがマスターできれば、次は「画層(Layer)の一括作成」「ブロックの自動挿入」「図面情報のCSV出力」といった、より高度な自動化の世界へ進めます。

「ここをもっと自動化したい」「こんな操作はできないか?」という疑問が湧いたら、それがあなたのエンジニアとしての成長の証です。いつでもまた、この場所へ聞きに来てくださいね。あなたのAutoCADライフが、もっと快適でクリエイティブなものになりますように!

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