図描きの備忘録

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

Lisp実践編 - 23 - ポリライン減算

Lisp実践編 - 23

こんにちは!

エカキオです!

以前、合算についてLispで簡単処理を紹介しましたが、減算についても作成してみました。


ekakio.hatenablog.jp

基本的には合算と同じ使い方です!

削られる元を選んでから削りたいオブジェクトを選びます!


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

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


コード

;減算
(defun c:BA ( / ss1 ss2 s1 s2 la)
	(princ "¥nポリライン減算")
        (setq ss1(ssget(list (cons 0 "LWPOLYLINE"))))
        (setq ss2(ssget(list (cons 0 "LWPOLYLINE"))))
	(command "undo" "be")

	(setq la (getvar "clayer"))
	(setvar "clayer" (cdr(assoc 8 (entget(ssname ss1 0)))));選択1のレイヤー取得

	(setq sy1 (getvar "PEDITACCEPT"));ポリライン設定の取得
	(setvar "PEDITACCEPT" 1)

	(command "REGION" ss1 "")
	(setq s1 (entlast))
	(command "REGION" ss2 "")
	(setq s2 (entlast))
	(command "SUBTRACT" s1 "" s2 "")
	(command "EXPLODE" "l")
	(command "pedit" "m" "p" "" "j" "" "")

	(setvar "clayer" la);レイヤー戻す
	(setvar "PEDITACCEPT" sy1)

	(command "undo" "e")
        (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...