[分享]快速刪除物件(LISP)
[分享]快速刪除物件(LISP)
大家好!
好久不見!
送上自己寫的LISP...
好久不見!
送上自己寫的LISP...
- 代碼:
; [AutoCAD EXTEND] QUICK ERASE(BY LAYER ERASE OBJECT).
; [AutoCAD "指令"功能延伸] 快速刪除(依圖層刪除物件)。
; 支援軟體版本("AutoCAD")
; 設計者:Devin,Chou
; 版權所有,歡迎使用
; Rev.1(2016/11/03)
(defun C:qe (/ L_X ss
lc_s L_s
lc_m m_lt m_in m_o L_mt L_m )
(setvar "cmdecho" 0 )
(initget "S M" )
(setq L_X
(getkword
(strcat "\n刪除模式[單一圖層(S)/多圖層(M)]<S>:" )))
(if (= L_X nil )
(setq L_X "S" )) ; if.end
(if (= L_X "S" )
(setq lc_s 0 )) ; if.end
(if (= L_X "M" )
(setq lc_m 0 )) ; if.end
(while (= lc_s 0 )
(setq L_s
(assoc 8
(entget
(car
(entsel "\n請選取要刪除物件的圖層:" )))))
(princ "\n圖層:" )(princ (cdr L_s ))
(setq lc_s 1 )) ; while-lc_s.end
(while (= lc_m 0 )
(setq m_lt '() m_in 0 )
(princ "\n請選取要刪除物件的圖層(多圖層):" )
(setq m_o (ssget ))
(repeat (sslength m_o )
(setq L_mt
(assoc 8
(entget
(ssname m_o m_in ))))
(princ "\n圖層:" )(princ (cdr L_mt ))
(setq m_lt (cons L_mt m_lt ))
(setq m_in
(1+ m_in ))) ; repeat.end
(setq L_m
(cons '(-4 . "<OR")
(reverse
(cons '(-4 . "OR>") m_lt ))))
(setq lc_m 1 )) ; while-lc_m.end
(princ "\n請選取要刪除的物件:" )
(if (= L_X "S" )
(setq ss (ssget (list L_s )))) ; if.end
(if (= L_X "M" )
(setq ss (ssget L_m ))) ; if.end
(command "ERASE" ss "" )
(prin1)
) ; end
(princ "\nC:qe")
(prin1)
- 附件
devinchou- 初級會員
- 文章總數 : 55
年齡 : 43
來自 : 基隆
職業 : 鋼筋檢料
愛好 : 寫作.閱讀.烹飪
個性 : 懶小孩一枚
使用年資 : 每天
使用版本 : 2006.2008
積分 : 3
經驗值 : 2747
威望值 : 174
注冊日期 : 2015-02-15
yingjen likes this post
回復: [分享]快速刪除物件(LISP)
devinchou 寫到:大家好!
好久不見!
送上自己寫的LISP...

回復: [分享]快速刪除物件(LISP)
感謝大大分享! 很需要這個!
asd601023- 一般會員
- 文章總數 : 9
年齡 : 24
來自 : 台中
職業 : 鈑金加工
愛好 : 發呆
個性 : 隨和
使用年資 : 1
使用版本 : 2016
經驗值 : 162
威望值 : 0
注冊日期 : 2020-12-22
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章