Lisp実践編 - 19
こんにちは!
エカキオです!
文字位置を簡単に統一するLispです!
今回ご紹介するものはX軸に合わせるものです。
AutoCADで時短するには、ラフに入力する時とキッチリ位置を合わせる時のメリハリを付けることが重要です。
ぜひともご利用ください!
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
保存と利用方法はこちら。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;文字のX座標を揃える (defun c:XS ( / );ss1 p1 p2 p3 l1 cnt num et) (princ "¥n文字のX座標を揃える") (setq ss1(ssget (list (cons 0 "TEXT")))) (setq p1 (getpoint"¥n基点を指示:")) (setq cnt 0) (setq num (sslength ss1)) (command "undo" "be") (while (< cnt num) (setq l1(ssname ss1 cnt)) (setq et(entget l1)) (if (and (= 0 (cdr (assoc 72 et))) (= 0 (cdr (assoc 73 et))) ) (setq p2 (cdr(assoc 10 et))) ;選択文字の基点 (setq p2 (cdr(assoc 11 et))) );if (setq p3 (cons (car p1)(cdr p2))) ;変更後の文字基点 (command "move" l1 "" "non" p2 "non" p3) ; (setq et (subst (cons 10 p3) (assoc 10 et) et )) ; (entmod et) (setq cnt(1+ cnt)) ) (command "undo" "e") (princ) )
参考記事
AutoCAD Lisp 入門 - 2 - オブジェクトの情報を抽出 - 図描きの備忘録
AutoCAD Lisp 入門 - 10 - フィルターオブジェクト選択 - 図描きの備忘録
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。