Jump to content
Invision Community
Sign in to follow this  
3d.decor

[Đã xong] Lisp chuyển nhiều layer về 1 layer

Recommended Posts

3d.decor    1

em là dân amater về cad thôi vì em làm nội thất

em dùng rất ít layer vì dùng nhiều cũng không làm gì cả

nhiều lúc nhận file từ các bác kiến trúc chóang luôn về layer

 

em còn còn một yêu cầu nữa

 

em cần một lisp vd như file autocad có rất nhiều layer

em lấy một số layer chuyển tên và màu về layer em hay dùng như

layer: cut mau 1, glass mau 152, hide mau 14, hatch mau 98, funitures mau 31, tree mau 3, text mau 4, center mau 8...

vạy trù mấy layer đó ra em muốn chuyển tất còn lại thành layer wall mau so 7

 

rat mong cac pro giup do

Share this post


Link to post
Share on other sites
phamthanhbinh    3,124

em là dân amater về cad thôi vì em làm nội thất

em dùng rất ít layer vì dùng nhiều cũng không làm gì cả

nhiều lúc nhận file từ các bác kiến trúc chóang luôn về layer

 

em còn còn một yêu cầu nữa

 

em cần một lisp vd như file autocad có rất nhiều layer

em lấy một số layer chuyển tên và màu về layer em hay dùng như

layer: cut mau 1, glass mau 152, hide mau 14, hatch mau 98, funitures mau 31, tree mau 3, text mau 4, center mau 8...

vạy trù mấy layer đó ra em muốn chuyển tất còn lại thành layer wall mau so 7

 

rat mong cac pro giup do

Hề hề hề,

Bạn xài thử cái này coi sao hỉ...

(defun c:dlay (/ ss ssl en enl lay)
(vl-load-com)
(command "undo" "be")
(setq ss (ssget "x")
       ssl (acet-ss-to-list ss))
(foreach en ssl
     (setq enl (entget en)
              lay (cdr (assoc 8 enl)))
     (if (or (/= lay "cut") (/= lay "glass") (/= lay "hide") (/= lay "hatch") (/= lay "funitures") (/= lay "tree") (/= lay "text") (/= lay "center"))
          (progn
                 (if (= (tblsearch "layer" "wall") nil)
                     (command "layer" "n" "wall" "c" "7" "wall" "lt" "continuous" "wall" "")
                 )
                 (command "change" en "" "p" "la" "wall" "")
                 (if (/= (cdr (assoc 62 enl)) nil)
                     (command "change" en "" "p" "c" "7" "")
                 )
         )
     )
)
(command "undo" "e")
(princ)
)

Share this post


Link to post
Share on other sites
3d.decor    1

Hề hề hề,

Bạn xài thử cái này coi sao hỉ...

(defun c:dlay (/ ss ssl en enl lay)
(vl-load-com)
(command "undo" "be")
(setq ss (ssget "x")
       ssl (acet-ss-to-list ss))
(foreach en ssl
     (setq enl (entget en)
              lay (cdr (assoc 8 enl)))
     (if (or (/= lay "cut") (/= lay "glass") (/= lay "hide") (/= lay "hatch") (/= lay "funitures") (/= lay "tree") (/= lay "text") (/= lay "center"))
          (progn
                 (if (= (tblsearch "layer" "wall") nil)
                     (command "layer" "n" "wall" "c" "7" "wall" "lt" "continuous" "wall" "")
                 )
                 (command "change" en "" "p" "la" "wall" "")
                 (if (/= (cdr (assoc 62 enl)) nil)
                     (command "change" en "" "p" "c" "7" "")
                 )
         )
     )
)
(command "undo" "e")
(princ)
)

thank you pro

nhờ pro viết thêm dòng lisp tẩy các layer thừa sau khi chuyển đổi xong được không

lisp chạy rất ổn rồi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×