[討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
+2
judyyai
hoodpinrh0829
6 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
想請問有在寫lisp的前輩們一個小小的問題,
lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
以圖層為主,如我的圖層有 0、1、2、3、4、5
,我的圖面上6個圖層各有一個物<物件不分外型尺寸>,
可是我不要2、3、5圖層及物件。
只留0,1,4的圖層及物件。
我從圖元表搞起,搞到我要瘋了。
可以請前輩給點建議嗎?
lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
以圖層為主,如我的圖層有 0、1、2、3、4、5
,我的圖面上6個圖層各有一個物<物件不分外型尺寸>,
可是我不要2、3、5圖層及物件。
只留0,1,4的圖層及物件。
我從圖元表搞起,搞到我要瘋了。
可以請前輩給點建議嗎?
hoodpinrh0829- 一般會員
- 文章總數 : 76
年齡 : 42
來自 : 桃園
職業 : 板金
愛好 : 到處走走
個性 : 內向
使用年資 : 5年以上
使用版本 : 2019
經驗值 : 4317
威望值 : 0
注冊日期 : 2014-02-27
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
lsp不會
PURGE 可以清除(但前提是 沒有使用才可以)
PURGE 可以清除(但前提是 沒有使用才可以)
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30397
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
judyyai 寫到:lsp不會
PURGE 可以清除(但前提是 沒有使用才可以)
這個指令我知道
我要用這個指令之前都要一個一個去刪除我不要的物件,
再用指令PU去刪除不要的東西。
我不想一個一個去刪除物件,我想請教前輩們有沒有什麼方向讓我自己去試著寫LISP。
最好可以選用窗選的方式刪除物件。
hoodpinrh0829- 一般會員
- 文章總數 : 76
年齡 : 42
來自 : 桃園
職業 : 板金
愛好 : 到處走走
個性 : 內向
使用年資 : 5年以上
使用版本 : 2019
經驗值 : 4317
威望值 : 0
注冊日期 : 2014-02-27
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
可以使用laydel指令,選擇圖面物件,即可「刪除該物件」及「清除圖層」。
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
那請問 可以刪除圖檔內所有關閉或凍結的圖層及物件嗎?
奶茶- 初級會員
- 文章總數 : 54
年齡 : 48
來自 : 台南
職業 : 施工圖
愛好 : 上網
個性 : 開朗
使用年資 : 10年
使用版本 : AUTOCAD 2014
積分 : 2
經驗值 : 5943
威望值 : 30
注冊日期 : 2009-03-11
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
奶茶 寫到:那請問 可以刪除圖檔內所有關閉或凍結的圖層及物件嗎?
請試著自己動手試試看喔~
就知道結果
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30397
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
是啊!可以自己直接測試看看!judyyai 寫到:奶茶 寫到:那請問 可以刪除圖檔內所有關閉或凍結的圖層及物件嗎?
請試著自己動手試試看喔~
就知道結果
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
hoodpinrh0829 寫到: 想請問有在寫lisp的前輩們一個小小的問題,
lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
以圖層為主,如我的圖層有 0、1、2、3、4、5
,我的圖面上6個圖層各有一個物<物件不分外型尺寸>,
可是我不要2、3、5圖層及物件。
只留0,1,4的圖層及物件。
我從圖元表搞起,搞到我要瘋了。
可以請前輩給點建議嗎?
可以......但是這要讓我從何說起??
這功能不簡單.........
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
leoneriol 寫到:hoodpinrh0829 寫到: 想請問有在寫lisp的前輩們一個小小的問題,
lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
以圖層為主,如我的圖層有 0、1、2、3、4、5
,我的圖面上6個圖層各有一個物<物件不分外型尺寸>,
可是我不要2、3、5圖層及物件。
只留0,1,4的圖層及物件。
我從圖元表搞起,搞到我要瘋了。
可以請前輩給點建議嗎?
可以......但是這要讓我從何說起??
這功能不簡單.........
前輩
你可以慢慢說 我會用心聽底
你說給我聽也可以讓學AUTOLISP的新手多一份智識
hoodpinrh0829- 一般會員
- 文章總數 : 76
年齡 : 42
來自 : 桃園
職業 : 板金
愛好 : 到處走走
個性 : 內向
使用年資 : 5年以上
使用版本 : 2019
經驗值 : 4317
威望值 : 0
注冊日期 : 2014-02-27
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
hoodpinrh0829 寫到:
前輩
你可以慢慢說 我會用心聽底
你說給我聽也可以讓學AUTOLISP的新手多一份智識
那我建議你先從抓取出圖面上所有的圖層名稱開始著手......
先讓自己能用程式取得所有圖層名稱並存取起來準備利用.....
這是第一步
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
剛剛想了想.....覺得自己似乎辭不達意......
這樣說好了,
雖然說您所提出的例子有些簡單,
簡單到我會去好奇您為何要做這個程式,
比如說你有五十個以上的圖層,
每個圖層中的物件繁多,
依照你所提的需求來看,
只要正確的選到要關閉的那個圖層的物件,
就可以取得圖層名稱,
就可以關閉或刪除圖層,
那麼蘋果爸所說的指令....laydel(刪除)
或layfrz(凍結)圖層二工具列中的功能就已經很直接的達到您的需求了.....
還是說你只是單純想知道凍結圖層的寫法?
這樣說好了,
雖然說您所提出的例子有些簡單,
簡單到我會去好奇您為何要做這個程式,
比如說你有五十個以上的圖層,
每個圖層中的物件繁多,
依照你所提的需求來看,
只要正確的選到要關閉的那個圖層的物件,
就可以取得圖層名稱,
就可以關閉或刪除圖層,
那麼蘋果爸所說的指令....laydel(刪除)
或layfrz(凍結)圖層二工具列中的功能就已經很直接的達到您的需求了.....
還是說你只是單純想知道凍結圖層的寫法?
- 代碼:
(command "-layer" "f" "2,3,5" "")
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
隔離物件
ISOLATEOBJECTS
選取的物件留下(可多選),其餘隱藏
隱藏物件
HIDEOBJECTS
選取的物件隱藏
結束物件隔離(隱藏)
UNISOLATEOBJECTS
或UNHIDE
把隔離或隱藏的物件全部顯示
以上3個功能在功能表:工具/隔離
而蘋果爸所說的laydel,用法很簡單,你真的可以自己試試,以下是我的操作心得:
方法一:
直接選取物件,一次只能選取一個物件,可以選取0圖層和使用中圖層,但它會告訴你不能刪這二個圖層
方法二:
輸入N,會有一個小功能表出現(如圖),而且它只顯示可以刪除的圖層(0和使用中圖層不會出現在功能表中),個人認為方法二會更好用
我覺得你要的功能都在這裡,不必再費心去寫LISP來代替這麼好用的內定功能了,把心力放在其他的功能上,一樣可以學習LISP
ISOLATEOBJECTS
選取的物件留下(可多選),其餘隱藏
隱藏物件
HIDEOBJECTS
選取的物件隱藏
結束物件隔離(隱藏)
UNISOLATEOBJECTS
或UNHIDE
把隔離或隱藏的物件全部顯示
以上3個功能在功能表:工具/隔離
而蘋果爸所說的laydel,用法很簡單,你真的可以自己試試,以下是我的操作心得:
方法一:
直接選取物件,一次只能選取一個物件,可以選取0圖層和使用中圖層,但它會告訴你不能刪這二個圖層
方法二:
輸入N,會有一個小功能表出現(如圖),而且它只顯示可以刪除的圖層(0和使用中圖層不會出現在功能表中),個人認為方法二會更好用
我覺得你要的功能都在這裡,不必再費心去寫LISP來代替這麼好用的內定功能了,把心力放在其他的功能上,一樣可以學習LISP
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6089
威望值 : 359
注冊日期 : 2011-06-16
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
幾個有關於圖層的功能讓你參考
一.開啟某個圖層
二.關閉某個圖層
三.開關圖層
使用方法:就像ON/OFF,當輸入的圖層是開著的則會關掉,而關掉的圖層會打開
一.開啟某個圖層
- 代碼:
;DJH_003.lsp
;開啟某個圖層
;可以直接選物件參考其圖層,也可以直接輸入圖層名
(defun C:DJH_003(/ LAY)
(graphscr)
(setvar "CMDECHO" 0)
(setq LAY (getstring "\n輸入要開啟的圖層:"))
(while (/= LAY "")
(command "LAYER" "ON" LAY "U" LAY "")
(setq LAY (getstring "\n輸入要開啟的圖層:"))
)
(princ)
)
二.關閉某個圖層
- 代碼:
;DJH_004.lsp
;關閉某個圖層
;可以直接選物件參考其圖層,也可以直接輸入圖層名
(defun C:DJH_004(/ CLAY L1 LAY)
(graphscr)
(setq CLAY (getvar "CLAYER"))
(setvar "CMDECHO" 0)
(setq L1 (entsel "\n直接選取圖形 < Enter:輸入要關閉的圖層名稱 Esc:結束 >:"))
(if (= L1 nil)
(setq LAY (getstring "\n輸入要關閉的圖層名稱:"))
(setq LAY (cdr (assoc 8 (entget (car L1)))))
)
(while (/= LAY "")
(cond
((= LAY CLAY) (command "LAYER" "OFF" LAY "Y" "LO" LAY ""))
((/= LAY CLAY) (command "LAYER" "OFF" LAY "LO" LAY ""))
)
(setq L1 (entsel "\n直接選取圖形 < Enter:輸入要關閉的圖層名稱 Esc:結束 >:"))
(if (= L1 nil)
(setq LAY (getstring "\n輸入要關閉的圖層名稱:"))
)
)
(princ)
)
三.開關圖層
使用方法:就像ON/OFF,當輸入的圖層是開著的則會關掉,而關掉的圖層會打開
- 代碼:
;DJH_172.lsp
;開關圖層
(defun C:DJH_172(/ CLAY LAY LL DATA1 DATA2)
(graphscr)
(setvar "CMDECHO" 0)
(setq CLAY (getvar "CLAYER"))
(setq LAY (getstring "\n輸入要開關的圖層名稱:"))
(while (/= LAY "")
(setq
LL (tblsearch "LAYER" LAY)
DATA1 (cdr (caddr LL));70群碼
DATA2 (cdr (cadddr LL));62群碼
)
(if (or (and (= DATA1 0)(< DATA2 0))(/= DATA1 0))(command "LAYER" "ON" LAY "U" LAY ""))
(if (and (= DATA1 0)(> DATA2 0))(progn
(cond
((= LAY CLAY) (command "LAYER" "OFF" LAY "Y" "LO" LAY ""))
((/= LAY CLAY) (command "LAYER" "OFF" LAY "LO" LAY ""))
)
))
(setq LAY (getstring "\n輸入要開關的圖層名稱:"))
)
(princ)
)
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6089
威望值 : 359
注冊日期 : 2011-06-16
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
djh1006 大哥好強~!!!裡面好多我能借鏡學習的東西~!!!感恩~!!!!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9152
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
djh1006 寫到:隔離物件
ISOLATEOBJECTS
選取的物件留下(可多選),其餘隱藏
隱藏物件
HIDEOBJECTS
選取的物件隱藏
結束物件隔離(隱藏)
UNISOLATEOBJECTS
或UNHIDE
把隔離或隱藏的物件全部顯示
以上3個功能在功能表:工具/隔離
而蘋果爸所說的laydel,用法很簡單,你真的可以自己試試,以下是我的操作心得:
方法一:
直接選取物件,一次只能選取一個物件,可以選取0圖層和使用中圖層,但它會告訴你不能刪這二個圖層
方法二:
輸入N,會有一個小功能表出現(如圖),而且它只顯示可以刪除的圖層(0和使用中圖層不會出現在功能表中),個人認為方法二會更好用
我覺得你要的功能都在這裡,不必再費心去寫LISP來代替這麼好用的內定功能了,把心力放在其他的功能上,一樣可以學習LISP
前輩你好 這個用我用過了,但不好用。
hoodpinrh0829- 一般會員
- 文章總數 : 76
年齡 : 42
來自 : 桃園
職業 : 板金
愛好 : 到處走走
個性 : 內向
使用年資 : 5年以上
使用版本 : 2019
經驗值 : 4317
威望值 : 0
注冊日期 : 2014-02-27
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
djh1006 寫到:幾個有關於圖層的功能讓你參考
一.開啟某個圖層
- 代碼:
;DJH_003.lsp
;開啟某個圖層
;可以直接選物件參考其圖層,也可以直接輸入圖層名
(defun C:DJH_003(/ LAY)
(graphscr)
(setvar "CMDECHO" 0)
(setq LAY (getstring "\n輸入要開啟的圖層:"))
(while (/= LAY "")
(command "LAYER" "ON" LAY "U" LAY "")
(setq LAY (getstring "\n輸入要開啟的圖層:"))
)
(princ)
)
二.關閉某個圖層
- 代碼:
;DJH_004.lsp
;關閉某個圖層
;可以直接選物件參考其圖層,也可以直接輸入圖層名
(defun C:DJH_004(/ CLAY L1 LAY)
(graphscr)
(setq CLAY (getvar "CLAYER"))
(setvar "CMDECHO" 0)
(setq L1 (entsel "\n直接選取圖形 < Enter:輸入要關閉的圖層名稱 Esc:結束 >:"))
(if (= L1 nil)
(setq LAY (getstring "\n輸入要關閉的圖層名稱:"))
(setq LAY (cdr (assoc 8 (entget (car L1)))))
)
(while (/= LAY "")
(cond
((= LAY CLAY) (command "LAYER" "OFF" LAY "Y" "LO" LAY ""))
((/= LAY CLAY) (command "LAYER" "OFF" LAY "LO" LAY ""))
)
(setq L1 (entsel "\n直接選取圖形 < Enter:輸入要關閉的圖層名稱 Esc:結束 >:"))
(if (= L1 nil)
(setq LAY (getstring "\n輸入要關閉的圖層名稱:"))
)
)
(princ)
)
三.開關圖層
使用方法:就像ON/OFF,當輸入的圖層是開著的則會關掉,而關掉的圖層會打開
- 代碼:
;DJH_172.lsp
;開關圖層
(defun C:DJH_172(/ CLAY LAY LL DATA1 DATA2)
(graphscr)
(setvar "CMDECHO" 0)
(setq CLAY (getvar "CLAYER"))
(setq LAY (getstring "\n輸入要開關的圖層名稱:"))
(while (/= LAY "")
(setq
LL (tblsearch "LAYER" LAY)
DATA1 (cdr (caddr LL));70群碼
DATA2 (cdr (cadddr LL));62群碼
)
(if (or (and (= DATA1 0)(< DATA2 0))(/= DATA1 0))(command "LAYER" "ON" LAY "U" LAY ""))
(if (and (= DATA1 0)(> DATA2 0))(progn
(cond
((= LAY CLAY) (command "LAYER" "OFF" LAY "Y" "LO" LAY ""))
((/= LAY CLAY) (command "LAYER" "OFF" LAY "LO" LAY ""))
)
))
(setq LAY (getstring "\n輸入要開關的圖層名稱:"))
)
(princ)
)
謝謝前輩的幫助,第一、三種方式是我想要的。
我可能還會再做一些些的修改,非常感謝前輩的相助。
感恩!!!!!
hoodpinrh0829- 一般會員
- 文章總數 : 76
年齡 : 42
來自 : 桃園
職業 : 板金
愛好 : 到處走走
個性 : 內向
使用年資 : 5年以上
使用版本 : 2019
經驗值 : 4317
威望值 : 0
注冊日期 : 2014-02-27
回復: [討論]lisp可以刪除或關閉某些我不需要的圖層及物件嗎?
希望大家分享彼此的學習成果,一起成長
這些也是一路以來,網上各位前輩的心血結晶,經過他們的無私分享,再偷偷改成適合自己工作的程式,歡迎自行修改應用
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6089
威望值 : 359
注冊日期 : 2011-06-16
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章