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

Tính độ dài đường Spline

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

Chào các bạn. 

Mình đang cần tính dài đường cong Spline bậc 3 thông qua điểm điểm khiển và giá trị điểm nut.

 

Ví dụ: Mình đọc file DXF đc thông số đường Spline :

  9 Giá trị :       0;      0;           0;        0;         14.14213562373095;           28.2842712474619;           28.2842712474619;          28.2842712474619:           28.2842712474619

5  Tọa độ điểm điều khiển;  (0;0)   (3.33...;5)      (10;15)       (16.666....;5)        (20;0)

Độ dài đo đc là :   29.1448

 

Mình cần cách tính cho mọi đường Spline bậc 3, tính theo toán học để mình viết phần mềm CAM.

 

Xin cảm ơn.

 

Capture.PNG

spline.dxf

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 tham khảo lisp này!

(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)))
  (Prompt (strcat "Total length = " (rtos L 2 3) " m"))
  (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

Tính độ dài bằng cách chẻ nhỏ spline ra thành nhiều đoạn thẳng rồi tính tổng.

Độ dài khi chia nhỏ càng nhỏ thì càng chính xác, tuy nhiên tốc độ sẽ chậm, nếu dùng thuật toán chuyển đa tuyến toàn đường thành đa tuyến đường-cung thì sẽ chính xác hơn nữa.

 

Bạn có thể tìm theo tư khóa "spline interpolation c#"

or thử tìm trên codeprojector: https://www.codeproject.com/Articles/560163/Csharp-Cubic-Spline-Interpolation

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ủ thớt đâu cần get length mà cần thứ có thể xuất ra CAM được, có vẻ như mô phỏng lại spline bằng đường pline hoặc cái gì tương tự.

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

×