Đến nội dung


Hình ảnh

đo đường polyline


  • Please log in to reply
31 replies to this topic

#1 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 19 June 2009 - 08:58 AM

Các anh ơi, có cách nào để đo chiều dài của một đoạn trong cả đường cong poyline không ạ, chỉ giúp em với! Em cảm ơn ạ!
  • 0

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 19 June 2009 - 09:16 AM

Các anh ơi, có cách nào để đo chiều dài của một đoạn trong cả đường cong poyline không ạ, chỉ giúp em với! Em cảm ơn ạ!

Bạn chạy thử Lisp này xem :
Lisp đo một đoạn của Line, Pline, Arc, Circle, Spline, elipse
(defun c:dopl()
(vl-load-com)
(setq curve (car(entsel"\n Chon Polyline :")))
(setq ddau (getpoint"\n Pick diem dau can do :"))
(setq dcuoi (getpoint ddau"\n Pick diem dau can do :"))
(setq d1 (vlax-curve-getDistAtPoint curve ddau))
(setq d2 (vlax-curve-getDistAtPoint curve dcuoi))
(alert (strcat " L = " (rtos (abs (- d1 d2)) 2 0)))
(princ)
)
:lol2:
  • 0

#3 huyenbn

huyenbn

    biết zoom

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

Đã gửi 19 June 2009 - 09:32 AM

Bạn chạy thử Lisp này xem :
Lisp đo cả 1 đoạn của Line, Pline, Arc, Circle, Spline, elipse

(defun c:dopl()
(vl-load-com)
(setq curve (car(entsel"\n Chon Polyline :")))
(setq ddau (getpoint"\n Pick diem dau can do :"))
(setq dcuoi (getpoint"\n Pick diem dau can do :"))
(setq d1 (vlax-curve-getDistAtPoint curve ddau))
(setq d2 (vlax-curve-getDistAtPoint curve dcuoi))
(alert (strcat " L = " (rtos (abs (- d1 d2)) 2 0)))
(princ)
)
:lol2:

Tiện đây em xin hoi bác, bác có llisp nao có thể đo chiều dài của cả một mặt bằng không, ví như đo chiều dài dây dẫn của một mặt bằng cấp điện vậy.
  • 0

#4 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 19 June 2009 - 09:35 AM

Tiện đây em xin hoi bác, bác có llisp nao có thể đo chiều dài của cả một mặt bằng không, ví như đo chiều dài dây dẫn của một mặt bằng cấp điện vậy.

Bạn dùng từ mắc cươì quá. Mặt bằng mà sau lại đo chiều dài được?
Thẻo như mình hiểu thì bạn muốn đo chiều dài tổng của các đối tượng vậy thì bạn phải cho moi người biết đó là đối tượng gì, bạn muốn cách chọn ra sao, xuất kết quả thế nào. Tốt nhất là up cái "mặt bằng" mà bạn muốn "đo chiều dài" lên.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#5 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 19 June 2009 - 09:38 AM

Tiện đây em xin hoi bác, bác có llisp nao có thể đo chiều dài của cả một mặt bằng không, ví như đo chiều dài dây dẫn của một mặt bằng cấp điện vậy.

Bạn dùng lisp này nhé:
http://www.cadviet.c...ongchieudai.lsp
  • 1

#6 nhocbabi

nhocbabi

    biết vẽ rectang

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

Đã gửi 19 June 2009 - 09:42 AM

Bạn chạy thử Lisp này xem :
Lisp đo cả 1 đoạn của Line, Pline, Arc, Circle, Spline, elipse

(defun c:dopl()
(vl-load-com)
(setq curve (car(entsel"\n Chon Polyline :")))
(setq ddau (getpoint"\n Pick diem dau can do :"))
(setq dcuoi (getpoint"\n Pick diem dau can do :"))
(setq d1 (vlax-curve-getDistAtPoint curve ddau))
(setq d2 (vlax-curve-getDistAtPoint curve dcuoi))
(alert (strcat " L = " (rtos (abs (- d1 d2)) 2 0)))
(princ)
)
:D

Em vừa load về dùng thử, đã có kết quả rồi ạ anh ạ :lol2: . Nhưng anh cho em hỏi thêm một chút là có thể có lisp đo chiều dài của đoạn polyline ấy bằng một dimstyle hiện hành không ạ! :lol2:
  • 0

#7 huyenbn

huyenbn

    biết zoom

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

Đã gửi 19 June 2009 - 10:51 AM

Bạn dùng lisp này nhé:
http://www.cadviet.c...ongchieudai.lsp

Thank nha
  • 0

#8 w1nDream

w1nDream

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 293 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 18 September 2010 - 03:50 PM

Bạn chạy thử Lisp này xem :
Lisp đo một đoạn của Line, Pline, Arc, Circle, Spline, elipse

(defun c:dopl()
(vl-load-com)
(setq curve (car(entsel"\n Chon Polyline :")))
(setq ddau (getpoint"\n Pick diem dau can do :"))
(setq dcuoi (getpoint ddau"\n Pick diem dau can do :"))
(setq d1 (vlax-curve-getDistAtPoint curve ddau))
(setq d2 (vlax-curve-getDistAtPoint curve dcuoi))
(alert (strcat " L = " (rtos (abs (- d1 d2)) 2 0)))
(princ)
)
:bigsmile:


Pác à.Em đã dùng thử Lisp DOPL của Pác nhưng nó bị lỗi thế này không biết tại sao:
Command: DOPL
Chon Polyline :
Pick diem dau can do :
Pick diem dau can do :; error: bad argument type: numberp: nil


Pác xem lại hộ em vói.TKS Pác! :undecided:
  • 0
__Tâm tựa lưu thủY__
Vi nhân nan

#9 upsanddowns

upsanddowns

    Chưa sử dụng CAD

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

Đã gửi 19 September 2010 - 01:57 PM

Mọi người cho em hỏi cách chia đường tròn ra nhiều cung với độ dài khác nhau như thế nào vậy?
Luôn tiện cho em hỏi cách vẽ cung tròn khi biết chiều dài dây cung và bán kính luôn ạ.
  • 0

#10 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2646 Bài viết
Điểm đánh giá: 832 (rất tốt)

Đã gửi 19 September 2010 - 02:57 PM

Mọi người cho em hỏi cách chia đường tròn ra nhiều cung với độ dài khác nhau như thế nào vậy?
Luôn tiện cho em hỏi cách vẽ cung tròn khi biết chiều dài dây cung và bán kính luôn ạ.

Đã có câu hỏi và giải đáp trên diễn đàn anh thử tìm kiếm xem sao, nếu ko thấy mọi người sẽ tìm giúp!
  • 0

Gió đưa cây cải về trời

Rau răm ở lại chịu lời đắng cay...


#11 devilhpvn

devilhpvn

    Chưa sử dụng CAD

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

Đã gửi 28 June 2013 - 09:52 AM

Pác à.Em đã dùng thử Lisp DOPL của Pác nhưng nó bị lỗi thế này không biết tại sao:
Command: DOPL
Chon Polyline :
Pick diem dau can do :
Pick diem dau can do :; error: bad argument type: numberp: nil


Pác xem lại hộ em vói.TKS Pác! iluvyousmiley.gif

Mình cũng bị giống bạn. chưa tìm ra được nguyên nhân :)


  • 0

#12 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 28 June 2013 - 10:41 AM

Mình cũng bị giống bạn. chưa tìm ra được nguyên nhân :)

Hề hề hề,

Cái lỗi này là do sai biến số trong lisp.

Dòng code(setq ddau ("\n Pick diem dau can do :")) bị thiếu mất tên hàm.

Hãy sửa thành:

(setq ddau (getpoint "\n Pick diem dau can do :"))

Hy vọng bạn làm được.


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

#13 hiepttr

hiepttr

    Edu level: li10

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

Đã gửi 28 June 2013 - 11:39 AM

Thay dòng:

(setq curve (car("\n Chon Polyline :")))

bằng:

(setq curve (car (entsel "\nChon Polyline :")))

nữa chứ bác nhỉ :(


  • 1

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#14 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 28 June 2013 - 11:46 AM

Thay dòng:

(setq curve (car("\n Chon Polyline :")))

bằng:

(setq curve (car (entsel "\nChon Polyline :")))

nữa chứ bác nhỉ :(

Hề hề hề, 

Đúng vậy. Do chỉ đọc trên cái lỗi của người hỏi nên mình không chú ý tới các dòng code bên trên bởi thấy lisp vẫn chạy tới dòng code dưới mới báo lỗi. Kiểm tra từ chỗ lỗi lên thấy ngay lỗi rồi nên không tìm tiếp.

Các lỗi này có nhẽ do quá trình biên tập lại diễn đàn gấy ra chứ mình tin rằng bác Tue_NV không thể có những lỗi như thế này được.

Rất mong Ban quản trị lưu ý khi biên tập lại các bài viết của mọi người.trong quá trình nâng cấp diễn đà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.

#15 Polyline

Polyline

    biết lệnh mirror

  • Members
  • PipPipPip
  • 159 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 08 July 2013 - 03:08 PM

Cho mình hỏi làm sao đo chiều dài của một đường (Polyline, Lwpolyline, Spline, Circle, Ellipse) khép kín?
Hàm

(vlax-curve-getDistAtPoint curve-obj (vlax-curve-getEndPoint curve-obj))

của một đường khép kín luôn trả về 0.
(Không sử dụng qua biến trung gian PERIMETER nha!)


  • 0

#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 08 July 2013 - 03:21 PM

(vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 08 July 2013 - 04:44 PM

(vla-get-length curve-object)


  • 1

#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 08 July 2013 - 05:03 PM

(vla-get-length curve-object)

Thằng đó không lấy được length của spline.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#19 Polyline

Polyline

    biết lệnh mirror

  • Members
  • PipPipPip
  • 159 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 08 July 2013 - 05:05 PM

Hay quá! Đây là cách "lách luật" không lấy chiều dài qua point mà lấy qua parameter.


  • 0

#20 hiepttr

hiepttr

    Edu level: li10

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

Đã gửi 08 July 2013 - 05:56 PM

(vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))

Bác Hà có thể chỉ cho mình cái tham số đằng sau (kết quả của (vlax-curve-getEndParam ent)), nếu nhập vào nó nhỏ lại (nhỏ hơn số đỉnh của 1 rectang đang tính chẳng hạn_ VD: 3)

thì kết quả trả về của hàm (vlax-curve-getDistAtParam...) là cái chi chi vậy ? :D :D :D

Mình thử nó ra 1 con số mà ko lý giải đc


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson