Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
3 replies to this topic

#1 3d.decor

3d.decor

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 02 June 2011 - 08:52 PM

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
  • 0

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 03 June 2011 - 12:45 AM

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)
)

  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 3d.decor

3d.decor

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 03 June 2011 - 08:47 AM

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
  • 0

#4 engineer0405

engineer0405

    biết vẽ polygon

  • Members
  • PipPip
  • 78 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 08 April 2012 - 04:43 PM

sao lisp này chạy toàn bị treo vậy anh
hic
  • 0