Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
dkkx3a

Lọc đối tượng, nil bylayer

Các bài được khuyến nghị

Mình đang học và tập viết một số lisp đơn giản, có chút vấn đề ko giải quyết được mong các bạn trên diễn đàn giải đáp hộ: (mình đã search nhưng vẫn chưa xong).

Mình viết đoạn lisp như sau, dùng để lọc đối tượng như lệnh filter (lọc theo mầu đối tượng), nhưng khi chọn đối tượng theo mầu thì các đối tượng ở chế độ bylayer ko hiểu, mong giải đáp hộ thắc mắc:

 

;===========================================

(defun c:locmau()

(setq dtuong (entsel "\nChon doi tuong lay mau chuan: "))

(if (cdr(assoc 62 (entget(car dtuong))))

(setq mau (cdr(assoc 62 (entget(car dtuong)))))

(setq mau (cdr(assoc 62 (tblsearch "layer" (cdr (assoc 8 (entget(car dtuong))))))))

)

(setq thop (ssget (list(cons 62 mau))))

(sssetfirst thop thop)

(princ))

;===========================================

 

Xin cảm ơ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
Mình đang học và tập viết một số lisp đơn giản, có chút vấn đề ko giải quyết được mong các bạn trên diễn đàn giải đáp hộ: (mình đã search nhưng vẫn chưa xong).

Mình viết đoạn lisp như sau, dùng để lọc đối tượng như lệnh filter (lọc theo mầu đối tượng), nhưng khi chọn đối tượng theo mầu thì các đối tượng ở chế độ bylayer ko hiểu, mong giải đáp hộ thắc mắc:

 

;===========================================

(defun c:locmau()

(setq dtuong (entsel "\nChon doi tuong lay mau chuan: "))

(if (cdr(assoc 62 (entget(car dtuong))))

(setq mau (cdr(assoc 62 (entget(car dtuong)))))

(setq mau (cdr(assoc 62 (tblsearch "layer" (cdr (assoc 8 (entget(car dtuong))))))))

)

(setq thop (ssget (list(cons 62 mau))))

(sssetfirst thop thop)

(princ))

;===========================================

 

Xin cảm ơn!!!

Các đối tượng có màu ByLayer không có mã DXF là 62 nên với đoạn này

(setq thop (ssget (list(cons 62 mau))))

thì bạn sẽ không chọn được đối tượng có màu ByLayer vì bản thân nó không có mã DXF=62

=> Cho nên bạn phải chuyển màu ByLayer sang màu của chính nó thì mới chọn được

Bằng cách thêm vào thông tin về đối tượng mã DXF = 62 (dùng hàm append)

Bạn xây dựng code thử nhé

  • Vote tăng 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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×