Lisp実践編 - 10
こんにちは!
エカキオです!
今回は面積の単位を変換するLispをご紹介します。
図面上の情報を使って、PCに計算させますので、コードの内容を間違えない限りはエラーは起こらないはずです。
PCは正確ですから、ヒューマンエラーはありません。
ヒューマンエラーが起きるとしたら、Lispの内容ですので、自分を責めてくださいね。
ご紹介する単位としては、選択した数値を㎡から坪に変換してくれるツールです。
当然複数のオブジェクトを同時に処理できます。
コードの内容の計算式や、接頭語、接尾語を変えれば、自分の扱いやすいLispになること間違いなしです。
ぜひともご利用ください。
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;㎡→坪に (defun c:mtt ( / eset cnt num tmpl ed t1 ); (princ "\n㎡→坪に変換(×0.3025)") (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))) (setq t1 (* (atof t1) 0.3025)) ;文字を実数に変換して、倍率をかける (setq t1 (rtos t1 2 3));文字に戻す (setq ed (subst (cons 1 t1) (assoc 1 ed) ed)) (entmod ed) (setq cnt (1+ cnt)) ) (princ) )
参考記事
AutoCAD Lisp 入門 - 3 - よく使うコマンド処理を登録する - 図描きの備忘録
AutoCAD LISP 入門 - 5 - オブジェクトの情報を書き換える - 図描きの備忘録
AutoCAD Lisp 入門 - 7 - 繰り返し処理 - 図描きの備忘録
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。