Lisp実践編 - 29
こんにちは!
エカキオです!
レイアウト空間ってどれぐらい利用されていますか?
レイアウト空間を利用することで、色々な尺度の図面を配置したりすることが出来ます。
ただ、難点なのがレイアウト空間が複数ページある場合に同じものを貼り付けたい場合、わざわざレイアウトを変えて貼り付けを繰り返さなければなりません。
そこでこのLispは、同じオブジェクトを同じ座標で全てのレイアウトに貼り付けてくれるLispになります。
ぜひともご利用ください!
そのままコピーして、好きなコマンド・好きなファイル名にしていただいても構いません。
保存と利用方法はこちら。
AutoCAD Lisp 入門 - 1 - 最強の時短ツール「Lisp」とは - 図描きの備忘録
コード
;全レイアウト空間の同じ位置に貼付 (defun c:lv( / ja p1 ss num cnt l1) (princ "¥n全レイアウト空間の同じ位置に貼付") (initget 1 "y n") (setq ja (getkword "¥n実行しますか?はい(Y)/いいえ(N)")) (if (= ja "y") (progn (setq p1 (getpoint "¥n基点を指定:")) (setq ss (ssget)) (command "copybase" p1 ss "") (command "undo" "be") (command "erase" ss "") (setq num (length(layoutlist))) (setq cnt 0) (while (< cnt num);;カウンターがレイアウトの数まで (setq l1 (nth cnt (layoutlist))) (command "layout" "s" l1) (command "PASTECLIP" p1) (setq cnt (1+ cnt)) );while (command "undo" "e") );progn ) (princ) )
参考記事
実践編コードの共通事項
最上段には、コメントを入れています。
こちらのLispは何を目的にしているかを一目で判断するためです。
また、「(defun c:※※ ()」の直下には、
(princ "¥n〜")を入れることで、コマンド実行の際も、コマンドの目的がわかりやすくなっています。(たくさん作ってると後々忘れてしまいます。)
※こちらのLispは自己責任でお使い下さい。万が一、AutoCADがフリーズ、強制終了
した場合など不慮の事故が起きた場合も当ブログでは責任を負いかねます。
まずは何もないデータなどで、使用感を確かめてから使用することをお勧めします。