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

Xóa các đối tượng của bản vẽ theo layer

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

Chào các anh chị trong diễn đàn. em là thành viên mới toe. Có một việc rất mong được anh chị giúp đỡ

em làm việc với Nova nhiều và hay sử dụng lệnh XL của nova. Lệnh này có chức năng xóa tất cả các đối tượng cùng 1 layer trong vùng được chọn.

Cho em hỏi trong diễn đàn đã có ai viết lisp có chức năng này để sử dụng cho Cad chưa? nếu có rồi thì cho em xin link với.

Còn nếu chưa có thì xin các cao thủ viết dùm em cái lisp này, và nếu có thể ta thêm cho nó 1 lệnh xóa các đối tượng trong vùng được chọn theo màu. Giúp em với, sẽ thank 100 phát -_-

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
Chào các anh chị trong diễn đàn. em là thành viên mới toe. Có một việc rất mong được anh chị giúp đỡ

em làm việc với Nova nhiều và hay sử dụng lệnh XL của nova. Lệnh này có chức năng xóa tất cả các đối tượng cùng 1 layer trong vùng được chọn.

Cho em hỏi trong diễn đàn đã có ai viết lisp có chức năng này để sử dụng cho Cad chưa? nếu có rồi thì cho em xin link với.

Còn nếu chưa có thì xin các cao thủ viết dùm em cái lisp này, và nếu có thể ta thêm cho nó 1 lệnh xóa các đối tượng trong vùng được chọn theo màu. Giúp em với, sẽ thank 100 phát -_-

việc này cần j phải lít hả bạn, bạn chỉ cần dùng lệnh Fi sau đó chọn theo color là ngon thôi mà

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
Chào các anh chị trong diễn đàn. em là thành viên mới toe. Có một việc rất mong được anh chị giúp đỡ

em làm việc với Nova nhiều và hay sử dụng lệnh XL của nova. Lệnh này có chức năng xóa tất cả các đối tượng cùng 1 layer trong vùng được chọn.

Cho em hỏi trong diễn đàn đã có ai viết lisp có chức năng này để sử dụng cho Cad chưa? nếu có rồi thì cho em xin link với.

Còn nếu chưa có thì xin các cao thủ viết dùm em cái lisp này, và nếu có thể ta thêm cho nó 1 lệnh xóa các đối tượng trong vùng được chọn theo màu. Giúp em với, sẽ thank 100 phát -_-

 

Lệnh là: xla

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

;;;;;;;;;;;;;;;;;;;;;;;

 

(Defun c:XLa ( )

(prompt "\nChon doi tuong thuoc layer muon xoa.")

(setq DT (car (entsel)))

(setq DT (entget DT))

(setq LDT (cdr (assoc 8 DT)))

(Princ "\nHay chon vung muon xoa:")

(setq SS (ssget (list (cons 8 LDT)

)

)

)

(if (Null ss)

(princ (strcat "\nKhong tim thay doi tuong nao thuoc layer: <" LDT "> trong vung vua chon !"))

)

(IF (/= NIL SS) (PROGN

(setq Sl (SSLength SS))

(command ".erase" ss "")

(princ (strcat "\nDa xoa: <" (itoa sl) "> doi tuong thuoc layer: <" LDT ">"))

)

)

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  • 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
việc này cần j phải lít hả bạn, bạn chỉ cần dùng lệnh Fi sau đó chọn theo color là ngon thôi mà

Như thế mất công hơn nhiều bạn ạ

  • 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
Lệnh là: xla

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

 

;;;;;;;;;;;;;;;;;;;;;;;

 

(Defun c:XLa ( )

(prompt "\nChon doi tuong thuoc layer muon xoa.")

(setq DT (car (entsel)))

(setq DT (entget DT))

(setq LDT (cdr (assoc 8 DT)))

(Princ "\nHay chon vung muon xoa:")

(setq SS (ssget (list (cons 8 LDT)

)

)

)

(if (Null ss)

(princ (strcat "\nKhong tim thay doi tuong nao thuoc layer: <" LDT "> trong vung vua chon !"))

)

(IF (/= NIL SS) (PROGN

(setq Sl (SSLength SS))

(command ".erase" ss "")

(princ (strcat "\nDa xoa: <" (itoa sl) "> doi tuong thuoc layer: <" LDT ">"))

)

)

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

 

Thank anh duy782006 nhiều nghe. để em thử phát xem nào ^^

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
nếu có thể ta thêm cho nó 1 lệnh xóa các đối tượng trong vùng được chọn theo màu. Giúp em với, sẽ thank 100 phát :o

 

Đây là lisp xóa theo màu. Lưu ý màu không phài là bylayẻ thì mới áp dụng được.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

(Defun c:Xco ( )

(prompt "\nChon doi tuong co mau muon xoa.")

(setq DT (car (entsel)))

(setq DT (entget DT))

(setq LDT (cdr (assoc 62 DT)))

(if (= LDT nil)

(Princ "\nMau cua doi tuong la Bylayer nen khong thuc hien duoc:")

)

(if (/= LDT nil) (PROGN

(Princ "\nHay chon vung muon xoa:")

(setq SS (ssget (list (cons 62 LDT)

)

)

)

(if (Null ss)

(princ (strcat "\nKhong tim thay doi tuong nao co mau: <" (itoa LDT) "> trong vung vua chon !"))

)

(IF (/= NIL SS) (PROGN

(setq Sl (SSLength SS))

(command ".erase" ss "")

(princ (strcat "\nDa xoa: <" (itoa sl) "> doi tuong co mau: <" (itoa LDT) ">"))

)

)

 

)

)

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

Bạn ko nên hứa bừa nhé. Mổi nic chỉ thank được có 1 lần thôi mà bạn đòi thank 100 phát hử? -_- Chỉ cần bạn đóng góp tích cực cho diển đàn là ngon rồ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
Bạn ko nên hứa bừa nhé. Mổi nic chỉ thank được có 1 lần thôi mà bạn đòi thank 100 phát hử? :o Chỉ cần bạn đóng góp tích cực cho diển đàn là ngon rồi.

Cái lisp xóa theo lớp của Bác dùng ngon. Thank Bác thêm 1 phát nữa :cheers: từ sáng đến giờ em thank Bác được 10 fát rồi đó chứ. Em không có hứa bừa đâu. hehee, cứ từ từ rồi em sẽ chồng đủ cho Bác 100 phát thank -_-

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
Đây là lisp xóa theo màu. Lưu ý màu không phài là bylayẻ thì mới áp dụng được.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

(Defun c:Xco ( )

(prompt "\nChon doi tuong co mau muon xoa.")

(setq DT (car (entsel)))

(setq DT (entget DT))

(setq LDT (cdr (assoc 62 DT)))

(if (= LDT nil)

(Princ "\nMau cua doi tuong la Bylayer nen khong thuc hien duoc:")

)

(if (/= LDT nil) (PROGN

(Princ "\nHay chon vung muon xoa:")

(setq SS (ssget (list (cons 62 LDT)

)

)

)

(if (Null ss)

(princ (strcat "\nKhong tim thay doi tuong nao co mau: trong vung vua chon !"))

)

(IF (/= NIL SS) (PROGN

(setq Sl (SSLength SS))

(command ".erase" ss "")

(princ (strcat "\nDa xoa: doi tuong co mau: "))

)

)

 

)

)

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

Bạn ko nên hứa bừa nhé. Mổi nic chỉ thank được có 1 lần thôi mà bạn đòi thank 100 phát hử? :cheers: Chỉ cần bạn đóng góp tích cực cho diển đàn là ngon rồi.

Cám ơn anh Duy nhé.

Lisp trên chạy ngon. Chỉ có điều màu của đối tượng không phài là bylayer mới thực hiện được.

Nếu có thể Anh viết thêm một Lisp đổi màu đối tượng là Bylayer sang màu của chính nó có được không?

Cảm ơn anh.

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
Cám ơn anh Duy nhé.

Lisp trên chạy ngon. Chỉ có điều màu của đối tượng không phài là bylayer mới thực hiện được.

Nếu có thể Anh viết thêm một Lisp đổi màu đối tượng là Bylayer sang màu của chính nó có được không?

Cảm ơn anh.

Đây là đoạn đọc color của layer chứa đối tượng bạn linh động dùng cho đúng mục đích của bạn.

 

(Defun c:ml ( )

 

(setq ddd (entsel "\nChon doi tuong mau"))

 

(setq DT (car ddd))

(setq DTM (entget DT))

(setq LOP (cdr (assoc 8 DTM)))

(setq TENLOP (TBLOBJNAME "LAYER" LOP))

(setq DOCLOP (entget TENLOP))

(setq MAULOP (cdr (assoc 62 DOCLOP)))

 

 

(princ (strcat "\ndoi tuong thuoc layer: <" lop "> color so:<" (rtos MAULOP) ">"))

(Princ)

)

  • Like 1
  • Vote tăng 4

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
Cái lisp xóa theo lớp của Bác dùng ngon. Thank Bác thêm 1 phát nữa :cheers: từ sáng đến giờ em thank Bác được 10 fát rồi đó chứ. Em không có hứa bừa đâu. hehee, cứ từ từ rồi em sẽ chồng đủ cho Bác 100 phát thank :cheers:

Gớm ghê nhỉ,

Chỉ một phát thanks là bác ấy đã tỉnh người rồi, lại còn đòi trăm phát thì định cho bác ấy về hưu non à? Khổ thế, đúng là làm phúc phải tội bác Duy nhẩy.

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
Lệnh là: xla

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

;;;;;;;;;;;;;;;;;;;;;;;

 

(Defun c:XLa ( )

(prompt "\nChon doi tuong thuoc layer muon xoa.")

(setq DT (car (entsel)))

(setq DT (entget DT))

(setq LDT (cdr (assoc 8 DT)))

(Princ "\nHay chon vung muon xoa:")

(setq SS (ssget (list (cons 8 LDT)

)

)

)

(if (Null ss)

(princ (strcat "\nKhong tim thay doi tuong nao thuoc layer: <" LDT "> trong vung vua chon !"))

)

(IF (/= NIL SS) (PROGN

(setq Sl (SSLength SS))

(command ".erase" ss "")

(princ (strcat "\nDa xoa: <" (itoa sl) "> doi tuong thuoc layer: <" LDT ">"))

)

)

(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

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

lệnh FG, ẩn các đối tượng theo từng layer

(defun c:fg(/ err oer obj lay cla loop mode intro lis)
 (defun err(s)
(if (and (/= s "Function cancelled") (/= s "quit / exit abort"))
  (princ (strcat "\n>>Error: " s))
  )
(setq *error* oer)
(command "_.Undo" "_End")
(setvar "Cmdecho" 1)
(princ)
)
 (setvar "Cmdecho" 0)
 (command "_.Undo" "_Group")
 (setq oer *error*
*error* err
cla (getvar "Clayer")
loop T
mode "All"	
)

 (while loop
(setq intro (strcat "\nSelect an object to set object's layer [Reset/Freeze/locK/Off/All] (" mode "): ")
  lis '("Freeze" "locK" "Off" "All")
  )
(initget "Freeze locK Off All Reset")
(setq obj (entsel intro))
(if (null obj)(exit))
(if (not (member obj lis))
  (setq loop nil)
  (setq mode obj)
  )
)
 (if (/= obj "Reset")
(progn
  (setq lay (cdr (assoc 8 (entget (car obj))))
	intro (strcat "Cannot Freeze curent layer \"" lay "\".")
	)
  (princ (strcat "\n--->> Layer \"" lay "\" found... "))
  )
(setq mode obj)
)
 (cond
((= mode "locK")(command "_.Layer" "_Lock" lay ""))
((= mode "Off")
 (if (= cla lay)
   (command "_.Layer" "_OFF" lay "_Yes" "")
   (command "_.Layer" "_OFF" lay "")
   ))
((= mode "Freeze")
 (if (= cla lay)
   (princ intro)
   (command "_.Layer" "_Freeze" lay"")
   ))
((= mode "All")
 (if (= cla lay)
   (progn
 (princ intro)
 (command "_.Layer" "_OFF" lay "_Yes" "_Lock" lay "")
 )
   (command "_.Layer" "_OFF" lay "_Freeze" lay "_Lock" lay "")
   ))
((= mode "Reset")
 (progn
   (setq lay (getstring "\n--->> Enter layer name to reset: "))
   (command "_.Layer" "_Thaw" lay "_On" lay "_Unlock" lay "")
   )
 )
)

 (setq *error* oer)
 (command "_.Undo" "_End")
 (setvar "Cmdecho" 1)
 (princ)
)

(princ)

bạn them khảo thử xem

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  

×