Nghiên cứu xây dựng thuật toán và phần mềm vẽ đường cong Bezier
TÓM TẮT
Bài báo này trình bày một nghiên cứu về phương pháp xây dựng đường cong
Bezier trong môi trường CAD/CAM. Phần mềm “Cong cu xay dung duong cong
Bezier” viết bằng Matlab 2012 cho phép xây dựng, hiệu chỉnh các đường cong
Bezier cũng được giới thiệu ở đây. Công cụ xây dựng đường cong Bezier này có
thể sử dụng như một phần mềm độc lập để thiết kế các đường cong tự do (free
form curve). Với công cụ này người dùng có thể thay đổi được các điểm điều
khiển để điều khiển linh hoạt, trực quan hình dạng đường cong thiết kế. Đây là
tiền đề cơ bản cho việc thiết kế các bề mặt 3D phức tạp trong chế tạo máy hiện
đại. Nội dung bài báo và công cụ xây dựng đường cong Bezier có thể được dùng
làm tài liệu tham khảo trong các nghiên cứu và đào tạo về sự hình thành các
đường cong tự do, các bề mặt tự do trong các phần mềm CAD/CAM, cho phép
khai thác hiệu quả các phần mềm này trong thiết kế và gia công cơ khí.
t kế thường cấu thành từ rất nhiều đường, mặt. Trong quá trình thiết kế phải lựa chọn các mặt tham chiếu, đồng thời các đường cong có giới hạn hiển thị một đoạn chứ không phải toàn bộ. Hơn nữa việc thiết kế sử dụng chuột lại càng không thuận lợi khi áp dụng phương trình này vào giao diện nhập dữ liệu trong các phần mềm CAD/CAM. Như vậy thay vì việc xác định các điểm dữ liệu để vẽ đường cong bậc 3 (không thân thiện khi sử dụng trong thiết kế) các nghiên cứu mô hình hóa đường cong tự do đã chuyển hướng sang biểu diễn chúng trên cơ sở các điểm điều khiển. Phương pháp biểu diễn này thuận lợi cho việc áp dụng vào các phần mềm CAD/CAM. Chúng ta sẽ làm rõ hơn điều này ở phần (0) và (0) dưới đây. 2.2. Mô hình toán học đường cong Ferguson Ferguson [4] đề xuất xây dựng đoạn cong ở phương trình (1) trong đoạn [0, 1] trên cơ sở 2 điểm mút tại hai đầu đoạn cong (P0, P1) và 2 tiếp tuyến (t0, t1) ở 2 điểm mút ấy. Cụ thể như sau: ( ); ( ); ( ); ( )0 1 0 1P r 0 P r 1 t r 0 t r 1 (2) Ở đây dữ liệu đầu vào là các thông số [P0, P1, t0, t1]. Các thông số này được gọi là thông số điều khiển để xây dựng đoạn cong trên [0, 1] theo phương pháp Ferguson. Phương trình (2) là phương trình mô tả đoạn cong Ferguson trên đoạn [0, 1], mô hình đoạn đường cong Ferguson được mô tả trên hình 3. Hình 3. Mô hình đoạn cong Ferguson Trên thực tế việc xác định giá trị tại các điểm mút của đa thức rất đơn giản, việc xác định giá trị tiếp tuyến tại các mút trong nhiều trường hợp không phải là đơn giản. Do vậy trong một số trường hợp sẽ gây khó khăn khi thực hiện xây dựng mô hình. Sau đây là phương pháp Bezier để xây dựng đoạn cong tổng quát sẽ khắc phục được điểm này. 2.3. Mô hình toán học đường cong Bezier Có nhiều phương án xây dựng đoạn cong Bezier. Trong bài báo này giới thiệu phương pháp xây dựng đoạn cong Bezier trên cơ sở đoạn cong Ferguson [4]. CÔNG NGHỆ Tạp chí KHOA HỌC & CÔNG NGHỆ ● Số 44.2018 52 KHOA HỌC Phương trình (3) là phương trình đường cong Bezier tổng quát. Với đường cong Bezier có ưu điểm là được mô tả bằng đa giác với các điểm điều khiển là V0, V1, V2, V3. Với cách thức này sẽ rất thuận lợi cho việc thiết kế các đường cong phức tạp trong CAD/CAM bằng cách sử dụng chuột lựa chọn các điểm điều khiển. Phương trình (1) có thể viết dưới dạng khác như sau mà không làm mất tính tổng quát [2]: ( ) ( ) . ( ) . ( ). .3 2 2 30 1 2 3r u 1 u V 3u 1 u V 3u 1 u V u V (3) Tổng quát ta có: ,( ) ( ).i n ir u B u V (4) Trong đó: , ! ( ) ( ) ( )! ! i i i n nB u u 1 u n i i (5) Bi,n(u): Tính toán rất dễ dàng trong lập trình qua đó tìm ra các điểm điều khiển để xây dựng lên đường cong Bezier [2, 3]. Phương trình (4) là phương trình xây dựng đường cong Bezier thu gọn. Hình 4. Mô hình toán đường cong Bezier bậc 3 Trên hình 4 mô tả đường cong Bezier bậc 3 hình thành bởi 4 điểm điều khiển V0 P0, V1, V2, V3 P1. 2.4. Giải thuật DeCasteljau Giải thuật Castljau [1] để tính toán các điểm .rib Qua đó xác định được đường cong Bezier. Giải thuật này cho phép chúng ta tính toán các điểm liền kề. Trên hình 5 và 6 cho chúng ta thấy việc đường cong Bezier bậc 3 được hình thành thông qua các điểm tính toán Bi,n. Có thể tổng quát hóa lên đối với số điểm điều khiển là n (tương ứng với đường cong Bezier bậc n) như sơ đồ hình 7 với điểm điều khiển tổng quát Pi; i = (0, n). Hình 5. Tính toán điểm của đường cong Bezier bậc 3 Hình 6. Sơ đồ hình thành đường cong Bezier bậc 3 qua các điểm tính toán Hình 7. Sơ đồ tính toán điểm điều khiển của đường Bezier tổng quát Thuật toán xây dựng và hiệu chỉnh đường cong Bezier được trình bày trên hình 8. Hình 8. Sơ đồ thuật toán xây dựng công cụ thiết kế và hiệu chỉnh đường cong Bezier Có Không r(t) = 1r ib Khởi tạo điểm điều khiển tăng (giảm) điểm điều khiển r(t) = r ib Làm trơn đường Bezier Hiển thị Kết thúc Bắt đầu SCIENCE TECHNOLOGY Số 44.2018 ● Tạp chí KHOA HỌC & CÔNG NGHỆ 53 2.4.1. Công cụ xây dựng đường Bezier Giao diện của chương trình thiết kế và hiệu chỉnh đường cong Bezier (hình 9). Hình 9. Giao diện và tính năng của công cụ thiết kế và hiệu chỉnh đường cong Bezier Công cụ có những chức năng như sau: Thanh công cụ: Gồm chức năng chung; Bậc của đường Bezier: Hiển thị bậc của đường bezier mà người dùng xây dựng; Hướng dẫn: Gồm 3 chức năng sau: - Chuột trái: Thêm điểm điều khiển; - Chuột giữa: Xóa điểm điều khiển; - Chuột giữa: Di chuyển điểm điều khiển (để thay đổi vị trí và hình dáng của đường Bezier). Vùng thao tác: Cho phép người dùng xây dựng đường bezier trong vùng này. Nút vẽ lại: Cho phép xóa đường cong cũ và vẽ đường cong Bezier mới. 2.4.2. Kiểm nghiệm chương trình Xây dựng đường Bezier bậc : Đường Bezier bậc 1 tạo bởi 2 điểm điều khiển V0 và V1. Đây là một đường thẳng. Trên công cụ hiển thị đường thẳng có điểm đầu là V0 và điểm cuối V1 (hình 10). Hình 10. Xây dựng đường Bezier bậc 1 Xây dựng đường Bezier bậc 2: Đường Bezier bậc 2 được tạo bởi 3 điểm điều khiển V0, V1 và V2. Đường Bezier bậc 2 là một đường cong trơn (hình 11). Hình 11. Xây dựng đường cong bezier bậc 2 Xây dựng đường Bezier bậc 3: Đường Bezier bậc 3 được tạo bởi 4 điểm điều khiển V0, V1, V2 và V3. Đường Bezier bậc 2 là một đường cong trơn (hình 12). Hình 12. Xây dựng đường Bezier bậc 3 Xây dựng đường Bezier với bậc cao: Hình 13. Xây dựng đường cong Bezier bậc cao Thanh công cụ Bậc của đường Bezier Hướng dẫn Vùng thao tác Xóa đường cũ vẽ đường mới V1 V2 V0 V1 V0 V1 V3 V2 V0 CÔNG NGHỆ Tạp chí KHOA HỌC & CÔNG NGHỆ ● Số 44.2018 54 KHOA HỌC Thử nghiệm xây dựng đường Bezier bậc cao (hình 13). Chương trình cũng thực hiện được hoàn toàn như thuật toán đã đưa ra, kết quả là đường cong trơn đúng như lý thuyết về đường Bezier. Như vậy chương trình xây dựng đường cong Bezier các tác giả đã thực hiện cho phép xây dựng được đầy đủ các dạng đường Bezier với số bậc tùy ý. So sánh thiết kế đường cong Bezier với hệ thống CAD, CAD/CAM thương mại So sánh với Autocad Mechanical 2006: AutoCAD là một phần mềm nổi tiếng của hãng AutoDesk với quá trình phát triển lâu đời. Các phiên phản của AutoCAD luôn là phần mềm thiết kế thông dụng nhất cho kỹ sư Cơ khí, Xây dựng, Điện AutoCAD Mechanical là một bộ phần mềm chuyên dụng cho thiết kế cơ khí, mọi chức năng hoàn toàn như AutoCAD, ngoài ra còn có nhiều chức năng chuyên cho thiết kế cơ khí. Khi thiết kế đường cong Bezier bậc 3 trên AutoCAD Mechanical 2006 ta có kết quả như hình 14a. So sánh với Catia V5R19: Catia là một hệ thống CAD/CAM/CAE hoàn chỉnh của hãng Dasault Systemes. Hiện nay Catia đã có phiên bản P3V5 R22, ngoài ra còn có thêm các phiên bản theo năm, mới nhất là V6 2017. Catia hiện tại được nhiều công ty cơ khí nổi tiếng trên thế giới sử dụng phục vụ cho thiết kế và chế tạo các sản phẩm của mình. Trong ngành cơ khí Catia cũng được đánh giá rất cao được nhiều chuyên gia khuyên dùng. Khi thiết kế đường cong Bezier trong module Sketch của Catia V5R19 cho ta kết quả như hình 14b. a) b) c) Hình 14. Kết quả thiết kế đường Bezier bậc 3 bằng các phần mềm: a- AutoCAD Mechanical 2006, b-CATIA V5R19, c- Công cụ xây dựng đường cong Bezier Kết quả khi thiết kế đường Bezier trên công cụ do các tác giả xây dựng được thể hiện trên hình 14c. Như vậy trên AutoCAD Mechanical 2006, đường cong Bezier chỉ hiển thị là kết quả cuối cùng. Trên CATIA V5R19 ngoài việc hiển thị kết quả đường cong cuối cùng thì còn hiển thị thêm vectơ thể hiện hướng của đường cong tại các điểm uốn. Kết quả hiện thị đường cong Bezier của các tác giả xây dựng thể hiện được đường cong, vị trí điểm điều khiển, qua vị trí các điểm điều khiển có thể thay đổi được dạng đường cong dựa vào việc hiệu chỉnh các điểm điều khiển một cách dễ dàng. 3. KẾT LUẬN Các nghiên cứu lý thuyết thường chỉ đưa ra những biểu thức toán học biểu diễn các đường cong Bezier còn trong các phần mềm CAD/CAM việc ứng dụng các phần mềm này cho thiết kế các đường cong tự do lại không rõ ràng. Các hệ thống CAD/CAM thương mại thường coi các đường cong tự do được tạo dưới dạng module và không thể hiện mã nguồn. Việc hiệu chỉnh như thêm điểm hoặc giảm điều điều khiển để thay đổi hình dạng đường cong không trực quan đối với người sử dụng. Bằng việc ứng dụng thuật toán DeCasteljaus và Matlab trong nghiên cứu về đường cong Bezier các tác giả đã xây dựng thành công một công cụ hoàn chỉnh để thiết kế đường cong Bezier. Công cụ thiết kế và hiệu chỉnh đường cong Bezier này sẽ giúp các nhà nghiên cứu, người sử dụng hiểu một cách trực quan việc hình thành nên đường cong Bezier. Đây là tiền đề để hiểu rõ và làm chủ việc hình thành các mặt cong tự do được sử dụng trong các hệ thống CAD/CAM thương mại. Kết quả của nghiên cứu cũng là cơ sở để các tác giả tiếp tục nghiên cứu và xây dựng công cụ chuyển đổi giữa các mặt cơ bản sang dạng mặt NURBS làm cơ sở cho nghiên cứu nhận dạng các vùng bề mặt NURBS trong thiết kế các sản phẩm thực tế. TÀI LIỆU THAM KHẢO [1]. Bành Tiến Long, Bùi Ngọc Tuyên, 2013. Lỹ thuyết tạo hình bề mặt và ứng dụng trong kỹ thuật cơ khií. NXB GDVN, Hà Nội. [2]. Les Piegl, Wayne Tiller, 1998. The NURBS Book. Springer. [3]. Stephen P. Radzevich, 2008. Kinematic Geometry of Surface Machining. CRC Press Taylor & Francis Group. [4]. Byoung K. Choi, 1991. Surface Modeling for CAD/CAM. Elsevier Amsterdam-Oxford-New York-Tokyo [5]. Michael S. Floater. Bezier Curves and Surfaces. Department of Mathematics University of Oslo, Norway. [6]. He-Jin Gu, Jun-Hai Yong, Jean-Claude Paul, Fuhua (Frank) Cheng. Constructing G1 quadratic Bezier curves with arbitrary endpoint tangent vectors. [7] . M. Randrianarivony, G. Brunnett, 2002. Approximation by NURBS curves with free knots. Erlegen, Germany, November 20-22.
File đính kèm:
- nghien_cuu_xay_dung_thuat_toan_va_phan_mem_ve_duong_cong_bez.pdf