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 chocác học viên các
Phương pháp xây dựng bề mặt cho CAD/CAM LỜI NÓI ĐẦU Hiện việc gia công bề mặt sản phẩm công nghiệp đa dạng phức tạp, để thiết kế mơ tả thuận lợi người ta sử dụng phần mềm máy tính trợ giúp Trong phần mềm CAD/CAM đóng vai trò quan trọng việc trợ giúp xây dựng bề mặt 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 học viên phương pháp xây dựng bề mặt thường gặp sản xuất cơng nghiệp, sở giúp cho học viên hiểu thêm trình xây dựng đường cong mặt phức tạp hệ thống CAD/CAM/CNC Trong trình tìm hiểu 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 thân mơn học thực hành lập trình sơ cho biên dạng đường mặt bản, bước đầu biết nguyên lý chung cho trình xây dựng bề mặt Tiểu luận mơn học sau trình bày làm phần: Báo cáo tiểu luận - Phần Cơ sở lý thuyết: bao gồm kiến thức chung mơ hình tốn học cách xây dựng đường cong Bezier, đường cong B-spline, mảnh mặt cong Bezier mảnh mặt cong B-spline - Phần Bài tập: sử dụng phần mềm Matlab để xây dựng đường cong Bezier, đường cong B-spline, mảnh mặt cong Bezier mảnh mặt cong B-spline Trong trình thực tiểu luận, tác giả chân thành cảm ơn giúp đỡ tận tình 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 ý kiến đóng góp bạn lớp.Trong qua trình làm tác giả khơng thể tránh thiếu sót, rât mong đóng góp thầy bạn để hồn thiện tốt Hà nội, ngày 19 tháng năm 2009 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 CƠ SỞ LÍ THUYẾT Để tạo thành khối vật thể không gian 3D, kĩ thuật người ta sử dụng đường cong phẳng Trong toán học, đoạn cong biểu diễn hàm ẩn, hàm tường minh hàm tham số Hàm để mơ tả đường cong gọi mơ hình tốn học đường cong Có nhiều hàm để mơ tả đường cong người ta sử dụng rộng rãi hàm đa thức hàm dễ làm việc linh hoạt việc mô tả nhiều loại đường cong kỹ thuật Để xây dựng đoạn cong sở điểm biết, người ta phải dựa vào hàm gọi hàm sở Sử dụng hàm đa thức chuẩn làm hàm sở có ưu việt dễ dàng định nghĩa đánh giá Khảo sát hàm bậc ba: r(u) = (x(u), y(u), z(u)) = a + bu + cu2 + du3 Thể dạng ma trận: Báo cáo tiểu luận (1) Hay r(u) = UA với 0u1 Trong U véc tơ sở A 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 sở đường cong Ferguson với điều kiện mút V0, V1, V2, V3 đó: V0 - điểm bắt đầu đoạn đường cong, tương ứng với điểm P0 V1 - điểm nằm véc tơ tiếp tuyến điểm đầu đường cong V + t0/3 hình V2 - điểm nằm véc tơ tiếp tuyến điểm cuối đường cong V t1/3; Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM V3 - Điểm cuối đoạn cong ứng với đỉnh P1 Điểm cuối đường cong Bezier với điều kiện mút viết sau: V0 = P0; V1 = V0 + t0/3; V2 = V3 - t1/3; V3 = P1 t0 t1 V1 V1 V2 V1 V2 V3 r(u) V0= P0 V3 = P1 V0 V3 V0 V2 Hình Ví dụ đường cong Bezier bậc Để 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 biết điều kiện mút nó, phải tìm mơtis quan hệ điều kiện mút đường cong bậc Ferguson P 0, P1, t0, Báo cáo tiểu luận t1, điều kiện mút đường cong Bezier V0, V1, V2, V3 có nghĩa 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(V1-V0) Xác định t1 theo V2 ta có: V2 = V3 - t1/3 3V3 = 3V2 - t1 t1 = 3(V2-V3) Kết biến đổi ta nhận hệ phương trình tuyến tính: V0 = P0 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM V3 = P1 t0 = 3(V1-V0) t1 = 3(V2-V3) Thể dạng ma trận: (4) Thay (4) vào (2) ta nhận đường cong Bezier bậc ba r(u) =UCS =UCLR (5) Với 0u1 Đặt M = C L Báo cáo tiểu luận = Và R = Phương trình (5) gọi phương trình đường cong Bezier Phương trình biểu diễn 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 = Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM đó: B0,3(u) = (1-u)3 B1,3(u) = 3u(1-u)2 B2,3(u) = 3u2(1-u) B3,3(u) = u3 Bi,3(u) gọi đa thức Bezier bậc Đa thức Bezier tương đương với số hạng khai triển nhị phân (u+v) n, với v = - u Dạng chung đa thức Bezier bậc n viết sau: Đa thức gọi hàm sở Bezier dùng để định nghĩa đường cong Bezier bậc n với n+1 điểm điều khiển Báo cáo tiểu luận với 0u1 Chúng ta tiến hành phép tăng bậc, giảm bậc hàm Bezier Ví dụ: đường cong Berier bậc ba Chương trình Matlab hold off; % Vi tri vecto P = [80 80; 150 100; 300 250; 450 20]; %P = [p1x p1y; %p2x p2y; %p3x p3y; %p4x p4y] X = [0 0 1 1+eps]; tmin=0; tmax=1; n = 3; Bs = zeros(51,2); 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:51 t = tmin + (tmax-tmin)*(i-1)/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 có biên dạng đường cong Berier bậc ba sau: Báo cáo tiểu luận 1.2 Mơ hình toán học đường cong B-spline đồng Để hiểu đặc trưng hình học đường cong B-spline bậc cần phải biết cấu trúc hình học đường cong này.Giả sử, bốn đỉnh điều khiển đường cong bậc ba ký hiệu V0, V1, V2, V3.Ta định nghĩa sau: Là điểm V0 V1 Là điểm V1 V2 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Là điểm nằm phần ba đoạn thẳng V1 M0 Là điểm nằm phần ba đoạn thẳng V2 M1 Ta xây dựng đoạn cong r(u) thoả mãn điều kiện sau: - Đoạn cong điểm P0 điểm cuối P1 - Vectơ tiếp tuyến t0 điểm P0 ( M0-V0) - Vectơ tiếp tuyến t1 điểm P1 ( M1-V1) Điểm mút P0 P1 đoạn cong biểu diễn theo đỉnh điều khiển sau: - Điểm đầu P0 đoạn cong B-spline r(u) dánh sau o Hay (1-a) Báo cáo tiểu luận Đánh giá r(u) điểm cuối P1 ứng với u = Biểu diễn P1: Ta có (1-b) , ta xác định tiếp tuyến t0: Hay (2-a) Tương tự ta có: Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Hay (2-b) Tử phương trình (1-a), (1-b), (2-a), (2-b) ta có hệ phương trình tuyến tính Chuyển sang dạng ma trận ta được: Thay kết tìm vào đường cong Ferguson ta tìm cách biểu diễn đường cong B-spline đồng bậc r(u) Báo cáo tiểu luận =U C S =UCKR Với ≤ u ≤ = U (C K) R U = [1 u u2 u3 ] C – ma trận hệ số Ferguson R = [V0 V1 V2 V3 ]T Trong N- hệ số đường cong B-spline bậc ba Đường cong B-spline đồng bậc ba viết dạng biểu thức đại số sau: Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Đặt: Đường cong B-spline viết dạng biểu thức đại số: Tập phương trình đại số Si,3(u) với i = 0,B-spline đồng bậc ba hay gọi hàm hỗn hợp B-spline - Ví dụ: đường cong B-spline bậc Báo cáo tiểu luận %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 1 1+eps]; tmin=0; tmax=1; n = 2; Bs = zeros(51,3); for i = 1:51 t = tmin + (tmax-tmin)*(i-1)/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 500]); title('B-Spline bac ba'); grid on Ta có đường B-spline bậc ba sau: Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Báo cáo tiểu luận 1.3 Mảnh mặt Berier Bây xây dựng mảnh mặt Bezier từ đường cong Bezier tương tự phương pháp hình thành mảnh mặt Ferguson nêu Giả thiết có mảng 4x4 đỉnh điều khiển V03 V02 V13 V23 V12 v =0 V01 V00 bố trí hình V22 V11 V21 V32 V33 V31 V10 V20 u =0 V30 Hình Mảnh mặt Bezier bậc Các đỉnh điều khiển liên kết với đa thức Bernstein, mảnh mặt Bezier bậc xác định sau: 10 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM (10) = U M B MT VT Trong đó: U= V= M= Báo cáo tiểu luận M gọi ma trận hệ số Bezier B 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 m điều khiển sau: (11) Trong đó: Trong CAD/CAM người ta thường sử dụng mảnh mặt Bezier bậc m=n=5 m=n=7 Khi bậc m=n=5 số đỉnh điều khiển cần thiết 36 Chúng ta tiến hành tăng giảm bậc phương trình mảnh mặt tam giác Bezier 11 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Ví dụ bề mặt Berierbậc pr = 20; P = zeros(3,3,3); P(1,1,:) = [0 -1]; P(1,2,:) = [0 5]; P(1,3,:) = [0 1]; P(2,1,:) = [2 1]; P(2,2,:) = [3 10 -2]; P(2,3,:) = [1 0]; P(3,1,:) = [2 1]; P(3,2,:) = [4 0]; P(3,3,:) = [5 3]; n = 2; m = 2; % Knot vectors X = [0 0.5 1+eps 1+eps]; Y = [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 = (g-1)/pr; for h = 1:(pr+1) v = (h-1)/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 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'); Báo cáo tiểu luận 12 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM 1.4 Mảnh mặt B-spline đồng Báo cáo tiểu luận Mặt B-spline đồng bậc ba hai biến u v biểu diễn phương trình sau: Với ≤ u ≤ = U N B NT VT Trong đó: U = [ u u2 u3 ] V = [ v v2 v3 ] 13 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM Mặt B-spline đồng thể hình sau: V03 V02 V01 V 00 V13 V23 V12 V22 V11 v u V10 V21 V20 V32 V33 V31 Báo cáo tiểu luận V30 Măt cong B-spline đồng bậc hai em tích tensor đường cong B-spline đồng bậc hai r(u) = U N2 R Mặt đồng B-spline có bậc hai biến u v khác Ví dụ mặt B-spline có biến u biến v bậc hai, phương trình biểu diễn sau: r(u)= U N B N2T VT Với ≤ u ≤ Trong đó: U = [ u u2 u3 ] V = [ 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 Ví dụ mảnh mặt B-spline : pr = 20; % cac diem P = zeros(4,3,3) P(1,2,:) = [2 2]; P(1,3,:) = [1 4]; P(1,4,:) = [1 3]; P(2,1,:) = [2 1]; P(2,2,:) = [2 -5 3]; P(2,3,:) = [2 -4 1]; P(2,4,:) = [1 10 6]; P(3,1,:) = [2 1]; P(3,2,:) = [3 0]; P(3,3,:) = [5 2]; P(3,4,:) = [2 -1]; P(4,1,:) = [1 1]; P(4,2,:) = [4 2]; P(4,3,:) = [3 5]; P(4,4,:) = [4 8]; Báo cáo tiểu luận n = 3; m = 3; % Knot vectors X = [0 0 0.5 1+eps 1+eps 1+eps]; Y = [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 = (g-1)/pr; for h = 1:(pr+1) v = (h-1)/pr; 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,m-1,v,Y); R(g,h)=R(g,h)+ P(i,j,2)*bsplinebasis(i,n-1,u,X)*bsplinebasis(j,m-1,v,Y); S(g,h)=S(g,h)+ P(i,j,3)*bsplinebasis(i,n-1,u,X)*bsplinebasis(j,m-1,v,Y); end end end end hold off; 15 Học viên: Vũ Quang Lương Phương pháp xây dựng bề mặt cho CAD/CAM 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 B-Spline '); Báo cáo tiểu luận 16 Học viên: Vũ Quang Lương