Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
11 replies to this topic

#1 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 08 May 2014 - 09:56 AM

Đ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.c...66960_thu_1.dwg

cám ơn nhiều


  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 10 May 2014 - 02:11 PM

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


  • 1

#3 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 10 May 2014 - 11:19 PM

Đ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.c...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.c...onghophoga.html


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 12 May 2014 - 07:37 AM

Cám ơn Bác Bình và Bác Tot77 nhiều. 

Chúc 2 Bác sức khoẻ, có 1 tuần làm việc hiệu quả


  • 0

#5 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 12 May 2014 - 07:55 AM

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.c...onghophoga.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???


  • 1

#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 12 May 2014 - 10:05 AM

Đã 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.


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

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 12 May 2014 - 10:30 AM

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.c...66960_thu_2.dwg


  • 0

#8 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 12 May 2014 - 11:48 PM

Ý 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.c...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


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 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 13 May 2014 - 12:15 AM

Ý 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.c...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.c...tonghophoga.lsp


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#10 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 13 May 2014 - 07:13 AM

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.


  • 0

#11 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 13 May 2014 - 07:17 AM

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.c...tonghophoga.lsp

Không down được Bác ơi


  • 0

#12 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 13 May 2014 - 10:58 AM

Không down được Bác ơi

Hề hề hề,

Trang dơnload của diễn đàn dạo này quá tệ.

Bạn down lại từ link dưới đây:

 

http://www.4shared.c...ophoga__1_.html


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.