Đến nội dung


Hình ảnh

Đếm block thuộc tính


  • Please log in to reply
6 replies to this topic

#1 eng-hiep

eng-hiep

    biết lệnh erase

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

Đã gửi 17 December 2009 - 04:42 PM

Chào các bác ,

Em muốn thống kê số lượng block có cùng thuộc tính thì có cách nào không ạ ? Ví dụ như trong file cad em đính kèm muốn đếm có bao nhiêu block Đ2 , Đ3 , S1 , S2...đấy ạ .

Thx

http://www.mediafire.com/?zvumnil3q5n
  • 0

#2 hng

hng

    biết vẽ spline

  • Members
  • PipPip
  • 92 Bài viết
Điểm đánh giá: 49 (tàm tạm)

Đã gửi 17 December 2009 - 05:07 PM

Bạn thích thế này không
http://www.cadviet.c...files/2/att.rar
  • 1
Present

#3 eng-hiep

eng-hiep

    biết lệnh erase

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

Đã gửi 18 December 2009 - 09:36 AM

Bạn thích thế này không
http://www.cadviet.c...files/2/att.rar

Dạ chưa được như ý muốn bác à . Em muốn thống kê ra số lượng Đ1 ,Đ2,S1...luôn đấy ạ . Chứ ko phải là D và S thôi , mà ko biết 3424 là gì ấy nhỉ ^^
Mong các cao thủ giúp đỡ . Thx
  • 0

#4 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 18 December 2009 - 01:03 PM

Dạ chưa được như ý muốn bác à . Em muốn thống kê ra số lượng Đ1 ,Đ2,S1...luôn đấy ạ . Chứ ko phải là D và S thôi , mà ko biết 3424 là gì ấy nhỉ ^^
Mong các cao thủ giúp đỡ . Thx

Hề hề,
Chào bạn eng_hiep,
Cao thủ thì hơi hiếm, song thấp thủ thì có đây. Bạn xài thử cái củ lisp này xem có bị giắt răng tí nào không nhé.

(defun c:cbl (/ a d ss i n c)
(setq a (getstring "\n Nhap ky tu dau cua block: ")
d (getstring "\n Nhap ky tu duoi cua block: ")
ss (ssget "X" (list (cons 0 "INSERT") (cons 2 a) (cons 66 1)))
i 0
n (sslength ss)
c 0 )
(while (< i n)
(setq ent (ssname ss i)
elst (entget (entnext ent)))
(if (= (cdr (assoc 1 elst)) d)
(setq c (1+ i))
)
(setq i (1+ i))
)
(alert (strcat " Có " (itoa c) " block " a d " tren ban ve."))
(princ "\n He he đúng chua???")
(princ)
)


Nếu thấy giắt răng chỗ nào, bạn cứ post lên sẽ có nha sĩ gỡ giùm bạn. Hề hề hề. Chúc bạn ngon miệng.

Code lisp đã được chỉnh sửa bởi PhamThanhBinh để khắc phục lỗi do upload ngày 18-12-2009
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 eng-hiep

eng-hiep

    biết lệnh erase

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

Đã gửi 18 December 2009 - 02:02 PM

Hề hề,
Chào bạn eng_hiep,
Cao thủ thì hơi hiếm, song thấp thủ thì có đây. Bạn xài thử cái củ lisp này xem có bị giắt răng tí nào không nhé.


(defun c:cbl (/ a b ss i n c)
(setq a (getstring "\n Nhap ky tu dau cua block: ")
b (getstring "\n Nhap ky tu duoi cua block: ")
ss (ssget "X" (list (cons 0 "INSERT") (cons 2 a) (cons 66 1)))
i 0
n (sslength ss)
c 0 )
(while (< i n)
(setq ent (ssname ss i)
elst (entget (entnext ent)))
(if (= (cdr (assoc 1 elst)) b )
(setq c (1+ i))
)
(setq i (1+ i))
)
(alert (strcat " Có " (itoa c) " block " a b " tren ban ve."))
(princ "\n He he đúng chua???")
(princ)
)


Nếu thấy giắt răng chỗ nào, bạn cứ post lên sẽ có nha sĩ gỡ giùm bạn. Hề hề hề. Chúc bạn ngon miệng.

Cao thủ cứ chơi em út hoài ^^ Giắt quá trời lun bác ui :rolleyes: Đếm số lượng bị sai (cái nào cũng đếm ra kết quả là 1 cả :() , Dùng lsp của bác xong em phải dùng thèn Task manager để tắt acad :rolleyes: Ah mà lsp của bác thiếu dấu ngoặc ở cuối đấy :rolleyes:

Code lisp đã được chỉnh sửa lại bởi PhamThanhBinh để khắc phục lỗi do upload ngày 18-12-2009
  • 0

#6 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 18 December 2009 - 08:25 PM

Cao thủ cứ chơi em út hoài ^^ Giắt quá trời lun bác ui :rolleyes: Đếm số lượng bị sai (cái nào cũng đếm ra kết quả là 1 cả :() , Dùng lsp của bác xong em phải dùng thèn Task manager để tắt acad :rolleyes: Ah mà lsp của bác thiếu dấu ngoặc ở cuối đấy :rolleyes:

Hề hề,
Cái vụ này là do lỗi upload của diễn đàn rồi. Chả hiểu sao trong lisp có ký tự b khi upload là nó tòi ra một đống loằng ngoằng chi chi đó. Vì thế nó chả thể nào tìm được cái giá trị đuôi của tên block cả bạn ạ. Mình đã sửa lại thay chỗ có ký tự b bằng ký tự d bạn ạ. Kiểm lại thì không thấy sai gì cả.
Bạn có thể load lại cái lisp này hoặc copy nó sang notepad và save lại với đuôi .lsp để dùng.

Cái vụ phải dùng thằng Task Manager để tắt Cad chắc cũng do thằng của nợ trên mà ra, còn lisp này hổng có thiếu ngoặc đâu nha. Nó chạy trên bản vẽ bạn gửi mình phe phé và chỉ dừng lại khi bạn tuýt còi thôi. Hề hề.
Cũng vì mình thấp thủ nên chưa biết cách sửa cái lỗi này bạn ạ.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#7 donimic

donimic

    biết vẽ arc

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

Đã gửi 21 December 2009 - 02:11 PM

Phải chuột chọn Quick Select, trong Type chọn Block Re.... (quên cái chữ này rùi), trong Name nhập tên Block muốn tìm (Ví du Đ1), OK. Chúng ta sẽ chọn dc tất cả block có tên là Đ1 trong bv, trên dòng Command sẽ thông kê ra số lượng đối tượng dc chọn.
Phải thế này hok??
  • 0