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

LISP tính toán chiều dài đoạn thẳng

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

HI!!!!!

Cho mình hỏi có lisp nào có thể tự tính toán các đọan thẳng rùi sau đó cộng lại với nhau và cuối cùng là cho ra kết wả tổng chiều dài cuối hok

tương tự như lệnh list nhưng lệnh này chỉ hiện thông tin cho từng đọan thẳng và ho kcho ra tổng chiều dài

Có bạn nào bit chỉ mình với

thankssUUUUU!

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
HI!!!!!

Cho mình hỏi có lisp nào có thể tự tính toán các đọan thẳng rùi sau đó cộng lại với nhau và cuối cùng là cho ra kết wả tổng chiều dài cuối hok

tương tự như lệnh list nhưng lệnh này chỉ hiện thông tin cho từng đọan thẳng và ho kcho ra tổng chiều dài

Có bạn nào bit chỉ mình với

thankssUUUUU!

Bạn chạy thử LISP này :

(defun C:Chdai( / ss e d cdai total )
 (setq ss (ssget '((0 . "LINE")))
total 0
)
 (while (setq e (ssname ss 0))
   (setq d (entget e)
  cdai (distance (cdr(assoc 10 d)) (cdr(assoc 11 d)))
  total ( + total cdai)
  )
   (write-line (strcat "chieu dai : " (rtos cdai) ) )
   (ssdel e ss)
   )
 (write-line (strcat "Tong chieu dai : " (rtos total) ) )
 (textscr)
 (princ)  
 )

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 chạy thử LISP này :

(defun C:Chdai( / ss e d cdai total )
 (setq ss (ssget '((0 . "LINE")))
total 0
)
 (while (setq e (ssname ss 0))
   (setq d (entget e)
  cdai (distance (cdr(assoc 10 d)) (cdr(assoc 11 d)))
  total ( + total cdai)
  )
   (write-line (strcat "chieu dai : " (rtos cdai) ) )
   (ssdel e ss)
   )
 (write-line (strcat "Tong chieu dai : " (rtos total) ) )
 (princ)
 )

Hi!!!!!!

thanks bạn

nhưng sao mình thử hok dc

chỉ mới xong bước chọn đối tượng thui

soa đó ho k thấy có tác dụng ji hết

XIn bạn chỉ dẫn cho mình tí

thank!!!!!!!!!

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
HI!!!!!

Cho mình hỏi có lisp nào có thể tự tính toán các đọan thẳng rùi sau đó cộng lại với nhau và cuối cùng là cho ra kết wả tổng chiều dài cuối hok

tương tự như lệnh list nhưng lệnh này chỉ hiện thông tin cho từng đọan thẳng và ho kcho ra tổng chiều dài

Có bạn nào bit chỉ mình với

thankssUUUUU!

Chào bạn puch,

Bạn hãy chịu khó tìm trên diễn đàn nhé. Cái lisp này đã có rồi. Hãy chịu khó tìm kiếm trước khi post yêu cầu của mình.

Cám ơn 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
Chào bạn puch,

Bạn hãy chịu khó tìm trên diễn đàn nhé. Cái lisp này đã có rồi. Hãy chịu khó tìm kiếm trước khi post yêu cầu của mình.

Cám ơn bạn.

:cheers: hi !!!!

mình cũng bit chứ

nhưng hok thấy nên mới hỏi đó

bạn bit chổ nào chỉ cho mình tí

hoặc có cách nào tìm nhanh tí,

mình mò hoài chẳng ra

thankssss!!!!!

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
:cheers: hi !!!!

mình cũng bit chứ

nhưng hok thấy nên mới hỏi đó

bạn bit chổ nào chỉ cho mình tí

hoặc có cách nào tìm nhanh tí,

mình mò hoài chẳng ra

thankssss!!!!!

ko chạy được vì đường của bạn có thể là polyline chứ không phải là line như bạn yêu cầu viết lisp. Chắc chắn trên diễn đàn có lisp tính tổng chiều dài không những chỉ đoạn thẳng mà còn cả đường cong...

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

Nè cu thử nhé: :cheers: :s_big:

(defun c:dotongpl(/)

(setq chieudai 0.00)

(setq sspolyline (ssget))

(setq i 0)

(repeat (sslength sspolyline)

(setq polylinechon (ssname sspolyline i))

(setq polylinechon (vlax-ename->vla-object polylinechon))

(setq chieudai1 (vlax-get-property polylinechon 'length))

(setq chieudai (+ chieudai1 chieudai))

(setq i (+ i 1))

)

(princ (rtos chieudai 2 3))

)

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
ko chạy được vì đường của bạn có thể là polyline chứ không phải là line như bạn yêu cầu viết lisp. Chắc chắn trên diễn đàn có lisp tính tổng chiều dài không những chỉ đoạn thẳng mà còn cả đường cong...

hi

thanhs u!

nhưng bạn có ho k gởi cho mình lun đi

thanks bạn ngen!!

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
Nè cu thử nhé: :s_big: :s_big:

(defun c:dotongpl(/)

(setq chieudai 0.00)

(setq sspolyline (ssget))

(setq i 0)

(repeat (sslength sspolyline)

(setq polylinechon (ssname sspolyline i))

(setq polylinechon (vlax-ename->vla-object polylinechon))

(setq chieudai1 (vlax-get-property polylinechon 'length))

(setq chieudai (+ chieudai1 chieudai))

(setq i (+ i 1))

)

(princ (rtos chieudai 2 3))

)

:cheers:

cái lisp này cũng vậy bạn ơi

coi giúp lại mình tí đi

thanks!!!!!! :s_big:

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
HI!!!!!

Cho mình hỏi có lisp nào có thể tự tính toán các đọan thẳng rùi sau đó cộng lại với nhau và cuối cùng là cho ra kết wả tổng chiều dài cuối hok

tương tự như lệnh list nhưng lệnh này chỉ hiện thông tin cho từng đọan thẳng và ho kcho ra tổng chiều dài

Có bạn nào bit chỉ mình với

thankssUUUUU!

Lisp tính tổng chiều dài của mọi đối tượng có thuộc tính chiều dài (line, pline, spline, arc, circle, ellipse). Lệnh TL:

 

;;;--------------------------------------------------------------------
(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
;;;--------------------------------------------------------------------
(defun C:TL( / ss L e)
(setq
   ss (ssget  (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
   L 0.0
)
(vl-load-com)
(while (setq e (ssname ss 0))
   (setq L (+ L (length1 e)))
   (ssdel e ss)
)
(alert (strcat "Total length = " (rtos L)))
)
;;;--------------------------------------------------------------------

  • 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
:cheers:

cái lisp này cũng vậy bạn ơi

coi giúp lại mình tí đi

thanks!!!!!! :s_big:

Lisp này chạy ngon bạn ơi, chỉ có điều kết quả trả về giá trị tổng và lặp lại một lần nữa. Bạn thêm dòng lệnh (princ) nữa là Ok.

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
Lisp tính tổng chiều dài của mọi đối tượng có thuộc tính chiều dài (line, pline, spline, arc, circle, ellipse). Lệnh TL:

 

;;;--------------------------------------------------------------------
(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
;;;--------------------------------------------------------------------
(defun C:TL( / ss L e)
(setq
   ss (ssget  (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
   L 0.0
)
(vl-load-com)
(while (setq e (ssname ss 0))
   (setq L (+ L (length1 e)))
   (ssdel e ss)
)
(alert (strcat "Total length = " (rtos L)))
)
;;;--------------------------------------------------------------------

Thanks U!

Có món này rùi mọi vic sẻ rất tiện lợi

MÌnh chờ mấy ngày nay mà hok thấy

cám ơn bạn lần nữa ngen, mà nó có tính dc các polyline hok vậy 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
Bạn chạy thử LISP này :

(defun C:Chdai( / ss e d cdai total )
 (setq ss (ssget '((0 . "LINE")))
total 0
)
 (while (setq e (ssname ss 0))
   (setq d (entget e)
  cdai (distance (cdr(assoc 10 d)) (cdr(assoc 11 d)))
  total ( + total cdai)
  )
   (write-line (strcat "chieu dai : " (rtos cdai) ) )
   (ssdel e ss)
   )
 (write-line (strcat "Tong chieu dai : " (rtos total) ) )
 (textscr)
 (princ)  
 )

Em cũng đã dùng mấy cái lisp tính chiều dài rồi, nhưng dùng cái líp này không thấy kết quả đâu vậy , em dùng cad 2008, mong các bác xem lạ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
Em cũng đã dùng mấy cái lisp tính chiều dài rồi, nhưng dùng cái líp này không thấy kết quả đâu vậy , em dùng cad 2008, mong các bác xem lại

Đây là lisp Thiep viết cho conghoan1003 dùng tính tổng tất cả các chiều dài curve: LWPOLYLINE, LINE, SPLINE, ARC, CIRCLE. Link đây:

http://www.cadviet.com/forum/index.php?s=&...ost&p=62765

  • 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

Xin các cao thủ chỉ giáo !

Trong cad em thấy để sửa nhiều đối tượng cùng một thật dài dòng, ví dụ như sủa text trong bình đồ cứ phải ghõ như sau: SSX / select/ enter/ - CHT / select +P/ enter rồi tiếp tục chọn chiều cao, rộng...., mỗi lần làm như vậy thật khó chịu, em mong các bác cao thủ giúp em một cái lisp nào đó đơn giản hơn, ngắn hơn. Cảm ơn các bác 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

Lisp tính tổng chiều dài của mọi đối tượng có thuộc tính chiều dài (line, pline, spline, arc, circle, ellipse). Lệnh TL:

 

;;;--------------------------------------------------------------------(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)));;;--------------------------------------------------------------------(defun C:TL( / ss L e)(setq    ss (ssget  (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))    L 0.0)(vl-load-com)(while (setq e (ssname ss 0))    (setq L (+ L (length1 e)))    (ssdel e ss))(alert (strcat "Total length = " (rtos L))));;;--------------------------------------------------------------------

Cám ơn bác 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

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

×