Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
nhocbabi

đo đường polyline

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

Tue_NV    3.841
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:

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
huyenbn    1
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.

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
duy782006    1.375
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.

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
nhocbabi    3
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.com/upfiles/tongchieudai.lsp

  • 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
nhocbabi    3
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:

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
w1nDream    73
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:

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

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 ạ.

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
hoan2182    836
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!

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

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

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
phamthanhbinh    3.123

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.

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
hiepttr    523

Thay dòng:

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

bằng:

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

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

  • 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
phamthanhbinh    3.123

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.

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
Polyline    18

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

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
hiepttr    523

(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

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
Tue_NV    3.841

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

 

Bạn đọc bài số 4 của bác ssg ở đây và "Làm 1 ví dụ đơn giản, từ "trực quan sinh động" đến "tư duy trừu tượng":" là sẽ hiểu liền:

http://www.cadviet.com/forum/topic/10065-hoi-ve-thong-tin-cua-spline-va-mot-so-ham-vl-vlax/

  • 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
unbroken    1

em có lisp này kiếm dc ở đâu đó. lúc lúc dùng được, giờ không hiểu sao lại không dùng được. Em k biết j về lisp. Thấy nó hay. Bác nào biết kiểm tra giùm. Hoặc là có cái lisp nào mà đo và hiển thị tất cả các đoạn trong Polyline (1 pline được cấu tạo bởi nhiều đoạn thẳng thì nó đo và hiện thị các đoạn thẳng đấy)

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
phamthanhbinh    3.123

em có lisp này kiếm dc ở đâu đó. lúc lúc dùng được, giờ không hiểu sao lại không dùng được. Em k biết j về lisp. Thấy nó hay. Bác nào biết kiểm tra giùm. Hoặc là có cái lisp nào mà đo và hiển thị tất cả các đoạn trong Polyline (1 pline được cấu tạo bởi nhiều đoạn thẳng thì nó đo và hiện thị các đoạn thẳng đấy)

Hề hề hề,

Chu choa, kiểm tra cái chả thấy gì thế này chăc phải dùng "đèn giời " . Nhưng mà chửa biết thửa nó ở đâu để dùng.

Bạn làm ơn hãy gửi cái lisp đó lên nha....

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
unbroken    1

;; free lisp from cadviet.com

 

;;; Dimension Alighed Polyline

;;; Free from CadViet forum

(defun c:DAP (/ ssn Pt j LstPt Pt0 Pt1 Pt2 Pt3)

(setvar "osmode" 0)

(setq ssn (car (entsel "\nChon doi tuong Polyline: ")))

(setq j 0 LstTmp nil)

(repeat (fix (1+ (vlax-curve-getendparam Ssn)))

(setq Pt (vlax-curve-getpointatparam Ssn j)

LstTmp (append (list Pt) LstTmp)

)

(setq j (1+ j))

);end repeat

(setq j 0)

(repeat (1- (length LstTmp))

(setq Pt0 (nth j LstTmp)

Pt1 (nth (1+ j) LstTmp)

)

(setq Pt2 (list (/ (+ (car Pt0) (car Pt1)) 2) (/ (+ (cadr Pt0) (cadr Pt1)) 2)))

(setq Pt3 (polar Pt2 (+ (/ pi 2) (angle Pt0 Pt1)) 5.00))

(vl-cmdf ".DIMALIGNED" Pt0 Pt1 Pt3)

(setq j (1+ j))

)

(princ)

)

 

 

thôi copy vậy. bác nào xem hộ em cá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


×