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

Đếm đối tượng trong bản vẽ cad!

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

Chào các bạn!

Các bạn cao thủ cho mình hỏi một vấn đề trong cad:

Trong một bản cad mình có rất nhiều đối tượng giống nhau (block chẳng hạn), mình muốn đếm số lượng đối tượng đó. Các bác nào có phương pháp nào chỉ giúp tôi với.

Mình 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
Chào các bạn!

Các bạn cao thủ cho mình hỏi một vấn đề trong cad:

Trong một bản cad mình có rất nhiều đối tượng giống nhau (block chẳng hạn), mình muốn đếm số lượng đối tượng đó. Các bác nào có phương pháp nào chỉ giúp tôi với.

Mình xin cảm ơn!

Bạn dùng thử cái này :

Ví dụ đếm số đối tượng Text :

(alert(strcat "Tong so doi tuong Text la :" (itoa(sslength(ssget'((0 . "TEXT")))))))

 

Ví dụ đếm số đối tượng Block :

(alert(strcat "Tong so doi tuong Block la :" (itoa(sslength(ssget'((0 . "INSERT")))))))

  • Vote tăng 2

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 bạn!

Các bạn cao thủ cho mình hỏi một vấn đề trong cad:

Trong một bản cad mình có rất nhiều đối tượng giống nhau (block chẳng hạn), mình muốn đếm số lượng đối tượng đó. Các bác nào có phương pháp nào chỉ giúp tôi với.

Mình xin cảm ơn!

 

cái này thì quá dễ, bạn hãy chon tất cả các đối tượng trên file bằng cách chọn select all, rồi chọn filter,để chọn loại đối tượng cần đếm, chảng hạn là block reference, rồi bạn chọn tên, vì mỗi block có một tên riêng, enter, nó sẽ ra kết quả là bao nhiêu đối tượng đó.

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òn một cách nữa là dùng quick select trong properties.

Trên diễn đàn có một vài chủ để về vấn đề này rồi mời bạn tham khảo nhé : http://www.cadviet.com/cadtips/1906_Quick_...c_chi_giao/139/

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

sao mình lấy trong thư viện cad ra mẫu cây (trees - metric) , array ra 90 đối tượng, xong có xóa đi 1 vài đối tượng.

rồi dùng lệnh filter đếm block name: trees - metric, mà cad ko đếm ra được 1 đối tượng nào hết? các bác có biết nguyên nhân ko giúp mình vớ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 có thể phản xạ cho các trường hợp khác bằng một đoạn code đơn giản sau:

 
(defun C:DSL (/ loaio) (if (not loai) (setq loai 0))   ;;; Dem So Luong ;;;
(setq loaio loai loai (getint (strcat "\nLoai 1:Line;2:Text;3:Dimension;4:Block;5:Circle;6:Polyline;7:Arc:[" (itoa loai) "]")))
(cond
  ((= loai 1) (prompt (strcat "\nTong so LINE la:"      (itoa (sslength (ssget '((0 . "LINE"))))) "\n")))
  ((= loai 2) (prompt (strcat "\nTong so TEXT la:"      (itoa (sslength (ssget '((0 . "TEXT"))))) "\n")))
  ((= loai 3) (prompt (strcat "\nTong so DIMENSION la:" (itoa (sslength (ssget '((0 . "DIMENSION"))))) "\n")))
  ((= loai 4) (prompt (strcat "\nTong so INSERT la:"    (itoa (sslength (ssget '((0 . "INSERT"))))) "\n")))
  ((= loai 5) (prompt (strcat "\nTong so CIRCLE la:"    (itoa (sslength (ssget '((0 . "CIRCLE"))))) "\n")))
  ((= loai 6) (prompt (strcat "\nTong so POLYLINE la:"  (itoa (sslength (ssget '((0 . "LWPOLYLINE"))))) "\n")))
  ((= loai 7) (prompt (strcat "\nTong so ARC la:"       (itoa (sslength (ssget '((0 . "ARC"))))) "\n")))))
;;; Neu muon mac dinh "ALL" bo xung them "X" sau ssget ;;;
 

Goodluck!

 

P/S: úi chà, mình nhầm!!!

sao mình lấy trong thư viện cad ra mẫu cây (trees - metric) , array ra 90 đối tượng, xong có xóa đi 1 vài đối tượng.

rồi dùng lệnh filter đếm block name: trees - metric, mà cad ko đếm ra được 1 đối tượng nào hết? các bác có biết nguyên nhân ko giúp mình với?

Bạn nên up file CAD lên trực tiếp cho dễ hiể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

mới có cách này. cái này là đếm đối tượng nha ( mình đang có 128 đối tượng)

đầu tiên explode các block ra

chọn lệnh SL (slice) 

quét hết bản vễ nó ra ntn ở dòng command: Select objects to slice: Specify opposite corner: 128 found (nó tìm thấy 128 đối tượng cắt) 

xong

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ới có cách này. cái này là đếm đối tượng nha ( mình đang có 128 đối tượng)

đầu tiên explode các block ra

chọn lệnh SL (slice) 

quét hết bản vễ nó ra ntn ở dòng command: Select objects to slice: Specify opposite corner: 128 found (nó tìm thấy 128 đối tượng cắt) 

xong

 

Phải chăng,  bản vẽ của anh chỉ có đúng 128 đối tượng block 3D mà mỗi block chỉ có 1 đối tượng thì khi quét hết bản vẽ nó mới ra như thế??? Nếu ngoài 128 đối tượng bock còn có nhiều chi tiết  khác nữa  và block được tạo thành từ nhiều đối tượng 3D dời dạc , anh tính sao??? :) :) :)

  • Vote giảm 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
Vào lúc 10/5/2013 tại 13:28, lyky đã nói:

Bạn có thể phản xạ cho các trường hợp khác bằng một đoạn code đơn giản sau:


 
(defun C:DSL (/ loaio) (if (not loai) (setq loai 0))   ;;; Dem So Luong ;;;
(setq loaio loai loai (getint (strcat "\nLoai 1:Line;2:Text;3:Dimension;4:Block;5:Circle;6:Polyline;7:Arc:[" (itoa loai) "]")))
(cond
  ((= loai 1) (prompt (strcat "\nTong so LINE la:"      (itoa (sslength (ssget '((0 . "LINE"))))) "\n")))
  ((= loai 2) (prompt (strcat "\nTong so TEXT la:"      (itoa (sslength (ssget '((0 . "TEXT"))))) "\n")))
  ((= loai 3) (prompt (strcat "\nTong so DIMENSION la:" (itoa (sslength (ssget '((0 . "DIMENSION"))))) "\n")))
  ((= loai 4) (prompt (strcat "\nTong so INSERT la:"    (itoa (sslength (ssget '((0 . "INSERT"))))) "\n")))
  ((= loai 5) (prompt (strcat "\nTong so CIRCLE la:"    (itoa (sslength (ssget '((0 . "CIRCLE"))))) "\n")))
  ((= loai 6) (prompt (strcat "\nTong so POLYLINE la:"  (itoa (sslength (ssget '((0 . "LWPOLYLINE"))))) "\n")))
  ((= loai 7) (prompt (strcat "\nTong so ARC la:"       (itoa (sslength (ssget '((0 . "ARC"))))) "\n")))))
;;; Neu muon mac dinh "ALL" bo xung them "X" sau ssget ;;;

 

Goodluck!

 

P/S: úi chà, mình nhầm!!!

Bạn nên up file CAD lên trực tiếp cho dễ hiểu bạn à!

sao lisp này không xài được nhỉ, Load vào máy báo error: syntax error

  • Vote giảm 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  

×