図描きの備忘録

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

Lisp実践編 - 29 - 全レイアウト空間の同一位置に貼り付け

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 入門編 カテゴリーの記事一覧 - 図描きの備忘録

実践編コードの共通事項

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

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


最速攻略AutoCAD VB.NETマクロサンプル大全集AutoCAD2009/2010/2011/2012/2013対応

最速攻略AutoCAD VB.NETマクロサンプル大全集AutoCAD2009/2010/2011/2012/2013対応

Related Posts Plugin for WordPress, Blogger...