*[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
+6
天空的雲
danz
mars
Tiger&蘋果爸
eric管
Sugar
10 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
*[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
主題回顧 :
公司最近在做"圖層與圖塊的整合",新的圖檔裡,不能有其他不屬於這個圖檔的圖層存在
但我在執行刪除時,遇到了兩個問題,請各位大大來幫我解答~感謝!!
1.當圖層不能刪除時,可能是A.為目前的圖層 B.此圖層含有圖塊或物件 ,此圖層非為目前圖層時,我用工具下的"快速選取"來看這圖層裡有含哪些圖塊或物存,但搜尋後為"0項目",遇到這樣的狀況時 我想請教各位大大 要如何解決才能順利刪除不必要的圖層?
2.昨日我在刪除圖層時有2個圖層無法刪除,我開啟另一個新檔,將此圖檔裡的所有圖塊 線條複製過去,發生了兩個狀況:
A.那兩個無法刪除的圖層不見了!
B.貼複後,執行"XREF"指令--->載入圖框 出現"此圖塊已存在" **錯誤** , 外部參考的對話視窗裡 卻沒有此圖框的檔名存在!
小妹想了兩天 找不出答案 望各位大大不吝指點,謝謝>"<
公司最近在做"圖層與圖塊的整合",新的圖檔裡,不能有其他不屬於這個圖檔的圖層存在
但我在執行刪除時,遇到了兩個問題,請各位大大來幫我解答~感謝!!
1.當圖層不能刪除時,可能是A.為目前的圖層 B.此圖層含有圖塊或物件 ,此圖層非為目前圖層時,我用工具下的"快速選取"來看這圖層裡有含哪些圖塊或物存,但搜尋後為"0項目",遇到這樣的狀況時 我想請教各位大大 要如何解決才能順利刪除不必要的圖層?
2.昨日我在刪除圖層時有2個圖層無法刪除,我開啟另一個新檔,將此圖檔裡的所有圖塊 線條複製過去,發生了兩個狀況:
A.那兩個無法刪除的圖層不見了!
B.貼複後,執行"XREF"指令--->載入圖框 出現"此圖塊已存在" **錯誤** , 外部參考的對話視窗裡 卻沒有此圖框的檔名存在!
小妹想了兩天 找不出答案 望各位大大不吝指點,謝謝>"<
judyyai 在 2011-03-28, 12:59 作了第 5 次修改 (原因 : 編輯主旨為[問題])
Sugar- 初級會員
- 文章總數 : 57
年齡 : 45
來自 : Taiwan
職業 : 繪圖員
個性 : 樂天派
積分 : 1
經驗值 : 5829
威望值 : 0
注冊日期 : 2008-12-08
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
ㄚ勳 寫到:我的作法是這樣的
我把所需要的圖層和圖
重新拷貝在開一個新的!
然後貼上存檔!原始的砍掉!
就這樣!就不會出現一些奇奇怪怪的圖層了
如果要一個個找出來很困難!我也不知道怎麼找!
我當初有試過一個個開開關關的!
之後部分可以刪除!部分不能刪除!
所以那不能刪除部分我再猜就跟圖層無關!可能跟其他有關
因此我就用最簡單的方式!拷貝、開新檔!貼上!就這樣
感謝分享方法 1
*****************************************************
*恭喜您升等為 初級會員,即日起可以瀏覽功能、資源分享區。記得實現互助精神,有空也來分享一下~*
「說明」顧問論壇等級權限
http://autocad.bestoforum.net/forum-f6/topic-t1403.htm
Tiger&蘋果爸 在 2009-02-10, 12:22 作了第 1 次修改 (原因 : 升等初級會員)
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
附上一個將各個圖層wblock出去的lisp程式,方便檢查問題
先將圖檔copy到一新的資料中,開啟圖檔之後,再將此lisp程式載入,執行指令是lw
(ps.此板本我是應用在2004,2008的話我不知道wblock指令的回應方式是否有不同,各位大大們試一下吧..)
;
;將各個圖層內的物件wblock出去
;
(defun c:lw2 ()
(setq dwg_fix (getvar "DWGPREFIX"))
(SETQ lay (tblnext "layer" t))
(while (/= lay nil)
(setq lay_da '() lay_date nil)
(setq lay_2 (cdr (assoc 2 lay))) ;;圖層名稱(字串)
(setq sel_layer (ssget "x" (list(cons 8 lay_2))))
(if (/= sel_layer nil)
(progn
(command "-wblock" (strcat dwg_fix lay_2) "" "0,0,0" sel_layer "")
)
)
(SETQ lay (tblnext "layer"))
)
)
(princ "\n 將各個圖層內的物件wblock出去 指令:lw2")
先將圖檔copy到一新的資料中,開啟圖檔之後,再將此lisp程式載入,執行指令是lw
(ps.此板本我是應用在2004,2008的話我不知道wblock指令的回應方式是否有不同,各位大大們試一下吧..)
;
;將各個圖層內的物件wblock出去
;
(defun c:lw2 ()
(setq dwg_fix (getvar "DWGPREFIX"))
(SETQ lay (tblnext "layer" t))
(while (/= lay nil)
(setq lay_da '() lay_date nil)
(setq lay_2 (cdr (assoc 2 lay))) ;;圖層名稱(字串)
(setq sel_layer (ssget "x" (list(cons 8 lay_2))))
(if (/= sel_layer nil)
(progn
(command "-wblock" (strcat dwg_fix lay_2) "" "0,0,0" sel_layer "")
)
)
(SETQ lay (tblnext "layer"))
)
)
(princ "\n 將各個圖層內的物件wblock出去 指令:lw2")
天空的雲- 中級會員
- 文章總數 : 107
年齡 : 53
來自 : 台中市
職業 : 測量工程,數值地形圖,2D圖
愛好 : 網路小說,遊戲
個性 : 古意
使用年資 : R9至今
使用版本 : 2008為主
積分 : 7
經驗值 : 6014
威望值 : 37
發帖精華 : 1
注冊日期 : 2008-11-11
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
這個方法曾經試過 但部份不必要的圖層 依舊無法刪除 主要是屬性圖塊的原因ㄚ勳 寫到:我的作法是這樣的
我把所需要的圖層和圖
重新拷貝在開一個新的!
然後貼上存檔!原始的砍掉!
就這樣!就不會出現一些奇奇怪怪的圖層了
如果要一個個找出來很困難!我也不知道怎麼找!
我當初有試過一個個開開關關的!
之後部分可以刪除!部分不能刪除!
所以那不能刪除部分我再猜就跟圖層無關!可能跟其他有關
因此我就用最簡單的方式!拷貝、開新檔!貼上!就這樣
很感謝你的回答^^~
Sugar- 初級會員
- 文章總數 : 57
年齡 : 45
來自 : Taiwan
職業 : 繪圖員
個性 : 樂天派
積分 : 1
經驗值 : 5829
威望值 : 0
注冊日期 : 2008-12-08
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
danz 寫到:首先我對中文的定義是估計的 ... LAYER = 圖層??
其實 要做到 "圖層與圖塊的整合" 這個工作 ,可以試下 用 EXPRESS TOOL當中有一個 LAYMRG 可以直接把 不同LAYER 的圖像 歸為統一的 LAYER 。
詳細看 EXPRESS TOOL的 HELP 會有仔細介紹和 EXAMPLE 。
如果遇到錯誤等奇奇怪怪問題,有時候可能是 autocad 問題...有沒有試過其他 版本去開此圖,因為愈新愈多問題...
sorry~express tool 我沒有用過 ...還是很感謝你的回答!!^^~
Sugar- 初級會員
- 文章總數 : 57
年齡 : 45
來自 : Taiwan
職業 : 繪圖員
個性 : 樂天派
積分 : 1
經驗值 : 5829
威望值 : 0
注冊日期 : 2008-12-08
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
天空的雲 寫到:附上一個將各個圖層wblock出去的lisp程式,方便檢查問題
先將圖檔copy到一新的資料中,開啟圖檔之後,再將此lisp程式載入,執行指令是lw
(ps.此板本我是應用在2004,2008的話我不知道wblock指令的回應方式是否有不同,各位大大們試一下吧..)
;
;將各個圖層內的物件wblock出去
;
(defun c:lw2 ()
(setq dwg_fix (getvar "DWGPREFIX"))
(SETQ lay (tblnext "layer" t))
(while (/= lay nil)
(setq lay_da '() lay_date nil)
(setq lay_2 (cdr (assoc 2 lay))) ;;圖層名稱(字串)
(setq sel_layer (ssget "x" (list(cons 8 lay_2))))
(if (/= sel_layer nil)
(progn
(command "-wblock" (strcat dwg_fix lay_2) "" "0,0,0" sel_layer "")
)
)
(SETQ lay (tblnext "layer"))
)
)
(princ "\n 將各個圖層內的物件wblock出去 指令:lw2")
QQ 小妹才學粗淺 看不太懂此方法
這個方法是要找出隱藏在圖層裡的圖塊嗎??
Sugar- 初級會員
- 文章總數 : 57
年齡 : 45
來自 : Taiwan
職業 : 繪圖員
個性 : 樂天派
積分 : 1
經驗值 : 5829
威望值 : 0
注冊日期 : 2008-12-08
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
天空的雲 寫到:附上一個將各個圖層wblock出去的lisp程式,方便檢查問題
先將圖檔copy到一新的資料中,開啟圖檔之後,再將此lisp程式載入,執行指令是lw
(ps.此板本我是應用在2004,2008的話我不知道wblock指令的回應方式是否有不同,各位大大們試一下吧..)
;
;將各個圖層內的物件wblock出去
;
(defun c:lw2 ()
(setq dwg_fix (getvar "DWGPREFIX"))
(SETQ lay (tblnext "layer" t))
(while (/= lay nil)
(setq lay_da '() lay_date nil)
(setq lay_2 (cdr (assoc 2 lay))) ;;圖層名稱(字串)
(setq sel_layer (ssget "x" (list(cons 8 lay_2))))
(if (/= sel_layer nil)
(progn
(command "-wblock" (strcat dwg_fix lay_2) "" "0,0,0" sel_layer "")
)
)
(SETQ lay (tblnext "layer"))
)
)
(princ "\n 將各個圖層內的物件wblock出去 指令:lw2")
TO:天空的雲
經過測試!AUTOCAD 2006與2008 與 20009版 使用是OK的!
不過指令名稱要改一下如上綠色字體(我是改成LW2),因為lw=LWEIGHT 內建簡稱指令(線寬設定值)
TO:Sugar
這個lsp,可以把此張圖所有有分圖層的圖另存成新圖檔(就是WBLOCK出去)
例如:你的A圖 有5個圖層分別是(A1.A2.A3.A4.A5)
載入此LSP,可以把5個圖層,分成A1.A2.A3.A4.A5 5張圖
A1的圖就是你當初用A圖,套成A1圖層,只是另存成一張新圖名為A1...以此類堆
你只要把 天空的雲 所貼的(defun c:lw2 ()~~直到(princ "\n 將各個圖層內的物件wblock出去 指令:lw2") [如上藍色字體複製]
都複製起來,貼到記事本,檔案存成 LW2.LSP
再用指令:APPLOAD載入此 LSP 後,指令:LW2 就可以用!
注意:LW2完後,A圖將是空的,請注意!最好將原圖複製出來測試,避免原圖之圖遺失
這樣子你應可以知道那些線條是使用那個圖層
不懂再問!
Tiger&蘋果爸 在 2009-02-16, 16:05 作了第 3 次修改 (原因 : 補充版本測試說明...by 2009.02.12)
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30445
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
喔~~~清楚了^^~
感謝天空和JUDY
感謝天空和JUDY
Sugar- 初級會員
- 文章總數 : 57
年齡 : 45
來自 : Taiwan
職業 : 繪圖員
個性 : 樂天派
積分 : 1
經驗值 : 5829
威望值 : 0
注冊日期 : 2008-12-08
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
judyyai 寫到:TO:天空的雲
經過測試!AUTOCAD 2006與2008 與 20009版 使用是OK的!
不過指令名稱要改一下如上綠色字體(我是改成LW2),因為lw=LWEIGHT 內建簡稱指令(線寬設定值)
感謝顧問的測試
指令名稱是隨便取的可以修改的(我自己的檔案是tmp ^^)
天空的雲- 中級會員
- 文章總數 : 107
年齡 : 53
來自 : 台中市
職業 : 測量工程,數值地形圖,2D圖
愛好 : 網路小說,遊戲
個性 : 古意
使用年資 : R9至今
使用版本 : 2008為主
積分 : 7
經驗值 : 6014
威望值 : 37
發帖精華 : 1
注冊日期 : 2008-11-11
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
******************************************************天空的雲 寫到:附上一個將各個圖層wblock出去的lisp程式,方便檢查問題
先將圖檔copy到一新的資料中,開啟圖檔之後,再將此lisp程式載入,執行指令是lw
(ps.此板本我是應用在2004,2008的話我不知道wblock指令的回應方式是否有不同,各位大大們試一下吧..)
;
;將各個圖層內的物件wblock出去
;
(defun c:lw2 ()
(setq dwg_fix (getvar "DWGPREFIX"))
(SETQ lay (tblnext "layer" t))
(while (/= lay nil)
(setq lay_da '() lay_date nil)
(setq lay_2 (cdr (assoc 2 lay))) ;;圖層名稱(字串)
(setq sel_layer (ssget "x" (list(cons 8 lay_2))))
(if (/= sel_layer nil)
(progn
(command "-wblock" (strcat dwg_fix lay_2) "" "0,0,0" sel_layer "")
)
)
(SETQ lay (tblnext "layer"))
)
)
(princ "\n 將各個圖層內的物件wblock出去 指令:lw2")
謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: *[已解決]無法刪除的圖層(LISP:將各個圖層內的物件wblock出去)
又學到一個新的指令"Purge",用了之後刪掉很多不必要的東西,檔案變小了,開圖也變快了~~
smallworm16- 初級會員
- 文章總數 : 57
年齡 : 40
來自 : 新竹
職業 : 工
愛好 : 無
個性 : 內向
使用年資 : 5
使用版本 : 2008
積分 : 1
經驗值 : 5735
威望值 : -1
未回應主題 : 1
注冊日期 : 2009-05-20
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章