Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
12 replies to this topic

#1 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 04 November 2008 - 10:31 AM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#2 oizdoi_oi

oizdoi_oi

    biết dimlinear

  • Members
  • PipPipPipPipPip
  • 306 Bài viết
Điểm đánh giá: 452 (tốt)

Đã gửi 04 November 2008 - 10:56 AM

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à
  • 0
KTS không bao giờ chết đói...mà chỉ đói đến lúc chết!

#3 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 04 November 2008 - 10:57 AM

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

  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 04 November 2008 - 12:39 PM

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 ạ
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 04 November 2008 - 12:41 PM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#6 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 04 November 2008 - 01:46 PM

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

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 04 November 2008 - 01:56 PM

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

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 05 February 2009 - 09:05 AM

Đâ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ử? :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.
  • 0

#9 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 05 February 2009 - 09:19 AM

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

  • 4

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#10 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 12 February 2009 - 03:10 PM

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

#11 son_gtvt2002

son_gtvt2002

    Chưa sử dụng CAD

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

Đã gửi 18 December 2009 - 10:06 AM

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


  • 0

#12 son_gtvt2002

son_gtvt2002

    Chưa sử dụng CAD

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

Đã gửi 18 December 2009 - 10:08 AM

CAM ON BAC VE DOAN CODE NAY. E DANG TAP VIET LISP. XIN MANG PHEP BAC E SUA LAI TI CHUT CHO GIONG LENH "XL" COA NOVA DE DE SU DUNG. CAM ON BAC NHIEUUUUUUUUU!!!!!!!!!!!
  • 0

#13 hdg2318

hdg2318

    biết lệnh mirror

  • Members
  • PipPipPip
  • 158 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 19 December 2009 - 03:10 PM

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

Có 2 cách để nhìn đời:
1 là : coi như chẳng có gì là huyền diệu
2 là : coi như mọi điều đều huyền diệu


Click here