TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 4(39).2010
61
CHƯƠNG TRÌNH AUTOLISP TO H ĐƯỜNG CONG EPITROCHOID
VÀ HYPOTROCHOID TÍCH HP VÀO AUTOCAD
THE AUTOLISP PROGRAM CREATES A FAMILY OF EPITROCHOID AND
HYPOTROCHOID CURVES INTEGRATED IN AUTOCAD
Nguyn Độ
Trường Đại hc Bách khoa, Đại hc Đà Nng
TÓM TT
Bài báo trình bày chương trình AutoLISP to ra hc đường cong Epitrochoid và
Hypotrochoid - qu tích ca các đim được to ra bi mt đim gn vi mt đường tròn khi
đường tròn này ln lượt lăn không trượt quanh phía bên ngoài và phía bên trong mt đường
tròn c định khác. Chương trình biu din rt nhanh, chính xác và tng quát h các đường
cong Epitrochoid và Hypotrochoid theo góc nghiêng bt k ca trc X và góc quay bt k ca
bán kính đường tròn c định. Đây là chương trình AutoLISP dùng cho các nhà thiết kế cơ khí,
được dùng rng rãi trong thiết kế to biên dng răng cycloid và nhiu ng dng khác trong
k thut.
ABSTRACT
The paper presents the AutoLISP program creating a family of the Epitrochoid and
Hypotrochoid curves which are locus of points traced out by a point attached to a circle as the
circle rolls without slipping around the outside and the inside of another fixed circle, respectively.
This program generates a family of the Epitrochoid and Hypotrochoid curves very fast, exactly
and generally at any rotation angle of X - axis and of fixed circle’s radius. This is a useful
AutoLISP program for mechanical engineers, which has been widely used in the design of gear
tooth profile and other applications in technology.
1. Đặt vn đề và kho sát
Hin nay AutoCAD vn chưa có đủ các chương trình ng dng tha mãn mi
nhu cu ca người dùng, chng hn để to ra đường cong EpitrochoidHypotrochoid
dùng to biên dng răng cycloid trong thiết kế cơ khí cũng như các ng dng khác thì
AutoCAD vn chưa có lnh.
Đường cong Epitrochoid và Hypotrochoid là qu tích ca các đim được to ra
bi mt đim M gn vi mt đường tròn khi đường tròn này ln lượt lăn không trượt
quanh bên ngoài và bên trong mt đường tròn c định khác
Đường tròn lăn bán kính r gi là đường tròn sinh
Đường tròn c định bán kính R gi là đường tròn cơ s.
² Nếu đường tròn r lăn không trượt phía bên ngoài đường tròn cơ s R thì qu
đạo ca đim M gn vi đường tròn lăn vch ra đường Epitrochoid
Gi s đường tròn tâm I bán kính r lăn không trượt phía bên ngoài đường tròn c
định bán kính R có tâm trùng gc h trc ta độ, bt đầu lăn t T0 và lăn được mt cung
T0T (đon nét đứt); (hình 1a), chn góc φ tâm O tương ng vi cung TN thuc đường
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 4(39).2010
62
tròn lăn chn góc δ tâm I ; lúc này qu đạo ca đim M vch lên cung đường cong
Epitrochoid M
0M. D dàng thiết lp được h phương trình tham s ca đường
Epitrochoid là:
ϕ
+
ϕ+=
ϕ
+
ϕ+=
)
r
rR
d.sin(r)sin(R y
)
r
rR
d.cos(r)cos(R x
(1)
² Nếu đường tròn lăn không trượt phía bên trong đường tròn cơ s thì qu đạo
ca đim M gn vi đường tròn lăn vch ra đường Hypotrochoid
Gi s đường tròn tâm I bán kính r lăn không trượt phía bên trong đường tròn c
định bán kính R, lúc này qu đạo ca đim M vch lên cung đường cong Hypotrochoid
M0M; (hình 1b). D dàng thiết lp được h phương trình tham s ca đường
Hypotrochoid là:
ϕ
ϕ=
ϕ
+ϕ=
)
r
rR
d.sin(r)sin(R y
)
r
rR
d.cos(r)cos(R x
(2)
Trong đó: R bán kính ca đường tròn cơ s
r bán kính ca đường tròn lăn
d khong cách t đim M ti tâm vòng tròn lăn
φ tham s góc quay tương ng ca bán kính đường tròn cơ s.
a) Vòng lăn tiếp xúc ngoài cho Epitrochoid b) Vòng lăn tiếp xúc trong cho Hypotrochoid
Hình 1. Hình thành đường cong EpitrochoidHypotrochoid
² Các trường hp:
Nếu d = r, tc đim M nm trên đường tròn lăn thì lúc này đường Epitrochoid tr
thành đưng Epicycloidđường Hypotrochoid tr thành đường Hypocycloid (hình 2)
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 4(39).2010
63
OX
Y
R60
OX
Y
R90
M
O
M
O
a) Vi R=60, d = r = 20 - Epicycloidb) Vi R =90, d=r = 30 - Hypocycloid
Hình 2. Biu din đường cong Epicycloid Hypocycloid
- Nếu R/r = k là s nguyên thì h các đường cong EpitrochoidHypotrochoid
gm k cung bng nhau đóng kín khi bán kính R ca đường tròn cơ s quay góc 3600
(hình 3)
R60 R80
OO
Hình 3. Biu din đường cong EpitrochoidHypotrochoid vi R/r = 10, d=20, φ=3600
- Nếu R/r = 2 và d r thì h phương trình Hypotrochoid (2) biu din đường
cong elip (hình 4) và có phương trình (3) như sau:
ϕ=
ϕ+=
d)sin(r y
d)cos(r x
()
1
dr
y
d)(r
x
2
2
2
2
=
+
+ (3)
X
Y
O
R60
80
40
X
Y
O
R60 R30
IM
O
M
O
I
Hình 4. Vi R=2r=60; d=10 Hình 5- Vi R=2r=2d =60 thì
thì đường Hypotrochoid tr thành ElipHypotrochoid suy biến thành đon thng
- Nếu R/r = 2 và d = r thì h phương trình Hypotrochoid (2) suy biến thành đon
thng (hình 5) nm trên trc X có độ dài ln nht bng 2R và có phương trình tham s
(4) như sau:
=
ϕ=
0y
cosRx (4)
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 4(39).2010
64
- Nếu R/r = k là s hu t ti gin dng p/q thì đường cong Epitrochoid
Hypotrochoid có p cung bng nhau đóng kín khi bán kính R ca đường tròn cơ s quay
góc ϕ = q.3600 (hình 6)
O
R30
X
Y
O
R50
X
Y
M
O
II
M
O
a) Vi R/r =5/2; d=28, φ= 7200 a) Vi R/r =5/2; d=45, φ= 7200
biu din Epitrochoid kín biu din Hypotrochoid kín
Hình 6. Biu din đường EpitrochoidHypotrochoid khi R/r là hu t
- Nếu R/r = k là s vô t thì đường cong EpitrochoidHypotrochoid không bao
gi đóng.
² ng dng: H các đường cong EpitrochoidHypotrochoid là các loi
đường cong được dùng để to biên dng răng cycloid trong thiết kế cơ khí (hình 7).
Hình 7. ng dng to biên dng răng Epitrochoid Hypotrochoid
² Biu din: Vic v h các đường cong EpitrochoidHypotrochoid bng
phương pháp th công thì quá phc tp, rt khó khăn và mt nhiu thi gian.
Để to ra h các đường EpitrochoidHypotrochoid chính xác, nhanh và tng
quát ng vi các đường tròn cơ sđường tròn lăn bt k. Da vào ngôn ng lp trình
AutoLISP tác gi xây dng chương trình biu din h các đường cong Epitrochoid
Hypotrochoid tích hp vào AutoCAD. Đó chính là ni dung nghiên cu ca bài báo này.
2. Ni dung chương trình
Sau đây là toàn b ni dung chương trình biu din h đường cong Epitrochoid
Hypotrochoid có bán kính và góc quay tùy ý ca đường tròn cơ s được tích hp vào
AutoCAD:
(defun C:EHTRO ()
(princ "\nDAY LA CHUONG TRINH VE DUONG CONG EPITROCHOID VA HYPOTROCHOID " )
(setq echo (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 4287)
(setq Osm (getvar "osmode")
Ort (getvar "orthomode")
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 4(39).2010
65
)
(setq Pt (getpoint "\nNhap tam cua duong tron co so: "))
(setq R1 (getdist Pt "\nNhap ban kinh R cua duong tron co so : ")
R2 (getdist "\nNhap ban kinh r cua duong tron lan: ")
d (getdist "\nNhap khoang cach d tren duong cong toi tam duong tron lan: ")
k (/ R1 R2)
)
(command "UCS" "N" Pt)
(setq a (getint "\nNhap goc bat dau ve duong cong <0>: "))
(command "UCS" "Z" a)
(setq Ang (getint "\nNhap goc quay cua ban kinh duong tron co so <360>: ")
goc 0.0
)
(if (not a) (setq a 0))
(if (not ang) (setq ang 360))
(setvar "orthomode" 0)
(command "undo" "be")
(command "Viewres" "" 5000)
(command "COLOR" 1)
(setvar "osmode" 0)
(defun dtr (x) (* x (/ pi 180)))
(defun EPITRO ()
(command "spline")
(repeat Ang
(setq X (- (* (+ R1 R2) (cos (dtr goc)))
(* d
(cos (* (+ k 1) (dtr goc)))
)
)
)
(setq Y (- (* (+ R1 R2) (sin (dtr goc)))
(* d
(sin (* (+ k 1) (dtr goc)))
)
)
)
(setq goc (+ goc 1))
(setq Toado (list X Y))
(command Toado)
);dong Repeat
(setq X (- (* (+ R1 R2) (cos (dtr goc)))
(* d
(cos (* (+ k 1) (dtr goc)))
)
)
)
(setq Y (- (* (+ R1 R2) (sin (dtr goc)))
(* d
(sin (* (+ k 1) (dtr goc)))
)
)
)
(setq Toado (list X Y))
(command Toado)
(command "" "" "")
(command "color" 7)
(Command "Circle" '(0 0) R1)
);dong ham EPITRO
(defun HYPOTRO ()
(command "spline")
(repeat Ang
(setq X (+ (* (- R1 R2) (cos (dtr goc)))
(* d
(cos (* (- k 1) (dtr goc)))
)
)