Đến nội dung


Hình ảnh

Cần layiso theo màu của layer


  • Please log in to reply
13 replies to this topic

#1 nghau90

nghau90

    biết vẽ circle

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

Đã gửi 26 September 2014 - 11:21 AM

mình  vẽ cad nội thất. sử dụng layer duy nhất là layer 0 . khi vẽ chỉ thay đổi màu bylayer ,  mình muốn tách lớp theo màu . ví dụ cánh cửa màu xanh (cyan)  làm cách nào để tách nó  theo kiểu layiso để chỉnh sửa. bạn  nào có lisp cho mình xin .


  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 September 2014 - 01:21 PM

Lisp này nhấp vào màu nào thì nó hiện tất cả các đt cùng màu đó. Muốn hiện lên hết thì khi nó hỏi thì enter.

(defun c:lm(/ v mau ss ss1 tm)
  (vl-load-com)
  (defun dxf (id v) (cdr (assoc id (entget v))))
  (defun laymau(e / m)  (if (not (setq m (dxf 62 e))) (cdr (assoc 62 (tblsearch "LAYER" (dxf 8 e)))) m))
  
  (setq ss (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X")))))
  (mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object x) actrue)) ss)
  
  (if (setq v (car (entsel "\nChon hien mau:")))
    (setq mau (laymau v) 
 ss1 (vl-remove-if-not '(lambda (x) (= mau (laymau x))) ss)
 tm (mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object x) acfalse)) ss)
 tm (mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object x) actrue)) ss1))
  )
  (princ)  
)

  • 1

#3 nghau90

nghau90

    biết vẽ circle

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

Đã gửi 26 September 2014 - 02:02 PM

cảm ơn . đúng cái mình cần

ot77
  • 0

#4 nghau90

nghau90

    biết vẽ circle

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

Đã gửi 26 September 2014 - 03:30 PM

Tot77  t gặp  chút vấn đề. sau khi dùng lệnh đó.  nếu ko thao tác gì thì nhấn dấu cách là hiện lại. nhưng đã thao tác, xóa , copy hay move thì mình ko làm cách nào cho nó hiện lại các bylayer khác
  • 0

#5 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 26 September 2014 - 03:46 PM

- bạn đánh lại tên lệnh là nó hiện lại hết enter bỏ qua để kết thúc lệnh ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#6 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 26 September 2014 - 03:58 PM

-ah tiện anh Tot77 cho nhoc hỏi nếu dùng lệnh trên mình lọc ra chỉnh sữa rùi save lại quên mở lại hết rùi tắt copy file đem đi đâu đó mà quen dem lsp theo vậy thì dùng cách nào để lấy lại các đối tượng bị ẩn anh ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#7 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 September 2014 - 04:07 PM

Lisp này chỉ theo màu của đối tượng chính (tức là khi bạn nhấp vào đtg đó rồi nhìn vào bảng màu) chứ không theo các đtg phức như block (màu của các thành phần khác với màu của đối tượng) hoặc dim (trừ phi bạn setting kiểu dim color là byblock) .

Hoặc tốt nhất bạn gửi file lên xem có gì đặc biệt ko, chứ cái lsp trên chẳng thay đổi bất cứ đặc tính nào của đtg. 


  • 0

#8 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 26 September 2014 - 06:28 PM

- vậy nè anh, vd: nhoc vẽ nhiều line layer 0, co 2 đường màu đỏ, nhoc lọc 2 đường màu đỏ ra, giờ nếu ko dùng lsp thì cacch nào để hiện lại tất cả đối tượng vậy a


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#9 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 September 2014 - 06:58 PM

- vậy nè anh, vd: nhoc vẽ nhiều line layer 0, co 2 đường màu đỏ, nhoc lọc 2 đường màu đỏ ra, giờ nếu ko dùng lsp thì cacch nào để hiện lại tất cả đối tượng vậy a

Tôi hiểu ý nhoc mà, cái câu #7 là trả lời bạn nghau90.

Theo tôi biết thì cad chưa có lệnh nào (tính tới cad 2010) cho hiện những cái ẩn. Cad dời sau nghe nói có lệnh hideobjects, isolateobjects  gì đó nhưng chắc là dạng khác chứ không phải dạng visible này.

Cái visible này cũng được nhiều ng dùng để giấu bớt những chi tiết "nhạy cảm" không muốn cho đối tác thấy (dĩ nhiên là đối tác này không biết lisp).

Trg hợp như nhoc noi thì chắc phải dùng lisp thôi, chỉ một câu này thôi cũng dc

(mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object x) actrue)) (acet-ss-to-list (ssget "X")))


  • 0

#10 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 26 September 2014 - 07:27 PM

oh thế hay nhỉ dấu mất tích lun ^^, ngộ nhỡ copy về nhà làm mà quên chưa trả lại cũng ko dem lsp về chắc khổ ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#11 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 September 2014 - 07:43 PM

.Thì vào cadviet down lại mấy hồi.


  • 0

#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 September 2014 - 10:07 AM

Trg hợp như nhoc noi thì chắc phải dùng lisp thôi, chỉ một câu này thôi cũng dc

(mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object x) actrue)) (acet-ss-to-list (ssget "X")))

 

Nếu đã dùng ACET thì thế này thôi Tot77 :

 

(acet-ss-visible (ssget "x") 0)
 

 

Link ví dụ


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#13 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 27 September 2014 - 10:18 AM

OK, tôi ít để ý và ít dùng hàm express nên không biết cái này.


  • 0

#14 nghau90

nghau90

    biết vẽ circle

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

Đã gửi 25 February 2015 - 10:36 AM

Tot77 t không dùng được với autocad 2015 .có thể giúp mình bản lisp chạy trên phiên bản đó được ko?
  • 0