namhai 17 Báo cáo bài đăng Đã đăng Tháng 7 3, 2009 Mong CADVIET giúp e cách sử dụng Layoff, Layiso trong 1 vùng ?nếu mà chỉ xoá thì e có thể dùng quick seleck nhưng trong trường hợp chỉ muốn làm việc với các đối tượng trong 1 vùng nào đấy thì làm thế nào ạ?mong CADVIET chỉ giáo, thanks các bác nha!!!! 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gp14 1.134 Báo cáo bài đăng Đã đăng Tháng 7 3, 2009 Mong CADVIET giúp e cách sử dụng Layoff, Layiso trong 1 vùng ?nếu mà chỉ xoá thì e có thể dùng quick seleck nhưng trong trường hợp chỉ muốn làm việc với các đối tượng trong 1 vùng nào đấy thì làm thế nào ạ?mong CADVIET chỉ giáo, thanks các bác nha!!!! Bạn sử dụng cái lisp ở đây http://www.cadviet.com/forum/index.php?showtopic=279&hl= Nó có tác dụng ẩn đi các đối tượng mình không muốn làm việc. Chú ý là khi cho các đối tượng ẩn đi thì bạn phải nhớ không đến lúc vẽ đè các đối tượng khác lên vùng ẩn đó là hơi bị mệt đấy :s_big: 2 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
namhai 17 Báo cáo bài đăng Đã đăng Tháng 7 4, 2009 Bạn sử dụng cái lisp ở đâyhttp://www.cadviet.com/forum/index.php?showtopic=279&hl= Nó có tác dụng ẩn đi các đối tượng mình không muốn làm việc. Chú ý là khi cho các đối tượng ẩn đi thì bạn phải nhớ không đến lúc vẽ đè các đối tượng khác lên vùng ẩn đó là hơi bị mệt đấy :s_big: Lisp này e đã down từ CADVIET, nhưng đây là lisp ẩn, hiện đối tượng mà, muốn ẩn hiện đối tượng nào thì mình select đối tượng ấy. cái e cần là ẩn hiện 1 hoặc nhiều layer trong 1 vùng cơ, mong sự hồi âm của các bác!! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gp14 1.134 Báo cáo bài đăng Đã đăng Tháng 7 4, 2009 cái e cần là ẩn hiện 1 hoặc nhiều layer trong 1 vùng cơ!! Cái này chẳng phải dùng layoff, layiso sao? Bạn nói rõ ràng, cụ thể hơn được chứ Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 7 4, 2009 Lisp này e đã down từ CADVIET, nhưng đây là lisp ẩn, hiện đối tượng mà, muốn ẩn hiện đối tượng nào thì mình select đối tượng ấy. cái e cần là ẩn hiện 1 hoặc nhiều layer trong 1 vùng cơ, mong sự hồi âm của các bác!! Mạn phép bác Bemove, Tue_NV sửa lại code của bác cho phù hợp với yêu cầu của bạn NamHai (defun c:InVis (/ SSet Count Elem dt lay entt) (defun Dxf (Id Obj) (cdr (assoc Id (entget Obj))) );end Dxf (setq dt (entsel "\n Pick chon Layer an di :")) (setq entt (car dt)) (setq lay (cdr(assoc 8 (entget entt)))) (prompt "\n Chon vung can an di :") (cond ((setq SSet (ssget (list(cons 8 lay)))) (repeat (setq Count (sslength SSet)) (setq Count (1- COunt) Elem (ssname SSet Count)) (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem))))) (if (Dxf 60 Elem) (entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))) (entmod (append (entget Elem) (list '(60 . 1)))) ) (prompt "\nEntity on a locked layer. Cannot hide this entity. ") );end if );end repeat ) );end cond (princ) );end c:InVis @gp14 : Ý của NamHai là ẩn các đối tượng thuộc về 1 layer nào đó trong vùng mà ta chọn 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
namhai 17 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Mạn phép bác Bemove, Tue_NV sửa lại code của bác cho phù hợp với yêu cầu của bạn NamHai (defun c:InVis (/ SSet Count Elem dt lay entt) (defun Dxf (Id Obj) (cdr (assoc Id (entget Obj))) );end Dxf (setq dt (entsel "\n Pick chon Layer an di :")) (setq entt (car dt)) (setq lay (cdr(assoc 8 (entget entt)))) (prompt "\n Chon vung can an di :") (cond ((setq SSet (ssget (list(cons 8 lay)))) (repeat (setq Count (sslength SSet)) (setq Count (1- COunt) Elem (ssname SSet Count)) (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem))))) (if (Dxf 60 Elem) (entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))) (entmod (append (entget Elem) (list '(60 . 1)))) ) (prompt "\nEntity on a locked layer. Cannot hide this entity. ") );end if );end repeat ) );end cond (princ) );end c:InVis @gp14 : Ý của NamHai là ẩn các đối tượng thuộc về 1 layer nào đó trong vùng mà ta chọn Thanks bác Tue_NV nhiều nha!đây đúng là điều mà e cần, chúc bác ngày cuối tuần vui vẻ!!! :s_big: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Thanks bác Tue_NV nhiều nha!đây đúng là điều mà e cần, chúc bác ngày cuối tuần vui vẻ!!! :blink: Lisp trên chỉ ẩn được 1 Layer trong vùng chọn Với Lisp này thì bạn cần hơn nè : Đây là Lisp ANLAY. Sự kết hợp Lisp của Tue_NV và bác Bemove có tính năng ẩn các Layer được user chọn nằm trong vùng chọn. Bạn chạy thử xem : ;copyright by Tue_NV and Bemove (defun c:anlay(/ vung lstlay n dt ent enti ss ss1 i) (setq lstlay nil) (prompt "\n chon vung :") (setq vung (ssget) n (sslength vung) ss (ssadd) i 0) (setq dt (entsel"\n Pick chon Layer :")) (if dt (progn (while dt (setq ent (car dt)) (setq lay (cdr(assoc 8 (entget ent)))) (if (= (member lay lstlay) nil) (setq lstlay (append lstlay (list lay))) (ALERT "Da chon layer nay roi. Moi ban chon doi tuong thuoc Layer khac :") ) (setq dt (entsel"\n Pick chon Layer :")) ) ) ) (while (< i n) (setq enti (ssname vung i)) (setq elay (cdr(assoc 8 (entget enti)))) (if (/= (member elay lstlay) nil) (setq ss (ssadd enti ss)) ) (setq i (1+ i)) ) (INVIS ss) (princ) ) ; ; (defun InVis (SSet / Count Elem) (defun Dxf (Id Obj) (cdr (assoc Id (entget Obj))) );end Dxf (cond ( (repeat (setq Count (sslength SSet)) (setq Count (1- COunt) Elem (ssname SSet Count)) (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem))))) (if (Dxf 60 Elem) (entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))) (entmod (append (entget Elem) (list '(60 . 1)))) ) (prompt "\nEntity on a locked layer. Cannot hide this entity. ") );end if );end repeat ) );end cond (princ) );end c:InVis :s_big: 2 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
namhai 17 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Lisp trên chỉ ẩn được 1 Layer trong vùng chọn Với Lisp này thì bạn cần hơn nè : Đây là Lisp ANLAY. Sự kết hợp Lisp của Tue_NV và bác Bemove có tính năng ẩn các Layer được user chọn nằm trong vùng chọn. Bạn chạy thử xem : ;copyright by Tue_NV and Bemove (defun c:anlay(/ vung lstlay n dt ent enti ss ss1 i) (setq lstlay nil) (prompt "\n chon vung :") (setq vung (ssget) n (sslength vung) ss (ssadd) i 0) (setq dt (entsel"\n Pick chon Layer :")) (if dt (progn (while dt (setq ent (car dt)) (setq lay (cdr(assoc 8 (entget ent)))) (if (= (member lay lstlay) nil) (setq lstlay (append lstlay (list lay))) (ALERT "Da chon layer nay roi. Moi ban chon doi tuong thuoc Layer khac :") ) (setq dt (entsel"\n Pick chon Layer :")) ) ) ) (while (< i n) (setq enti (ssname vung i)) (setq elay (cdr(assoc 8 (entget enti)))) (if (/= (member elay lstlay) nil) (setq ss (ssadd enti ss)) ) (setq i (1+ i)) ) (INVIS ss) (princ) ) ; ; (defun InVis (SSet / Count Elem) (defun Dxf (Id Obj) (cdr (assoc Id (entget Obj))) );end Dxf (cond ( (repeat (setq Count (sslength SSet)) (setq Count (1- COunt) Elem (ssname SSet Count)) (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem))))) (if (Dxf 60 Elem) (entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))) (entmod (append (entget Elem) (list '(60 . 1)))) ) (prompt "\nEntity on a locked layer. Cannot hide this entity. ") );end if );end repeat ) );end cond (princ) );end c:InVis :s_big: Bác Tue_NV ơi!có phải đây là lisp xoá các layer trong 1 vùng không?vì lúc e ẩn layer đi thì khi layon không thây hiện lên các layer mà mình đã ẩn? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Bác Tue_NV ơi!có phải đây là lisp xoá các layer trong 1 vùng không?vì lúc e ẩn layer đi thì khi layon không thây hiện lên các layer mà mình đã ẩn? Không phải xoá mà là ẩn layer do user chọn nằm trong vùng chọn. Muốn hiện lên các layer đã ẩn thì dùng Lisp VIS của bác Bemove Lisp đó nằm ở đây : http://www.cadviet.com/forum/index.php?showtopic=279&hl= Chúc thành công :s_big: 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
namhai 17 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Không phải xoá mà là ẩn layer do user chọn nằm trong vùng chọn. Muốn hiện lên các layer đã ẩn thì dùng Lisp VIS của bác Bemove ok! thanks bác Tue_NV nhiều nha!lúc trước e đã down lisp INVIS và VIS của bác Bemove rùi mà quên mất,có thêm phần mở rộng của bác giờ thì ổn rùi.Happy weekend!!!press Thanks bác cái :s_big: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Tranngoc 1 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Cũng có thể dùng cách khác, đây chỉ là mẹo sử dụng thui. Bạn cho vào khung Layout sau đó chọn lớp bạn muốn ẩn đi và chọn Freeze là có thể ẩn đi trong khung layout mà bạn chọn Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
dienlicogi17 0 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 ok! thanks bác Tue_NV nhiều nha!lúc trước e đã down lisp INVIS và VIS của bác Bemove rùi mà quên mất,có thêm phần mở rộng của bác giờ thì ổn rùi.Happy weekend!!!press Thanks bác cái :s_big: Hoặc bật bộ cài Auto CAD lên chọn Install, chọn step5-chọn AutoCAD Express Tools. Là bạn sẽ có thanh công cụ có lệnh layoff, layiso,... về layer. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
hoanganhkiet 0 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Mình sử dụng layiso trong cad2008 nhưng không hiểu sao nó chỉ mờ đi các layer khác thôi. Sau đó dùng layon thì không thể hiện lên tất cả các layer được. Nếu muốn hiên tất cả layer lên thì phải vào unlock tất cả layer. Trước đây cad 2007 đâu có vấn đề j đâu, chẳng hiểu sao nữa?????? :s_big: Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 (Đă chỉnh sửa) Hoặc bật bộ cài Auto CAD lên chọn Install, chọn step5-chọn AutoCAD Express Tools. Là bạn sẽ có thanh công cụ có lệnh layoff, layiso,... về layer. Bạn có đọc kỹ yêu cầu của bài này không? Lệnh Layoff : tắt layer trên toàn bộ bản vẽ Còn đây là lisp mà Tue_NV viết để tắt Layer trên 1 vùng chọn của bản vẽ? Bạn hiểu không? Lisp này kết hợp Lisp của bác Bemove và của Tue_NV có tính năng ẩn các Layer được user chọn và lần này Tue_NV bổ sung thêm tính năng ẩn Layer trên toàn bộ bản vẽ (tính năng này tương đương với lệnh Layoff của Express). Các bạn chạy thử xem và để hiện lại layer thì dùng Lisp VIS của bác Bemove ;copyright by Tue_NV and Bemove (defun c:anlay(/ vung lstlay n dt ent enti ss ss1 i ans) (setq lstlay nil) (prompt "\n chon vung :") (initget "V A") (setq ans (getstring "\n Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> :")) (if (or (= ans "V") (= ans "v")) (setq vung (ssget)) (setq vung (ssget "A")) ) (setq n (sslength vung) ss (ssadd) i 0) (setq dt (entsel"\n Pick chon Layer :")) (if dt (progn (while dt (setq ent (car dt)) (setq lay (cdr(assoc 8 (entget ent)))) (if (= (member lay lstlay) nil) (setq lstlay (append lstlay (list lay))) (ALERT "Da chon layer nay roi. Moi ban chon doi tuong thuoc Layer khac :") ) (setq dt (entsel"\n Pick chon Layer :")) ) ) ) (while (< i n) (setq enti (ssname vung i)) (setq elay (cdr(assoc 8 (entget enti)))) (if (/= (member elay lstlay) nil) (setq ss (ssadd enti ss)) ) (setq i (1+ i)) ) (INVIS ss) (princ) ) ; ; (defun InVis (SSet / Count Elem) (defun Dxf (Id Obj) (cdr (assoc Id (entget Obj))) );end Dxf (cond ( (repeat (setq Count (sslength SSet)) (setq Count (1- COunt) Elem (ssname SSet Count)) (if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem))))) (if (Dxf 60 Elem) (entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem))) (entmod (append (entget Elem) (list '(60 . 1)))) ) (prompt "\nEntity on a locked layer. Cannot hide this entity. ") );end if );end repeat ) );end cond (princ) );end c:InVis Mình sử dụng layiso trong cad2008 nhưng không hiểu sao nó chỉ mờ đi các layer khác thôi. Sau đó dùng layon thì không thể hiện lên tất cả các layer được. Nếu muốn hiên tất cả layer lên thì phải vào unlock tất cả layer. Trước đây cad 2007 đâu có vấn đề j đâu, chẳng hiểu sao nữa?????? Bạn sử dụng Lisp của Tue_NV xem : Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> : Ở dòng này nếu bạn chọn V : thì ẩn Lâyer theo vùng chọn Còn nếu bạn chọn là : A thì chức năng này tương đương với lệnh Layoff -> để hiện lại layer thì dùng Lisp VIS của bác Bemove :s_big: Chỉnh sửa Tháng 7 5, 2009 theo Tue_NV Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
hoanganhkiet 0 Báo cáo bài đăng Đã đăng Tháng 7 5, 2009 Bạn có đọc kỹ yêu cầu của bài này không? Mình chưa xem kĩ chủ đề này nữa. Ý mình hỏi là lệnh trong autocad thôi ah. Không biết tại sao lại bị trường hợp như vậy. Ở công ty mình cũng xài 2008 thì không bị nhưng xài cad ở nhà thì lại bị trường hợp trên. cao thủ nào biết nguyên nhân thì chỉ mình với. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
huaductiep 2 Báo cáo bài đăng Đã đăng Tháng 12 30, 2013 sao em dùng thì lisp ko chạy? toàn báo là Unknown Load Lísp. Bác sửa giúp em với nha Bạn có đọc kỹ yêu cầu của bài này không?Lệnh Layoff : tắt layer trên toàn bộ bản vẽCòn đây là lisp mà Tue_NV viết để tắt Layer trên 1 vùng chọn của bản vẽ? Bạn hiểu không?Lisp này kết hợp Lisp của bác Bemove và của Tue_NV có tính năng ẩn các Layer được user chọn và lần này Tue_NV bổ sung thêm tính năng ẩn Layer trên toàn bộ bản vẽ (tính năng này tương đương với lệnh Layoff của Express). Các bạn chạy thử xem và để hiện lại layer thì dùng Lisp VIS của bác Bemove ;copyright by Tue_NV and Bemove(defun c:anlay(/ vung lstlay n dt ent enti ss ss1 i ans)(setq lstlay nil)(prompt "\n chon vung :")(initget "V A")(setq ans (getstring "\n Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> :"))(if (or (= ans "V") (= ans "v"))(setq vung (ssget))(setq vung (ssget "A")))(setq n (sslength vung) ss (ssadd) i 0)(setq dt (entsel"\n Pick chon Layer :"))(if dt(progn(while dt (setq ent (car dt))(setq lay (cdr(assoc 8 (entget ent))))(if (= (member lay lstlay) nil)(setq lstlay (append lstlay (list lay)))(ALERT "Da chon layer nay roi. Moi ban chon doi tuong thuoc Layer khac :"))(setq dt (entsel"\n Pick chon Layer :")))))(while (< i n)(setq enti (ssname vung i))(setq elay (cdr(assoc 8 (entget enti))))(if (/= (member elay lstlay) nil)(setq ss (ssadd enti ss)))(setq i (1+ i)))(INVIS ss)(princ));;(defun InVis (SSet / Count Elem)(defun Dxf (Id Obj)(cdr (assoc Id (entget Obj))));end Dxf(cond((repeat (setq Count (sslength SSet))(setq Count (1- COunt)Elem (ssname SSet Count))(if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))(if (Dxf 60 Elem)(entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem)))(entmod (append (entget Elem) (list '(60 . 1)))))(prompt "\nEntity on a locked layer. Cannot hide this entity. "));end if);end repeat) );end cond(princ));end c:InVis Bạn sử dụng Lisp của Tue_NV xem :Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> :Ở dòng này nếu bạn chọn V : thì ẩn Lâyer theo vùng chọnCòn nếu bạn chọn là : A thì chức năng này tương đương với lệnh Layoff-> để hiện lại layer thì dùng Lisp VIS của bác Bemove Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác