Với kết cấu nội dung gồm 2 phần, bài tiểu luận Phương pháp xây dựng bề mặt cho CAD/CAM giới thiệu đến các bạn những nội dung về các kiến thức chung nhất về mô hình toán học và cách xây dựng đường cong Bezier, đường cong B-spline, mảnh mặt cong Bezier và mảnh mặt cong B-spline,... Đây là tài liệu tham khảo hữu ích cho các bạn chuyên ngành Công nghệ thông tin.
Phương pháp xây dựng bề mặt cho CAD/CAM LỜI NĨI ĐẦU Hiện nay việc gia cơng cơ các bề mặt sản phẩm trong cơng nghiệp rất đa dạng và phức tạp, vì vậy để thiết kế và mơ tả nó thuận lợi người ta sử dụng các phần mềm máy tính trợ giúp. Trong đó các phần mềm CAD/CAM đóng vai trò quan trọng trong việc trợ giúp xây dựng các bề mặt bằng máy tính Mơn học: "Phương pháp xây dựng bề mặt cho CAD/CAM" cung cấp cho các học viên các phương pháp xây dựng bề mặt thường gặp trong sản xuất cơng nghiệp, trên cơ sở đó giúp cho học viên hiểu thêm q trình xây dựng các đường cong và các mặt phức tạp trong hệ thống CAD/CAM/CNC Trong q trình tìm hiểu và học tập mơn hoc, tác giả đã tiến hành làm tiêủ luận để có thức riêng cho bản thân về mơn học và thực hành lập trình sơ cho các biên dạng đường và mặt cơ bản, bước đầu biết được ngun lý chung cho q trình xây dựng các bề mặt này Tiểu luận mơn học sau được trình bày làm 2 phần: Phần 1. Cơ sở lý thuyết: bao gồm các kiến thức chung nhất về mơ hình tốn học và cách xây dựng đường cong Bezier, đường cong Bspline, mảnh mặt cong Bezier và mảnh mặt cong Bspline Phần 2. Bài tập: sử dụng phần mềm Matlab để xây dựng đường cong Bezier, đường cong Bspline, mảnh mặt cong Bezier và mảnh mặt cong Bspline Trong q trình thực hiện tiểu luận, tác giả chân thành cảm ơn sự giúp đỡ tận tình của TS. Bùi Q Lực, Bộ mơn Máy Ma sát, Khoa Cơ khí, Đại học Bách khoa Hà nội và các ý kiến đóng góp của các bạn trong lớp.Trong qua trình làm tác giả khơng thể tránh được những thiếu sót, rât mong được sự đóng góp của thầy cơ và các bạn để có thể hồn thiện tốt hơn Hà nội, ngày 19 tháng 8 năm 2009 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Học viên Vũ Quang Lương Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Phần 1. CƠ SỞ LÍ THUYẾT Để tạo thành khối vật thể trong không gian 3D, kĩ thuật người ta sử dụng các đường cong phẳng. Trong tốn học, các đoạn cong được biểu diễn bằng một hàm ẩn, hàm tường minh hoặc một hàm tham số. Hàm để mơ tả đường cong được gọi là mơ hình tốn học của đường cong. Có nhiều hàm để mơ tả các đường cong nhưng người ta sử dụng rộng rãi hàm đa thức vì hàm này dễ làm việc và linh hoạt trong việc mơ tả nhiều loại đường cong kỹ thuật Để xây dựng đoạn cong trên cơ sở điểm đã biết, người ta phải dựa vào một hàm nào đó và gọi nó là hàm cơ sở. Sử dụng hàm đa thức chuẩn làm hàm cơ sở có ưu việt là dễ dàng định nghĩa và đánh giá. Khảo sát hàm bậc ba: r(u) = (x(u), y(u), z(u)) = a + bu + cu2 + du3 Thể hiện dưới dạng ma trận: ru u u2 u3 a b c (1) d Hay r(u) = UA với 0 u Trong đó U là véc tơ cơ sở và A là véc tơ hệ số 1.1. Mơ hình tốn học đường cong Berier Chúng ta trình bày cách xây dựng đường cong Bezier trên cơ sở đường cong Ferguson với các điều kiện mút V0, V1, V2, V3 trong đó: V0 điểm bắt đầu đoạn đường cong, tương ứng với điểm P0 V1 điểm nằm trên véc tơ tiếp tuyến điểm đầu đường cong và bằng V 0 + t0/3 chỉ ra trên hình 1. Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM V2 điểm nằm trên véc tơ tiếp tuyến điểm cuối đường cong và bằng V 3 t1/3; V3 Điểm cuối của đoạn cong ứng với đỉnh P1 Điểm cuối của đường cong Bezier với điều kiện mút được viết như sau: V0 = P0; V1 = V0 + t0/3; V2 = V3 t1/3; V3 = P1 t0 t1 V1 V1 V2 V1 V2 V3 r(u) V3 = P1 V0 V0= P0 V3 V0 V2 Hình 1. Ví dụ đường cong Bezier bậc 3 Để có thể dùng phương pháp xây dựng đường cong bậc ba Ferguson vào xây dựng đường cong Bezier khi biết các điều kiện mút của nó, chúng ta phải tìm mơtis quan hệ giữa điều kiện mút của đường cong bậc 3 Ferguson P0, P1, t0, t1, và điều kiện mút của đường cong Bezier V0, V1, V2, V3 có nghĩa là ta phải có: V0 = P0 V3 = P1 Xác định t0 theo V1 ta nhận được: V1 = V0 + t0/3 3V1 = 3V0 t0 t0 = 3(V1V0) Xác định t1 theo V2 ta có: V2 = V3 t1/3 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM 3V3 = 3V2 t1 t1 = 3(V2V3) Kết quả biến đổi ta nhận được hệ phương trình tuyến tính: V0 = P0 V3 = P1 t0 = 3(V1V0) t1 = 3(V2V3) Thể hiện dưới dạng ma trận: P0 P1 t0 t1 S 0 0 0 3 V0 V1 V2 V3 (4) L R Thay (4) vào (2) ta nhận được đường cong Bezier bậc ba r(u) = U C S = U C L R (5) Với 0 u Đặt M = C L M C L 0 2 0 1 0 3 0 0 0 3 = 3 0 3 0 V0 V1 Và R = V2 V3 Phương trình (5) được gọi là phương trình đường cong Bezier Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Phương trình trên cũng có thể biểu diễn dưới dạng hàm đa thức: r(u) = (U M) R = B0,3(u)V0 + B1,3(u)V1 + B2,3(u)V2 + B3,3(u)V3 = i B1,3 (u )Vi trong đó: B0,3(u) = (1u)3 B1,3(u) = 3u(1u)2 B2,3(u) = 3u2(1u) B3,3(u) = u3 Bi,3(u) được gọi là đa thức Bezier bậc 3 Đa thức Bezier tương đương với số hạng trong khai triển nhị phân (u+v)n, với v = 1 u Dạng chung của đa thức Bezier bậc n được viết như sau: n! u i (1 u) n i ( n i )!i! Bi,n (u) Đa thức trên được gọi là hàm cơ sở Bezier dùng để định nghĩa đường cong Bezier bậc n với n+1 điểm điều khiển r (u ) n i Bi ,n (u )Vi với 0 u Chúng ta có thể tiến hành các phép như là tăng bậc, giảm bậc hàm Bezier Ví dụ: đường cong Berier bậc ba Chương trình trên Matlab hold off; % Vi tri vecto Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM P = [80 80; 150 100; 300 250; 450 20]; %P = [p1x p1y; %p2x p2y; %p3x p3y; %p4x p4y] X = [0 0 0 0 1 1 1 1+eps]; tmin=0; tmax=1; n = 3; Bs = zeros(51,2); for i = 1:51 t = tmin + (tmaxtmin)*(i1)/50; for j = 1:(n+1) Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,4,t,X); end end plot(Bs(:,1),Bs(:,2),P(:,1),P(:,2),'*r','LineWidth',2); title ( 'Duong cong Berier bac ba') grid on Ta sẽ có được biên dạng đường cong Berier bậc ba như sau: 1.2. Mơ hình tốn học đường cong Bspline đồng nhất Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Để hiểu được đặc trưng hình học của một đường cong Bspline bậc 3 cần phải biết cấu trúc hình học của đường cong này.Giả sử, bốn đỉnh điều khiển của đường cong bậc ba này được ký hiệu V0, V1, V2, V3.Ta định nghĩa như sau: M0 M1 P0 P1 V0 V1 Là điểm giữa của V0 và V1 V1 Là điểm giữa của V1 và V2 V2 2V1 M0 Là điểm nằm ở một phần ba của đoạn thẳng V1 và M0 M1 Là điểm nằm ở một phần ba của đoạn thẳng V2 và M1 2V2 Ta xây dựng đoạn cong r(u) thoả mãn điều kiện sau: Đoạn cong bắt đầu từ điểm P0 và điểm cuối là P1 Vectơ tiếp tuyến t0 ở điểm P0 là bằng ( M0V0) Vectơ tiếp tuyến t1 ở điểm P1 là bằng ( M1V1) Điểm mút P0 và P1 của đoạn cong biểu diễn theo các đỉnh điều khiển như sau: Điểm đầu P0 của đoạn cong Bspline r(u) được dánh giá như sau o P 2V1 Hay P0 r (0) V0 2V1 M0 v1 4V1 4V1 (V0 V2 ) V0 V2 (1a) Đánh giá r(u) tại điểm cuối P1 ứng với u = 1 P1 2V1 M0 Biểu diễn tại P1: P1 Ta có t 2V V1 V3 4V r (1) 4V2 V1 V3 (V1 V3 ) (1b) r (u ) , do đó ta xác định tiếp tuyến t0: Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM P0 M0 Hay t r (0) V0 V0 V2 V2 V0 V2 V0 V0 (2a) Tương tự ta có: P1 Hay t1 M1 r (1) V1 V1 V3 V3 V1 V1 V3 V1 (2b) Tử các phương trình (1a), (1b), (2a), (2b) ta có hệ phương trình tuyến tính P0 (V0 P1 (0 V1 t0 ( 3V0 t1 (0 3V1 4V V2 0) 4V V3 ) 3V2 0) 3V3 ) Chuyển sang dạng ma trận ta được: P0 S P1 t0 t1 1 1 V0 V1 V2 KR 3 V3 Thay kết quả tìm được vào đường cong Ferguson ta tìm được cách biểu diễn đường cong Bspline đồng nhất bậc 3 r(u) =U C S Với 0 ≤ u ≤ 1 = U C K R = U (C K) R U = [1 u u2 u3 ] C – ma trận hệ số Ferguson Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM N 3 0 3 R = [V0 V1 V2 V3 ]T Trong đó N hệ số đường cong Bspline bậc ba Đường cong Bspline đồng nhất bậc ba viết dưới dạng biểu thức đại số như sau: r( u ) 3u 3u u3 6u V0 3u V1 3u 3u 3u V2 u3 V3 Đặt: S 0,3 (u ) S1,3 (u ) S 2,3 (u ) S 3,3 (u ) 3u 3u 6u 3u 3u 3u u3 3u u3 Đường cong Bspline viết dưới dạng biểu thức đại số: r (u ) i S i ,n (u ).Vi Tập phương trình đại số Si,3(u) với i = 0,Bspline đồng nhất bậc ba hay còn gọi là hàm hỗn hợp Bspline. Ví dụ: đường cong Bspline bậc 3 %function bspline(P,n) hold off; % Vi tri vecto P = [0 20 0; 10 40 150 ; 30 70 20]; %P = [p1x p1y p1z; %p2x p2y p2z; %p3x p3y p3z]; X = [0 0 0 1 1 1+eps]; 10 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM tmin=0; tmax=1; n = 2; Bs = zeros(51,3); for i = 1:51 t = tmin + (tmaxtmin)*(i1)/50; for j = 1:(n+1) Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,n+1,t,X); end end plot3(Bs(:,1),Bs(:,2),Bs(:,3),P(:,1),P(:,2),P(:,3),'*r','LineWidth',2); %axis([500 0 0 500]); title('BSpline bac ba'); grid on Ta sẽ có một đường Bspline bậc ba như sau: 1.3. Mảnh mặt Berier Bây giờ chúng ta xây dựng mảnh mặt Bezier từ các đường cong Bezier tương tự như phương pháp hình thành mảnh mặt Ferguson đã nêu trên. Giả thiết rằng chúng ta có mảng 4x4 đỉnh điều khiển Vi,j được bố trí như trên hình 4 11 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM V03 V02 V13 V23 V12 v =0 V01 V22 V11 V21 V33 V31 V10 V00 V32 V20 u =0 V30 Hình 4. Mảnh mặt Bezier bậc 3 Các đỉnh điều khiển liên kết với nhau bằng đa thức Bernstein, mảnh mặt Bezier bậc 3 được xác định như sau: r(u, v) 3 i j r(u, v) i j B3i (u ) B 3j (v)Vij 3! 3! u i (1 u )3 i v j (1 v)3 ( i )! i ! ( j )! j ! j (10) = U M B MT VT Trong đó: U = u u2 u3 V = v v2 v3 M = B 3 V00 V10 V20 V30 V01 V11 V21 V31 0 3 V02 V12 V22 V32 0 V03 V13 V23 V33 M được gọi là ma trận hệ số Bezier B là ma trận hệ số điều khiển Bezier Phương trình mảnh mặt Bezier tổng quát bậc n và m điều khiển như sau: 12 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM r(u, v) m n i j Bim (u ) B nj (v)Vij (11) Trong đó: Bim (u ) m! u i (1 u ) m (m i )!i! B nj (v ) n! v j (1 v) n (n j )! j! i j Trong CAD/CAM người ta thường sử dụng mảnh mặt Bezier bậc m=n=5 hoặc m=n=7. Khi bậc m=n=5 số đỉnh điều khiển cần thiết là 36 Chúng ta có thể tiến hành tăng hoặc giảm bậc của phương trình mảnh mặt tam giác Bezier Ví dụ bề mặt Berierbậc 2 pr = 20; P = zeros(3,3,3); P(1,1,:) = [0 3 1]; P(1,2,:) = [0 7 5]; P(1,3,:) = [0 6 1]; P(2,1,:) = [2 3 1]; P(2,2,:) = [3 10 2]; P(2,3,:) = [1 7 0]; P(3,1,:) = [2 3 1]; P(3,2,:) = [4 5 0]; P(3,3,:) = [5 7 3]; n = 2; m = 2; % Knot vectors X = [0 0 0.5 1+eps 1+eps]; Y = [0 0 0.5 1+eps 1+eps]; Q = zeros(pr+1,pr+1); R = zeros(pr+1,pr+1); S = zeros(pr+1,pr+1); for g = 1:(pr+1) u = (g1)/pr; for h = 1:(pr+1) v = (h1)/pr; for i = 1:(n + 1) for j = 1:(m + 1) Q(g,h)=Q(g,h)+ P(i,j,1)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y); R(g,h)=R(g,h)+ P(i,j,2)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y); S(g,h)=S(g,h)+ P(i,j,3)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y); end 13 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM end end end hold off; surf(Q,R,S,'EdgeColor','none', 'FaceAlpha', 1); hold on; surf(P(:,:,1) ,P(:,:,2), P(:,:,3),'FaceColor', 'none','LineWidth',1.0); title('Be mat Bezier bac hai'); 1.4. Mảnh mặt Bspline đồng nhất Mặt Bspline đồng nhất bậc ba của hai biến u và v được biểu diễn bởi phương trình sau: r (u, v) 3 Với 0 ≤ u ≤ 1 N i3 (u ) N 3j (u )Vij i j = U N B NT VT Trong đó: U = [ 1 u u2 u3 ] V = [ 1 v v2 v3 ] 14 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM B N V00 V10 V20 V30 N 0,3 (u ) N 1,3 (u ) N 2, (u ) N 3,3 (u ) V01 V11 V21 V31 V02 V12 V22 V32 3 3 3u 3u 6u 0 u3 3u 3u 3u V03 V13 V23 V33 3u u3 Mặt Bspline đồng nhất được thể hiện dưới hình sau: V03 V02 V 01 V00 V13 V23 V12 V22 V11 v u V10 V21 V20 V32 V33 V31 V30 Măt cong Bspline đồng nhất bậc hai được em như là tích tensor của đường cong Bspline đồng nhất bậc hai r(u) = U N 2 R. Mặt đồng nhất B spline có thể có bậc của hai biến u và v khác nhau. Ví dụ mặt Bspline có biến u hoặc biến v bậc hai, phương trình được biểu diễn như sau: Với 0 ≤ u ≤ 1 r(u)= U N B N2T VT Trong đó: U = [ 1 u u2 u3 ] 15 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM V = [ 1 v v2 v3 ] B V00 V01 V10 V11 V20 V21 V30 V31 N N2 V02 V12 V22 V32 0 3 0 3 1 2 Ví dụ mảnh mặt Bspline : pr = 20; % cac diem P = zeros(4,3,3) P(1,2,:) = [2 1 2]; P(1,3,:) = [1 3 4]; P(1,4,:) = [1 7 3]; P(2,1,:) = [2 1 1]; P(2,2,:) = [2 5 3]; P(2,3,:) = [2 4 1]; P(2,4,:) = [1 10 6]; P(3,1,:) = [2 2 1]; P(3,2,:) = [3 2 0]; P(3,3,:) = [5 9 2]; P(3,4,:) = [2 3 1]; P(4,1,:) = [1 2 1]; P(4,2,:) = [4 3 2]; P(4,3,:) = [3 5 5]; P(4,4,:) = [4 6 8]; n = 3; m = 3; % Knot vectors X = [0 0 0 0.5 1+eps 1+eps 1+eps]; Y = [0 0 0 0.5 1+eps 1+eps 1+eps]; Q = zeros(pr+1,pr+1); R = zeros(pr+1,pr+1); S = zeros(pr+1,pr+1); for g = 1:(pr+1)u u = (g1)/pr; for h = 1:(pr+1) v = (h1)/pr; 16 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM for i = 1:(n+1) for j = 1:(m + 1) Q(g,h)=Q(g,h)+ P(i,j,1)*bsplinebasis(i,n 1,u,X)*bsplinebasis(j,m1,v,Y); R(g,h)=R(g,h)+ P(i,j,2)*bsplinebasis(i,n 1,u,X)*bsplinebasis(j,m1,v,Y); S(g,h)=S(g,h)+ P(i,j,3)*bsplinebasis(i,n 1,u,X)*bsplinebasis(j,m1,v,Y); end end end end hold off; surf(Q,R,S,'EdgeColor','none', 'FaceAlpha', 1); hold on; surf(P(:,:,1) ,P(:,:,2), P(:,:,3),'FaceColor', 'none','LineWidth',1.0); title('Manh mat BSpline '); 17 Học viên: Vũ Quang Lương .. .Phương pháp xây dựng bề mặt cho CAD/CAM Học viên Vũ Quang Lương Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Phần 1. CƠ SỞ LÍ THUYẾT... 0 3 = 3 0 3 0 V0 V1 Và R = V2 V3 Phương trình (5) được gọi là phương trình đường cong Bezier Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Phương trình trên cũng có thể biểu diễn dưới dạng hàm đa thức:... B là ma trận hệ số điều khiển Bezier Phương trình mảnh mặt Bezier tổng quát bậc n và m điều khiển như sau: 12 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM r(u, v) m n i j Bim (u