Chuyển đến nội dung
Diễn đàn CADViet
ttmt_jses

[Yêu Cầu] Lisp thống kê đoạn thẳng

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

Vào lúc 6/4/2019 tại 15:39, huunhantvxdts đã nói:

sửa lại cho bạn có vòng lặp và chạy được còn kết quả theo của bạn


(defun C:TTC ();(D H1 H2 WF TL1 K P1 P2 P3 P4 P5 P6 P7 P8 PT PT1 P9 P10 P11 P12 P13 TTL L)
(SETVAR "cmdecho" 0)
(command "undo" "begin")
(setq LADIN (GETVAR "dimzin"))
(setq LAOS (GETVAR "osmode"))
(setq STY (GETVAR "textstyle"))
(setq D (TBLSEARCH "style" STY))
(setq H1 (CDR (ASSOC 40 D)))
(setq H2 (CDR (ASSOC 42 D)))
(setq WF (CDR (ASSOC 41 D)))
(setq H H2)
;(setq L 0)
(setq TL 1)
(setq TL1 (GETREAL (STRCAT (RTOS TL 2 0) " >: 1/")))
(setq TL TL1)
(setq K 0)
(setq TTL 0)
(SETVAR "dimzin" 0)
(SETVAR "OSMODE" 0)
(setq PT (GETPOINT "\nChon diem xuat bang thong ke: "))
(setq P1 (LIST (+ (CAR PT) (* 6 H)) (CADR PT)))
(setq P2 (LIST (+ (CAR PT) (* 22 H)) (CADR PT)))
(setq P3 (LIST (CAR PT) (- (CADR PT) (* 3 H))))
(setq P4 (LIST (CAR P1) (CADR P3)))
(setq P5 (LIST (CAR P2) (CADR P3)))
(setq P6 (LIST (+ (CAR PT) (* 11 H)) (+ (CADR PT) (* 2 H))))
(setq P7 (LIST (+ (CAR PT) (* 3 H)) (- (CADR PT) (* 1.5 H))))
(setq P8 (LIST (+ (CAR PT) (* 14 H)) (- (CADR PT) (* 1.5 H))))
(command "pline" PT P2 P5 P3 "C")
(command "pline" P1 P4 "")
(command "TEXT" "M" P6 "" "" "BANG THONG KE CHIEU DAI" "")
(command "TEXT" "M" P7 "" "" "STT" "")
(command "TEXT" "M" P8 "" "" "CHIEU DAI" "")
(while (setq E (CAR (ENTSEL "\n Chon doi tuong tinh chieu dai : ")))
(setq K (1+ K))
(setq PT (LIST (CAR P3) (CADR P3)))
(setq P1 (LIST (+ (CAR PT) (* 6 H)) (CADR PT)))
(setq P2 (LIST (+ (CAR PT) (* 22 H)) (CADR PT)))
(setq P3 (LIST (CAR PT) (- (CADR PT) (* 3 H))))
(setq P4 (LIST (CAR P1) (CADR P3)))
(setq P5 (LIST (CAR P2) (CADR P3)))
(setq P7 (LIST (+ (CAR PT) (* 3 H)) (- (CADR PT) (* 1.5 H))))
(setq P8 (LIST (+ (CAR PT) (* 14 H)) (- (CADR PT) (* 1.5 H))))
(setq P9 (LIST (CAR PT) (- (CADR P3) (* 3 H))))
(setq P10 (LIST (CAR P1) (CADR P9)))
(setq P11 (LIST (CAR P2) (CADR P9)))
(setq P12 (LIST (CAR P7) (- (CADR P3) (* 1.5 H))))
(setq P13 (LIST (CAR P8) (CADR P12)))
(setq L (* (LEN E) TL))
(setq TTL (+ L TTL))
(command "pline" PT P2 P5 P3 "C")
(command "pline" P1 P4 "")
(command "TEXT" "M" P7 "" "" (RTOS K 2 0) "")
(command "TEXT" "M" P8 "" "" (RTOS L 2 2) "")
;(setq E (CAR (ENTSEL (STRCAT "\nTong chieu dai = " (RTOS TTL 2 3) ". Chon doi tuong tiep theo..."))))
)
(SETVAR "DIMZIN" LADIN)
(command "pline" P3 P9 P11 P5 "C")
(command "pline" P10 P4 "")
(command "TEXT" "M" P12 "" "" "TONG" "")
(command "TEXT" "M" P13 "" "" (RTOS TTL 2 2) "")
(SETVAR "OSMODE" LAOS)
(command "undo" "end")
  )
;(defun LEN (E))
(defun LEN(E) (vlax-curve-getDistAtParam E (vlax-curve-getEndParam E)))
;(defun WTXT_M (TXT  P / STY D H1 H2 WF H)
;(setq STY (GETVAR "textstyle"))
;(setq D (TBLSEARCH "style" STY))
;(setq H1 (CDR (ASSOC 40 D)))
;(setq H2 (CDR (ASSOC 42 D)))
;(setq WF (CDR (ASSOC 41 D)))
;(setq H H1)
;)

 

 

Vào lúc 17/9/2013 tại 10:26, trieubb đã nói:

Lệnh rất hay bác ạ nhưng bác có thể viết them 1 cái là chỉ cần thống kê chiều dài và tên layer ra luôn bản vẽ và đặt cạnh từng đoạn luôn không bác, thanks bác nhiều.Chờ tin bác

List mình test thử ko xuất dc kết quả. List của bạn rất hay, ủng hộ bạn.

  • 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
37 phút trước, onggia83 đã nói:

 

List mình test thử ko xuất dc kết quả. List của bạn rất hay, ủng hộ bạn.

Lỗi thế nào bạn phải chụp hình copy cái thông báo lên chứ??

 

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 đã test lại và hoạt động tốt. List rất bổ ích. Chúc bạn luôn mạnh khỏe và thành công trong cuộc sống.

 

  • 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 2/3/2017 tại 08:35, a12k39duchao đã nói:

Đáp án của bạn đây.

Thực hiện bởi anh #quocmanh04tt

https://drive.google.com/file/d/0B2LetfHDljPGUThCUGJfV3FuWVU/view

Bác ơi file bác đã hoàn hảo lắm rồi. Tuy nhiên bác có thể làm thêm một ít chức năng nữa không ạ:

1/ tất cả những polyline có tổng chiều dài giống nhau gom lại và thống kê ra số lượng bao nhiêu luôn được không ạ? sao cho những polyline giống nhau chỉ xuất về cùng 1 dòng ghi ra số lượng bao nhiêu thô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

×