Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
15 replies to this topic

#1 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 December 2008 - 02:37 PM

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!
  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1303 Bài viết
Điểm đánh giá: 1347 (rất tốt)

Đã gửi 22 December 2008 - 03:54 PM

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

  • 0

#3 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 December 2008 - 04:33 PM

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!!!!!!!!!
  • 0

#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 5726 Bài viết
Điểm đánh giá: 2991 (tuyệt vời)

Đã gửi 23 December 2008 - 10:32 AM

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.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 December 2008 - 11:33 AM

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!!!!!
  • 0

#6 nataca

nataca

    biết lệnh adcenter

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

Đã gửi 23 December 2008 - 02:18 PM

: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...
  • 0

#7 doanduyhung

doanduyhung

    biết vẽ spline

  • Members
  • PipPip
  • 90 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 23 December 2008 - 02:28 PM

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

#8 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 December 2008 - 02:40 PM

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!!
  • 0

#9 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 December 2008 - 11:54 AM

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

#10 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1071 (rất tốt)

Đã gửi 24 December 2008 - 01:31 PM

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

  • 1

#11 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 5726 Bài viết
Điểm đánh giá: 2991 (tuyệt vời)

Đã gửi 24 December 2008 - 02:01 PM

: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.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#12 PUCH

PUCH

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 26 December 2008 - 08:46 AM

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

#13 ngochop

ngochop

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 10 September 2009 - 02:34 PM

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

#14 thiep

thiep

    biết dimdiameter

  • Members
  • PipPipPipPipPip
  • 331 Bài viết
Điểm đánh giá: 248 (khá)

Đã gửi 10 September 2009 - 04:29 PM

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.c...&...ost&p=62765
  • 1

#15 zippo.113

zippo.113

    biết pan

  • Members
  • Pip
  • 7 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 09 October 2009 - 03:56 PM

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 !
  • 0

#16 ngkcuong

ngkcuong

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 19 June 2012 - 09:21 AM

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.
  • 0