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.
Trang 1L 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 quá 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 quá 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ủ ậ ể ứ ả ề ọ ự ậ ơ
b cho các biên d ng độ ạ ường và m t c b n, bặ ơ ả ước đ u bi t đầ ế ược nguyên lý chung cho quá 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 toá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 quá 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 Quý 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 hoàn thi n t t h n.ủ ầ ạ ể ể ệ ố ơ
Hà n iộ , ngày 19 tháng 8 năm 2009
Trang 2H c viênọ
Vũ Quang Lương
Trang 3Ph n 1. C S LÍ THUY Tầ Ơ Ở Ế
Đ t o thành các kh i v t th trong không gian 3D, trong kĩ thu tể ạ ố ậ ể ậ
người ta s d ng các đử ụ ường cong ph ng. Trong toá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 toá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:ậ
d c b
a u u u u
Hay r(u) = UA v i 0ớ u 1
Trong đó U là véc t c s và A là véc t h s ơ ơ ở ơ ệ ố
1.1. Mô hình toá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 Vớ ề ệ 0, V1, V2, V3 trong đó:
V0 đi m b t đ u đo n để ắ ầ ạ ường cong, tương ng v i đi m Pứ ớ ể 0.
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. ỉ
Trang 4V2 đ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 Pể ố ủ ạ ứ ớ ỉ 1.
Đ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
t
r(u)
1
t0
0
1
V
2 V
0
3 V
1 V
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 tị 0 theo V1 ta nh n đậ ược:
V1 = V0 + t0/3 3V1 = 3V0 t0 t0 = 3(V1V0) Xác đ nh tị 1 theo V2 ta có:
V2 = V3 t1/3
Trang 53V3 = 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:ậ
R L V V V V
t t P
P S
3 2 1 0
1 0 1 0
3 3 0 0
0 0 3 3
1 0 0 0
0 0 0 1
(4)
Thay (4) vào (2) ta nh n đậ ược đường cong Bezier b c ba.ậ
r(u) = U C S
V i 0ớ u 1
Đ t M = C Lặ
1 1 2 2
1 2 3 3
0 1 0 0
0 0 0 1
L C M
3 3 0 0
0 0 3 3
1 0 0 0
0 0 0 1
=
1 3 3 1
0 3 6 3
0 0 3 3
0 0 0 1
Và R =
3 2 1 0
V V V V
Phương trình (5) được g i là phọ ương trình đường cong Bezier
Trang 6Phươ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
= 3
0 1,3
) (
V u B
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:ế ư
u)
(1 u
! )!
(
!
(u)
n
n
Đ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.ậ ớ ể ề ể
n
i i n i
V u B u
r
) ( )
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
Trang 7%P = [p1x p1y;
X = [0 0 0 0 1 1 1 1+eps];
tmin=0;
tmax=1;
n = 3;
Bs = zeros(51,2);
t = tmin + (tmaxtmin)*(i1)/50;
Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,4,t,X); end
end
grid on
Ta s có đẽ ược biên d ng đạ ường cong Berier b c ba nh sau:ậ ư
1.2. Mô hình toán h c đọ ường cong Bspline đ ng nh tồ ấ
Trang 8Đ 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 Vệ 0, V1, V2, V3.Ta đ nh nghĩaị
nh sau:ư
2
1
0
0
V
V
M Là đi m gi a c a Vể ữ ủ 0 và V1
2
2
1
1
V
V
M Là đi m gi a c a Vể ữ ủ 1 và V2
3
2 1 0
0
M
V
P Là đi m n m m t ph n ba c a đo n th ng Vể ằ ở ộ ầ ủ ạ ẳ 1 và M0
3
2 2 1
1
M
V
P Là đi m n m m t ph n ba c a đo n th ng Vể ằ ở ộ ầ ủ ạ ẳ 2 và M1
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 Pạ ắ ầ ừ ể 0 và đi m cu i là Pể ố 1
Vect ti p tuy n tơ ế ế 0 đi m Pở ể 0 là b ng ( Mằ 0V0)
Vect ti p tuy n tơ ế ế 1 đi m Pở ể 1 là b ng ( Mằ 1V1)
Đi m mút Pể 0 và P1 c a đo n cong bi u di n theo các đ nh đi u khi n nh sau:ủ ạ ể ễ ỉ ề ể ư
Đi m đ u Pể ầ 0 c a đo n cong Bspline r(u) đủ ạ ược dánh giá nh sauư
o
6
4
3 2
2 3
0 1 0
V V V v V V M V P
Hay ( 0 ) 4 1 (60 2)
0
V V V r
Đánh giá r(u) t i đi m cu i Pạ ể ố 1 ng v i u = 1ứ ớ
6
4
3 2
2 3
0 1 1
V V V V V V M V P
Bi u di n t i Pể ễ ạ 1: ( 1 ) 4 2 (61 3)
1
V V V r
Ta có t0 r.(u), do đó ta xác đ nh ti p tuy n tị ế ế 0:
Trang 92 2
0 2 0 2 0 0 0 0
V V V V V V M
P
Hay .( 0 ) 2 2 0
0
V V r
Tương t ta có: ự
2 2
1 3 1 3 1 1 1
1
V V V V V V M
P
Hay .( 1 ) 32 1
1
V V r
T các phử ương trình (1a), (1b), (2a), (2b) ta có h phệ ương trình tuy n tínhế
) 0 4
( 6
1
2 4 0
P
) 4 0
( 6
1
3 2 1
P
) 0 3 0 3 ( 6
1
2 0
t
) 3 0 3 0 ( 6
1
3 1
t
Chuy n sang d ng ma tr n ta để ạ ậ ược:
KR V
V V V
t t
P S
3 2 1 0
1 0 1 0
3 0 3 0
0 3 0 3
1 4 1 0
0 1 4 1 6 1 P
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
= U (C K) R
U = [1 u u2 u3 ]
C – ma tr n h s Ferguson ậ ệ ố
Trang 101 3 3 1
0 3 6 3
0 3 0 3
0 1 4 1 6
1
N
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:
3
3 2 3 2 1
3 2 0
3 2
3 3 3 1 6
3 6 4 6
3
3
1 u u u V u u V u u u V u V
r u
Đ t:ặ
6
3 3 1 )
3
,
0
u u u u
S
6
3 6 4 )
3
,
1
u u u
S
6
3 3 3 1 )
3
,
2
u u u u
S
6 )
( 3
3
,
3
u u
S
Đường cong Bspline vi t dế ướ ại d ng bi u th c đ i s :ể ứ ạ ố
i
i i n
V u S u
r( ) 3 ( ).
T p phậ ương trình đ i s Sạ ố i,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;
X = [0 0 0 1 1 1+eps];
Trang 11tmin=0;
tmax=1;
n = 2;
Bs = zeros(51,3);
t = tmin + (tmaxtmin)*(i1)/50;
Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,n+1,t,X); end
end
%axis([500 0 0 500]);
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 ế ằ ả ỉ ề ể Vj, được b trí nh trênố ư hình 4
Trang 12V 03 V 13
V 23
V 33
V 32
V 22
V 12
V 02
V 01
V 00 V 10
V 11
V 21
V 31
V 30
V 20
v =0
u =0
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:ị ư
3 0
3 0
3 3
B v)
r(u,
i j j ij
V v B u
3 0
3 0
3
! )!
3 (
! 3 )
1 (
! )!
3 (
! 3 v)
r(u,
i j
j j
i
j j u
u i
= U M B MT VT Trong đó: U = 1 u u2 u3
và V = 1 v v2 v3
M =
1 3 3 1
0 3 6 3
0 0 3 3
0 0 0 1
33 32 31 30
23 22 21 20
13 12 11 10
03 02 01 00
V V V V
V V V V
V V V V
V V V V B
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:
Trang 13i
n
n
j v V B u
m
B v)
Trong đó:
i m i
m
i i m
m u
! )!
(
! )
(
j n j
n
j j n
n v
! )!
(
! )
(
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);
u = (g1)/pr;
v = (h1)/pr;
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);
Trang 14end
end
end
hold off ;
hold on ;
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:
3
0
3
0
3
3 ( ) ( ) )
,
(
V u N u N v
u
= U N B NT VT Trong đó: U = [ 1 u u2 u3 ]
V = [ 1 v v2 v3 ]
Trang 1533 32 31 30
23 22 21 20
13 12 11 10
03 02 01 00
V V V V
V V V V
V V V V
V V V V B
1 3 3 1
0 3 6 3
0 3 0 3
0 1 4 1 6
1
N
6
3 3 1 )
3 , 0
u u u u
N
6
3 6 4 )
3 , 1
u u u
N
6
3 3 3 1 )
3 , 2
u u u u
N
6 ) ( 3
3 , 3
u u N
M t Bspline đ ng nh t đặ ồ ấ ược th hi n dể ệ ưới hình sau:
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:ể ễ ư
r(u)= U N B N2T VT V i 0 ≤ u ≤ 1 ớ
Trong đó:
U = [ 1 u u2 u3 ]
V03 V13
V23
V33
V32
V22
V12
V02
V01
V00 V10
V11
V21 V31
V30
V20
Trang 1632 31 30
22 21 20
12 11 10
02 01 00
V V V
V V V
V V V
V V V B
1 3 3 1
0 3 6 3
0 3 0 3
0 1 4 1 6
1
N
1 2 1
0 2 2
0 1 1
2
N
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);
u = (g1)/pr;
v = (h1)/pr;
Trang 17for i = 1:(n+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
hold off ;
hold on ;