Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
huunhantvxdts

[yêu cầu] lisp tổng hợp khối lượng

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

Đang tổng hợp khối lượng nhưng phải làm thủ công nhờ mọi người giúp đỡ viết lisp tổng hợp

dựa vào các block att để tổng hợp từng loại hố ga và từng loại cống

file dính kèm

http://www.cadviet.com/upfiles/3/66960_thu_1.dwg

cám ơn nhiều

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
Tot77    501

Bạn xài cái này, có điều là tôi chỉ làm phần đầu thống kê ra thôi, phần còn lại (kẻ bảng, nhập chữ, tính tổng) thi bạn tự làm.


(defun c:tmp()
  (defun LM:CountItems ( l / c x ) ;;;Lee Mac
    (if (setq x (car l))
        (progn
            (setq c (length l)
                  l (vl-remove x (cdr l)))
            (cons (cons x (- c (length l))) (LM:CountItems l))
        )
    )
  )
  (setq l nil)
  (foreach v (acet-ss-to-list (ssget '((0 . "INSERT") (66 . 1))))
    (setq item1 nil)
    (foreach item (vlax-safearray->list (vlax-variant-value
       (vla-GetAttributes (setq obj (vlax-ename->vla-object v)))))         
   (cond ((= "LOAI_HG" (vla-get-TagString item))
    (setq l (cons (list "LOAI_HG" (vla-get-TextString item)) l)))
 ((and (not item1) (/= "LOAI_HG" (vla-get-TagString item)))
    (setq item1 (list (vla-get-TagString item) (vla-get-TextString item))))
 ((and item1 (= "CHIEU_DAI" (vla-get-TagString item)))
    (setq l (cons (append item1 (list "CHIEU_DAI" (vla-get-TextString item))) l)))
 ((and item1 (= "DUONG_KINH" (vla-get-TagString item)))
    (setq l (cons (cons (list "DUONG_KINH" (vla-get-TextString item)) item1) l)))
 )
    )
  )
  (setq st "")
  (foreach v (LM:CountItems l)
     (cond ((= (caar v) "LOAI_HG") (setq st (strcat st "\nHo ga loai " (cadar v) " : " (itoa (cdr v)))))
  ((= (caar v) "DUONG_KINH") (setq st (strcat st "\nLoai cong duong kinh "
(cadar v)  " chieu dai " (last (car v)) " : " (itoa (cdr v))))) 
     )
  )
  (princ st) (textscr) (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
phamthanhbinh    3.123

Đang tổng hợp khối lượng nhưng phải làm thủ công nhờ mọi người giúp đỡ viết lisp tổng hợp

dựa vào các block att để tổng hợp từng loại hố ga và từng loại cống

file dính kèm

http://www.cadviet.com/upfiles/3/66960_thu_1.dwg

cám ơn nhiều

Hề hề hề,

Tưởng chưa có ai rảnh quan tâm tơi vấn đề này nên mình đã làm thử cái này.Hãy dùng thử và cho biết ý kiến nếu cần hoàn thiện.

Lưu ý rằng kết quả đưa ra không giống như của bạn nhưng đảm bảo là chuẩn xác hơn và hợp lý hơn.

http://www.4shared.com/file/qPL0lag7ba/thongketonghophoga.html

  • 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

Hề hề hề,

Tưởng chưa có ai rảnh quan tâm tơi vấn đề này nên mình đã làm thử cái này.Hãy dùng thử và cho biết ý kiến nếu cần hoàn thiện.

Lưu ý rằng kết quả đưa ra không giống như của bạn nhưng đảm bảo là chuẩn xác hơn và hợp lý hơn.

http://www.4shared.com/file/qPL0lag7ba/thongketonghophoga.html

Đã text của Bác những kết quả không đúng cho lắm. 

1. Phần thông kê hố ga đã đúng

2. phần chiều dài cống cho hết quả không đúng nhờ Bác xem lại dùm.

3. Có ý kiến Bác sử dụng hàm ssget luôn có được không???

  • 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
phamthanhbinh    3.123

Đã text của Bác những kết quả không đúng cho lắm. 

1. Phần thông kê hố ga đã đúng

2. phần chiều dài cống cho hết quả không đúng nhờ Bác xem lại dùm.

3. Có ý kiến Bác sử dụng hàm ssget luôn có được không???

Hề hề hề,

2/- Hãy gửi file cho kết quả không đúng lên. Lisp đã được test với file bản vẽ mẫu bạn gửi lên trong cả 2 trường hợp đều đúng cả. Lưu ý rằng bảng thống kê bạn đã làm là sai so với thực tế của bản vẽ. Hãy kiểm tra lại.

3/- Không hiểu gợi ý của bạn. Nếu bạn đã hiểu và rành rẽ về lisp thì có thể tự chỉnh sửa những điều còn chưa phù hợp với ý kiến cá nhân của bạn sẽ tốt hơn là người khác làm bạn ạ. Có thể lấy cái lisp mà mình đã gửi để tham khảo và hoàn thiện lại theo đúng ý của bạn.

Chúc thành công.

  • 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

Hề hề hề,

2/- Hãy gửi file cho kết quả không đúng lên. Lisp đã được test với file bản vẽ mẫu bạn gửi lên trong cả 2 trường hợp đều đúng cả. Lưu ý rằng bảng thống kê bạn đã làm là sai so với thực tế của bản vẽ. Hãy kiểm tra lại.

3/- Không hiểu gợi ý của bạn. Nếu bạn đã hiểu và rành rẽ về lisp thì có thể tự chỉnh sửa những điều còn chưa phù hợp với ý kiến cá nhân của bạn sẽ tốt hơn là người khác làm bạn ạ. Có thể lấy cái lisp mà mình đã gửi để tham khảo và hoàn thiện lại theo đúng ý của bạn.

Chúc thành công.

Ý 3 e sẽ sữa cũng được nhưng còn về phần thống kê e không hiểu cho lắm đây là file em text Bác xem lai cho

http://www.cadviet.com/upfiles/3/66960_thu_2.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
phamthanhbinh    3.123

Ý 3 e sẽ sữa cũng được nhưng còn về phần thống kê e không hiểu cho lắm đây là file em text Bác xem lai cho

http://www.cadviet.com/upfiles/3/66960_thu_2.dwg

Hề hề hề,

Đã xem lại, lisp thông kê ngon choét. Có nhẽ bạn đã thao tác sai khi chọn đối tượng block cống rồi. Lưu ý rằng hàm ssget chỉ chọn được các đối tượng đang hiểi thị trên màn hình hiện hành. Do đó nếu bạn zoom màn hình để cho block đủ to và nhìn thấy dễ dàng thì có thể bạn đã làm mất đi một số block khác và như vậy lisp sẽ không chọn được đầy đủ các đối tượng cần thống kê. Vì vậy trước khi chạy lisp nên zoom màn hình sao cho có thể nhìn thấy toàn bộ vùng chọn và không bị sót các đối tượng cần thống kê. Và đây là cái bảng thống kê mà mình chạy ra. Nó ngon hơn cái bảng thống kê mà bạn làm thủ công nhiều.

5194_bangthongke.jpg

  • 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
phamthanhbinh    3.123

Ý 3 e sẽ sữa cũng được nhưng còn về phần thống kê e không hiểu cho lắm đây là file em text Bác xem lai cho

http://www.cadviet.com/upfiles/3/66960_thu_2.dwg

Hề hề hề,

Và đây là lisp có sửa lại chút chút để nó zoom màn hình về toàn bộ vùng chọn trước khi chọn các đối tượng block. Điều này cho phép bạn thoải mái zoom màn hình sao cho có thể chọn được đúng các block cần chọn.

http://www.cadviet.com/upfiles/3/5194_thongketonghophoga.lsp

  • 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

Hề hề hề,

Đã xem lại, lisp thông kê ngon choét. Có nhẽ bạn đã thao tác sai khi chọn đối tượng block cống rồi. Lưu ý rằng hàm ssget chỉ chọn được các đối tượng đang hiểi thị trên màn hình hiện hành. Do đó nếu bạn zoom màn hình để cho block đủ to và nhìn thấy dễ dàng thì có thể bạn đã làm mất đi một số block khác và như vậy lisp sẽ không chọn được đầy đủ các đối tượng cần thống kê. Vì vậy trước khi chạy lisp nên zoom màn hình sao cho có thể nhìn thấy toàn bộ vùng chọn và không bị sót các đối tượng cần thống kê. Và đây là cái bảng thống kê mà mình chạy ra. Nó ngon hơn cái bảng thống kê mà bạn làm thủ công nhiều.

5194_bangthongke.jpg

Cám ơn Bác nhiều lắm. đúng như Bác nói do Zoom để chọn đối tượng cống nên ra kết quả như vậy.

e chạy ra thấy kết quả đá nhau nhưng không hiểu vì sao nữa.

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

Hề hề hề,

Và đây là lisp có sửa lại chút chút để nó zoom màn hình về toàn bộ vùng chọn trước khi chọn các đối tượng block. Điều này cho phép bạn thoải mái zoom màn hình sao cho có thể chọn được đúng các block cần chọn.

http://www.cadviet.com/upfiles/3/5194_thongketonghophoga.lsp

Không down được Bác ơ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

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  

×