図面内のバルーン(風船文字)や、通り芯、ロット番号などを配置するとき、手動で「1」「2」「3」と入力していくのは面倒ですよね。
今回は、ARES / AutoCADで「クリックする毎に+1」しながら、文字の位置合わせ(左、中央、中央中など)も自由に選んで連続記入できる便利なLISPプログラムをご紹介します。
ARES特有のロードエラー(「最初の引用符がありません」など)を完全に回避した安全設計のコードです。
1. カウントアップ記入LISPコード
まずは、以下のコードをすべてコピーしてください。全角文字による文字化けバグを防ぐため、システムメッセージはすべて安全な半角英数字で構成しています。
;; メイン処理の関数定義(安全な半角英数字構成)
(defun mycountupprocess ()
(princ "\n--- Count Up LISP ---")
;; 1. 初期値の設定(開始番号:1)
(if (not global:num)
(setq global:num 1)
)
;; ユーザーに開始番号を確認
(setq start_num (getint (strcat "\nStart No. <" (itoa global:num) ">: ")))
(if start_num
(setq global:num start_num)
)
;; 2. 文字の高さの設定(初期値: 2.5)
(if (not global:hgt)
(setq global:hgt 2.5)
)
(setq txt_height (getreal (strcat "\nText Height <" (rtos global:hgt 2 2) ">: ")))
(if txt_height
(setq global:hgt txt_height)
)
;; 3. 位置合わせ(ジャスティフィケーション)の選択
(if (not global:just)
(setq global:just "C")
)
(initget "Left Center Right Middle TL TC TR ML MC MR BL BC BR")
(setq opt (getkword (strcat "\nJustify [L/C/R/M/TL/TC/TR/ML/MC/MR/BL/BC/BR] <" global:just ">: ")))
(if opt
(setq global:just opt)
)
;; 4. クリック操作のループ(Escキーまたは右クリック/Enterで終了)
(while (setq pt (getpoint "\nClick point (Enter/Esc to exit): "))
(setq str_num (itoa global:num))
;; ARESのTEXTコマンドを使って文字を作図
(if (or (= global:just "Left") (= global:just "L"))
(command "._TEXT" pt global:hgt 0 str_num)
(command "._TEXT" "_J" global:just pt global:hgt 0 str_num)
)
;; カウントを+1する
(setq global:num (1+ global:num))
)
(princ "\nFinished.")
(princ)
)
;; あらゆる表記パターンのコマンド名にメイン処理を紐付ける
(defun c:cnum () (mycountupprocess))
(defun c:CNUM () (mycountupprocess))
(defun c:CountUpCreate () (mycountupprocess))
2. 使い方とコマンドオプション
LISPがロードできたら、コマンドラインに cnum(大文字の CNUM でも可)と入力して Enter を押します。
- Start No. <1>: 開始したい番号を入力して Enter(そのまま1から始める場合はEnterのみ)。
- Text Height <2.5>: 図面の縮尺に合わせて文字の高さを入力して Enter。
-
Justify [L/C/R...]: 文字の位置合わせの基準点を指定します。
L: 左C: 中央(下中央)MC: 中央中(丸や四角の枠線、図枠のど真ん中に配置したいときはこれ!)
- Click point: 画面上をクリックするごとに、1、2、3... と自動的にカウントアップしながら数字が記入されてしていきます。
- 終了方法: 配置が終わったら、キーボードの Enter、Esc、またはマウスの右クリックで安全に終了できます。
💡 応用アドバイス
もし「毎回位置合わせを選ぶのが面倒」という場合は、コード内の (setq global:just "C") の部分を、よく使う "MC"(中央中)などに書き換えておけば、毎回 Enter を押すだけでお好みの配置に固定できてさらに作業が爆速になります。ぜひお試しください!
