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

[yêu cầu] Lisp đếm số lượng đối tượng

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

Mình nhờ các bạn viết hộ lisp như thế này:

Đếm số đối tượng trong bản vẽ như: line, pline, spline, circle, acr. rectangle, pollygon, elipse,...

với điều kiện các đối tượng trên phải giống nhau về kích thước và hình dạng(tính cả các đối tượng đã xoay đi một góc bất kỳ nào đó như rectangle,squae,polygon mà vẫn đảm bảo về kích thước và hình dạng), các đối tượng giống hệt nhau mà nằm đè lên nhau thì xóa bỏ.

Lisp có thể theo trình tự sau:

- Nhập lệnh.

- Chọn vùng tìm kiếm đối tượng.

- Kết thúc lệnh

- Hiển thị kết quả của đối tượng được chọn: "Số lượng đối tượng là: x"

 

P/s: Nếu có thể thì phát triển giúp mình lisp chọn đếm cả đối tượng là block(các block này cũng là giống nhau tính cả block đã quay trừ những block đã scale)

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âu hỏi không rõ nghĩa ở chỗ "giống nhau" và khác nhau để làm gì, trong khi y/c cuối cùng là tổng số đối tượng được chọ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

Câu hỏi không rõ nghĩa ở chỗ "giống nhau" và khác nhau để làm gì, trong khi y/c cuối cùng là tổng số đối tượng được chọn?

 

Tại mình chỉ cần đếm các đối tượng giống nhau về kích thước tránh việc đếm cả các đối tượng đã thay đổi tỉ lệ bởi lệnh stretch, scale. Còn yêu cầu cuối đó là hiển thị cái số lượng các đối tượng giống nhau đếm được 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

Giống là giống cái j ? Trong 1 nhóm có A A A B B B C C C thì nó hiển thị cái j hả bạn ? Bạn yêu cầu nhều mà cái nào cũng dở đoạn :)

Theo mình thì nên yêu cầu là : Chọn đối tượng mẫu trước

Sau đó thì mới có những bước sau :)

  • 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

Giống là giống cái j ? Trong 1 nhóm có A A A B B B C C C thì nó hiển thị cái j hả bạn ? Bạn yêu cầu nhều mà cái nào cũng dở đoạn :)

Theo mình thì nên yêu cầu là : Chọn đối tượng mẫu trước

Sau đó thì mới có những bước sau :)

Giống là giống cái j ?

Ví dụ các đối tượng cùng là circle thì phải có cùng đường kính, line thì có cùng chiều dài.

 

Trong 1 nhóm có A A A B B B C C C thì nó hiển thị cái j hả bạn ?

Khi quyét vùng chọn đó mà có nhiều loại đối tượng giống nhau ví dụ như có 20 circle cùng đường kính và 10 line cùng chiều dài(các đối tượng giống nhau mà nằm đè nên nhau sẽ xóa)

hiển thị như sau:

Đối tượng circle là: 20

Đối tượng line là: 10

Theo mình thì nên yêu cầu là : Chọn đối tượng mẫu trước

Sau đó thì mới có những bước sau :)

Nếu cần thiết phải chọn đối tượng mẫu thì có thể thêm bước này cũng được mà bạ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

hic hic các bác cứu em với. em mới học cad.em có một bản vẽ điện. em muốn đếm trong đó có mấy cái ổ cắm mấy cái bóng đèn mấy cái công tắc mà không biết làm thế nào. em đọc mấy bài các bác nói mà không biết phải làm thế nào.thử mọi cách mà vẫn không được. các bác đừng mắng em nhé. em 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

hic hic các bác cứu em với. em mới học cad.em có một bản vẽ điện. em muốn đếm trong đó có mấy cái ổ cắm mấy cái bóng đèn mấy cái công tắc mà không biết làm thế nào. em đọc mấy bài các bác nói mà không biết phải làm thế nào.thử mọi cách mà vẫn không được. các bác đừng mắng em nhé. em cảm ơn

Hề hề hề,

Hãy gửi bản vẽ lên để xem cái ổ cắm nó tròn hay méo, cái công tắc nó thò hay thụt thì mới biết đường mà đếm chứ hè.

  • 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ình cũng đang tìm mục này, cụ thể như dự án thoát nước của mình phụ kiện Te, Cút, Y thoát thiết kế không vẽ bằng block mà vẽ bằng Polyline và có màu khác nhau, giờ đi đếm phụ kiện thủ công bằng tay cũng hơi đuối, nhờ các bạn hỗ giúp dùm.

image.thumb.png.708b86505ae597797822eab2ec062c63.png

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

Chào bạn,

Mình có mong muốn sau:

1. Có thể đếm được tổng số lượng đối tượng

2. Ghi thứ tự từng số đếm của đối tượng để có thể kiểm tra phụ kiện nào bị sót chưa đếm (tạo 1 layer mới số đếm này để dễ quản lý)

3. Có thể lọc đối tượng theo Layer, màu, polyline...

Cảm ơn các bạn.

Đếm đối tượng.dwg

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 11/6/2021 tại 11:25, lanvientkh đã nói:

Chào bạn,

Mình có mong muốn sau:

1. Có thể đếm được tổng số lượng đối tượng

2. Ghi thứ tự từng số đếm của đối tượng để có thể kiểm tra phụ kiện nào bị sót chưa đếm (tạo 1 layer mới số đếm này để dễ quản lý)

3. Có thể lọc đối tượng theo Layer, màu, polyline...

Cảm ơn các bạn.

Đếm đối tượng.dwg

Mình cũng đang hóng Lisp này các bác @ketxu @Doan Van Hagiúp một tay được không bạn ơi 

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

 

2 giờ trước, lanvientkh đã nói:

chưa có cao nhân nào giúp mình, buồn quá


Thấp nhân như mình cứ ngồi hóng chờ xài ké th ^^
Bạn có thể nhờ rất nhiều người trên 4room viết có phí cho yêu cầu này, chắc là sẽ đỡ thời gian chờ đi đó

  • Like 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/6/2021 tại 23:06, lanvientkh đã nói:

Mình cũng đang tìm mục này, cụ thể như dự án thoát nước của mình phụ kiện Te, Cút, Y thoát thiết kế không vẽ bằng block mà vẽ bằng Polyline và có màu khác nhau, giờ đi đếm phụ kiện thủ công bằng tay cũng hơi đuối, nhờ các bạn hỗ giúp dùm.

image.thumb.png.708b86505ae597797822eab2ec062c63.png

nếu các tee co cut dùng bằng các layer khác nhau thì đếm dễ =)))

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 24/6/2021 tại 11:45, lanvientkh đã nói:

chưa có cao nhân nào giúp mình, buồn quá

Hôm nay mới đọc được topic này. Lisp cần chia ra rất nhiều trường hợp gọi là các đối tượng 2D "giống nhau" theo ý của chủ topic từ dễ đến khó:

- Line             : cùng chiều dài

- Circle          : cùng bán kính

- Ellipse        : cùng độ dài trục lớn và độ dài trục nhỏ

- Polyline hở (có > 2 node) : khi quay (Align) cho vecto điểu đầu điểm cuối của mỗi đa giác cùng hướng thì vecto cho từng cặp node, phải bằng nhau

- Polyine kín (có > 2 node) : khi quay (Align) cho vecto điểu đầu điểm gần cuối của mỗi đa giác cùng hướng thì vecto cho từng cặp node, phải bằng nhau.

- Spline hở hoặc kín : thuật toán làm giống như Polyline hở hay polyline kín

- Hatch                       : cùng diện tích, truy tìm các node đường bao (nếu có) của hatch, thuật toán cũng làm như polyine kín. nếu không có node đường bao như hatch của 1 circle, 1 ellipse, thì thuật toán so sánh đường bao giống như circle hoặc ellipse.

- Block thường                       : cùng tên block, cùng tỷ lệ chèn

- BlockATT                             : cùng tên block, cùng tỷ lệ chèn, các cặp att (cùng tên tag) có giá trị chuỗi giống nhau,

- Block không Att, dynamic : cùng tên block, cùng tỷ lệ chèn X, Y, Z, các cặp giá trị thuộc tính động cùng tên giống nhau

- Block có Att, dynamic        : cùng tên block, cùng tỷ lệ chèn X, Y, Z, các cặp att (cùng tên tag) có giá trị chuỗi giống nhau, các cặp giá trị thuộc tính động cùng tên giống nhau.

Sơ sơ đã là 12 trường hợp để so sánh các đối tượng 2D "giống nhau".

Mình viết được lisp này, nhưng mất rất nhiều thời gian.

 

 

 

  • Like 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
17 giờ trước, cuongtk2 đã nói:

Khuyên bác đừng cố vuốt thẳng sợi lông.:-). Nó rất khó mà không có giá trị thực tiễn cao.

Bác nói đúng nhưng dùng hình tượng “lông lá” có vẻ không được mỹ quan cho lắm!!

Chắc bác @thiep chưa hiểu yêu cầu của bác @lanvientkh nên thay vì viết 1 lisp đơn giản đếm đtg theo màu, bác lại “phóng đại” thành đếm mọi loại đối tượng!! Haizz!!

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
23 giờ trước, 7o7 đã nói:

Bác nói đúng nhưng dùng hình tượng “lông lá” có vẻ không được mỹ quan cho lắm!!

Chắc bác @thiep chưa hiểu yêu cầu của bác @lanvientkh nên thay vì viết 1 lisp đơn giản đếm đtg theo màu, bác lại “phóng đại” thành đếm mọi loại đối tượng!! Haizz!!

 

Vào lúc 22/9/2012 tại 23:04, CUONG20051982 đã nói:

Mình nhờ các bạn viết hộ lisp như thế này:

Đếm số đối tượng trong bản vẽ như: line, pline, spline, circle, acr. rectangle, pollygon, elipse,...

với điều kiện các đối tượng trên phải giống nhau về kích thước và hình dạng(tính cả các đối tượng đã xoay đi một góc bất kỳ nào đó như rectangle,squae,polygon mà vẫn đảm bảo về kích thước và hình dạng), các đối tượng giống hệt nhau mà nằm đè lên nhau thì xóa bỏ.

Lisp có thể theo trình tự sau:

- Nhập lệnh.

- Chọn vùng tìm kiếm đối tượng.

- Kết thúc lệnh

- Hiển thị kết quả của đối tượng được chọn: "Số lượng đối tượng là: x"

 

P/s: Nếu có thể thì phát triển giúp mình lisp chọn đếm cả đối tượng là block(các block này cũng là giống nhau tính cả block đã quay trừ những block đã scale)

Ý của @CUONG20051982 đâu có nói về đối tượng màu, còn ý của @lanvientkh thì khác, đơn giản hơn.

Giờ Thiep cũng đang viết cho 1 dự án lớn: thống kê đối tượng, nó chiếm hết thời gian nên không giúp được.

Đầu bài của @CUONG20051982 là 1 bài toán hay đó chứ, có thể rất giúp ích cho các bạn làm thống kê đối tượng như điện nước, trang trí nội thất... ví dụ thống kê  gạch (rectangle, triangle), ống pipe (line, mline, polyline), diện tích bồn hoa (hatch, polyline),... thống kê các block...

Đôi khi con gái cũng phải biết sủi thẳng tóc cho dễ coi hơn, dễ thương hơn. he he.

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

@thiepTheo em :

- Đếm số lượng giống nhau thì nên dùng block.

- Thống kê chiều dài dựa theo layer của các curve

- Thống kê diện tích dựa theo layer của hatch hoặc pline. Xử lý được diện tích cho boundary tự giao cắt (self intersect) vì lúc đó hatch không truy xuất được property Area. Pline thì truy xuất được nhưng sai , tuy nhiên trên Palette properties diện tích pline vẫn đúng. Em có post lên 1 file dll dùng để lấy diện tích những hatch, pline cứng đầu như vậ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

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  

×