Lisp実践編 - 17
こんにちは!
エカキオです!
みなさん文字を編集する時は、どのような手段をとっていますか?
ダブルクリック?
プロパティダイアログで編集?
後者では複数の文字編集が可能ですね。
今回は、そんな文字編集をコマンドラインで一括処理するLispを紹介です。
こちらのLispの最大の魅力はコマンドラインで処理できる事です。
- ダブルクリックもとても便利ですが、一文字ずつしか出来ない
- プロパティダイアログでは「内容」部分にカーソルを合わせる作業が発生
等々、シンプルではありません。
そんな痒いところに手が届くLispになっているかと思います。
ぜひとも利用してみてください。
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
保存と利用方法はこちら。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;文字一括変更 (defun c:TE( / ss1 cnt num l1 et p1 t1 ) (princ "¥n文字一括変更") (setq ss1(ssget (list (cons -4 "<OR")(cons 0 "MTEXT")(cons 0 "TEXT")(cons -4 "OR>")))) (setq cnt 0) (setq num (sslength ss1)) (initget 1) (setq t1 (getstring"¥n変更後の文字を入力:")) (command "undo" "be") (while (< cnt num) (setq l1(ssname ss1 cnt)) (setq et(entget l1)) (setq et (subst (cons 1 t1) (assoc 1 et) et )) (entmod et) (setq cnt(1+ cnt)) ) (command "undo" "e") (princ) )
参考記事
AutoCAD Lisp 入門 - 2 - オブジェクトの情報を抽出 - 図描きの備忘録
AutoCAD LISP 入門 - 5 - オブジェクトの情報を書き換える - 図描きの備忘録
AutoCAD Lisp 入門 - 7 - 繰り返し処理 - 図描きの備忘録
AutoCAD Lisp 入門 - 10 - フィルターオブジェクト選択 - 図描きの備忘録
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。
キーワード
テキスト,文字編集,一括,コマンドライン,text