図描きの備忘録

日々の業務の時間短縮。残業しないで帰る事を目指し、悪戦苦闘中。AutoCAD、Lisp、効率化、自動化、合理的、プログラミング、資産運用勉強中

Lisp実践編 - 22 - 選択順に末尾番号を振る

Lisp実践編 - 22

こんにちは!

エカキオです!

皆さんは図面作成の色々なシーンで、文字に番号を付けて行くことはありますか?


今回のLispは、選択したオブジェクト順に番号を振っていくLispになります。
デフォルトでは、末尾番号のタイプを3パターン作りました。

コードの中の「strcat」に続く部分を改変してもらえれば変更可能です。

  • ( ※ )
  • - ※
  • _ ※

※は数字

ぜひともご利用ください!

そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
保存と利用方法はこちら。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録


コード

;文字の末尾に番号を振っていく(選択順)
(defun c:kn ( / ja eset cnt h1 num tmpl ed t1 t2 ty )
	(princ "¥n文字の末尾に番号を振っていく(選択順)")
	(initget "1 2 3")
	(setq ty (getint"¥n番号のタイプ (*):1/ -*:2/ _*:3"))
      (setq eset(ssget (list (cons 0 "TEXT"))))
      (setq cnt 0)
      (setq num (sslength eset))
           (while (< cnt num)
		(setq tmpl (ssname eset cnt))
		(setq ed (entget tmpl))
		(setq t1 (cdr(assoc 1 ed)))
		(cond 
			((= ty 1)(setq t2 (strcat t1 "(" (rtos (1+ cnt) 2 0) ")")))
			((= ty 2)(setq t2 (strcat t1 "-" (rtos (1+ cnt) 2 0))))
			((= ty 3)(setq t2 (strcat t1 "_" (rtos (1+ cnt) 2 0))))
			(t)
		)
		(setq ed (subst (cons 1 t2) (assoc 1 ed) ed)) 
		(entmod ed)  
		(setq cnt (1+ cnt))
	   )
	(princ)
)

参考記事

AutoCAD Lisp 入門 - 2 - オブジェクトの情報を抽出 - 図描きの備忘録

AutoCAD Lisp 入門 - 7 - 繰り返し処理 - 図描きの備忘録

AutoCAD Lisp 入門 - 8 - 文字連結 - 図描きの備忘録

AutoCAD Lisp 入門 - 9 - 複数の選択肢の条件式 - 図描きの備忘録

AutoCAD Lisp 入門 - 10 - フィルターオブジェクト選択 - 図描きの備忘録

実践編コードの共通事項

最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)

※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。

Related Posts Plugin for WordPress, Blogger...