Chƣơng trình AutoLISP tạo lệnh cho AutoCAD để vẽ biên dạng bánh răng con lăn

pdf 8 trang phuongnguyen 1010
Bạn đang xem tài liệu "Chƣơng trình AutoLISP tạo lệnh cho AutoCAD để vẽ biên dạng bánh răng con lăn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfchong_trinh_autolisp_tao_lenh_cho_autocad_de_ve_bien_dang_ba.pdf

Nội dung text: Chƣơng trình AutoLISP tạo lệnh cho AutoCAD để vẽ biên dạng bánh răng con lăn

  1. CHƢƠNG TRÌNH AUTOLISP TẠO LỆNH CHO AUTOCAD ĐỂ VẼ BIÊN DẠNG BÁNH RĂNG CON LĂN AUTOLISP PROGRAM CREATING THE COMMAND FOR AUTOCAD TO DRAW THE ROLLER GEAR PROFILE PGS. TS LÊ HIẾU GIANG Trường Đại học Sư phạm Kỹ thuật TP.HCM Nguyễn Ngọc Cƣờng Trường Cao đẳng Công nghiệp Tuy hòa TÓM TẮT Đối với các phần mền cơ khí hiện nay, để vẽ biên dạng bánh răng con lăn là công việc mất rất nhiều thời gian và không thuận tiện cho người thiết kế. Bài báo trình bày chương trình AutoLISP tạo lệnh cho AutoCAD để vẽ biên dạng bánh răng con lăn. Đây là chương trình AutoLISP hữu ích cho các nhà thiết kế cơ khí và nó cũng góp phần vào công tác nghiên cứu và đào tạo tại các trường Đại học và Cao đẳng trong lĩnh vực cơ khí, ABSTRACT For the current software engineering, to draw the roller gear profile is the work takes a lot of time and is not convenient for the designer. This paper presents AutoLISP program for AutoCAD commands to draw the roller gear profile. This is useful AutoLISP program for the mechanical design and it also contributed to the research and training in universities and colleges in the field of mechanical engineering, 1. Mở đầu AutoCAD là phần mềm đồ họa thuộc hãng AutoDesk, nó được sử dụng rộng rãi trong lĩnh vực thiết kế cơ khí. Về căn bản, AutoCAD cung cấp cho người dùng khả năng để can thiệp và cá nhân hóa quá trình thực thi của nó. Với những ưu điểm vượt trội như vậy, Tác giả đã sử dụng mã nguồn mở của phần mềm AutoLISP để xây dựng một chương trình AutoLISP tích hợp vào AutoCAD để thiết kế nhanh chóng biên dạng bánh răng con lăn. Đó là nội dung của bài viết này. - 1 -
  2. 2. Phƣơng trình biên dạng đĩa Cycloid Biên dạng Cycloid (bánh răng con lăn) là quỹ tích của một điểm cố định trên một đường tròn khi đường tròn này lăn không trượt trên một đường thẳng hoặc đường tròn cố định khác. Nếu sử dụng một điểm D cũng gắn với đường tròn bán kính r2 nhưng nằm ở bên ngoài thì điểm D sẽ vẽ lên đường EpiCycoid kéo dài D0D1 có phương trình dạng tham số: Hình 1. Sự tạo thành đường EpiCycloid A xD2 AR cos .cos r2 (1) A y AR sin .sin D2 r2 Các vòng tròn bán kính r1 và r2 là các vòng tròn lăn và cần thỏa mãn điều kiện: r1 = A.z1 , r2 = r1 + A Để có đường EpiCycloid kéo dài đầy đủ thì τ biến thiên từ 0 đến 2π. Thay điểm D bằng một vòng tròn bán kính con lăn rc. Khi τ biến thiên từ 0 đến 2π, quỹ đạo điểm D sẽ cho được đường EpiCycloid kéo dài D0D1D2, khi đó đường bao họ các vòng tròn rc sẽ tạo ra các đường bao cách đều, với đường bao phía trong là N0N1N2. Phương trình biên dạng đĩa Cycloid cần dựng: ry. / xx cD D / 2 / 2 xyDD (2) rx. / yy cD D / 2 / 2 xyDD / / Trong đó (x D, y D) được xác định: / xDD y Az11sin(1 z ) / (3) yDD x Az11cos(1 z ) Hình 2. Xây dụng biên dạng đĩa Cycloid - 2 -
  3. 3. Lƣu đồ giải thuật và chƣơng trình thiết kế 3.1. Lƣu đồ giải thuật Bắt đầu Nhập Z, A, R, rc, Dc goc = 0 Sai goc<=360 Kết thúc Đúng X1 = R*Cos(goc)-A*Cos((1+Z)*goc) Y1 = R*Sin(goc)-A*Sin((1+Z)*goc) X2=-R*Sin(goc)+A*(1+Z)*Sin((1+Z)*goc Y2=R2*Cos(goc)-A*(1+Z)*Cos((1+Z)*goc X3=X1-(rc*Y2)/ X 22 Y22 Y3=Y1+(rc*X2)/ X 22 Y22 pt1=point(X3,Y3) goc = goc + 360/Dc X1 = R*Cos(goc)-A*Cos((1+Z)*goc) Y1 = R*Sin(goc)-A*Sin((1+Z)*goc) X2=-R*Sin(goc)+A*(1+Z)*Sin((1+Z)*goc Y2=R2*Cos(goc)-A*(1+Z)*Cos((1+Z)*goc X3=X1-(rc*Y2)/ Y3=Y1+(rc*X2)/ pt2=point(X3,Y3) Vẽ đường thẳng từ pt1 đến pt2 goc = goc + 360/Dc Hình 3. Lưu đồ giải thuậti AutoLISP vẽ biên dạng bánh răng con lăn - 3 -
  4. 3.2. Chƣơng trình thiết kế Sau đây là toàn bộ nội dung của chương trình AutoLISP tạo lệnh vẽ biên dạng bánh răng con lăn sử dụng trong AutoCAD. (defun dtr (x) (* x (/ pi 180))) (while (<= goc 360) (defun c:cycloid () (setq (princ X1 (- (* R (cos (dtr goc))) (* A (cos (* (+ 1 Z) (dtr "CHUONG_TRINH_VE_BIEN_DANG_CYCLOID goc))))) ; ") ) (setq echo (getvar "cmdecho")) (setq (setvar "cmdecho" 0) Y1 (- (* R (sin (dtr goc))) (* A (sin (* (+ 1 Z) (dtr (setvar "osmode" 4287) goc))))) (setq Osm (getvar "osmode") ) Ort (getvar "orthomode") ;x1 = R2 ) * Cos(fi) - A * Cos((1 + Z1) * fi) (initget 1) ;y1 = R2 (initget 4) * Sin(fi) - A * Sin((1 + Z1) * fi) (setq R (getdist (setq x2 (- (* A Z (sin (* (+ 1 Z) (dtr goc)))) Y1)) "\NHAP BAN KINH DUONG TRON (setq y2 (- x1 (* A Z (cos (* (+ 1 Z) (dtr goc)))))) LAN QUA CAC CON LAN: R = " ;x2 = - ) R2 * Sin(fi) + A * (1 + Z1) * Sin((1 + Z1) * fi) ) ;y2 = R2 (setq A (getdist "\NHAP KHOANG LENH TAM: A * Cos(fi) - A * (1 + Z1) * Cos((1 + Z1) * fi) = ")) (setq x3 (- x1 (/ (* rc y2) (sqrt (+ (* x2 x2) (* y2 (setq rc (getdist "\NHAP BAN KINH CON LAN: rc = y2)))))) ")) (setq y3 (+ y1 (/ (* rc x2) (sqrt (+ (* x2 x2) (* y2 (setq z (getdist "NHAP SO RANG: Z = ")) y2)))))) (setq Rt (getdist "\NHAP BK DUONG TRON QUA ;X = x1 - CAC CHOT = ")) (rc * y2) / Sqrt(x2 * x2 + y2 * y2) (setq rct (getdist "\NHAP BAN KINH CHOT: ")) ;Y = y1 (setq Dc (getdist "\NHAP SO DIEM CAN CHIA: ")) + (rc * x2) / Sqrt(x2 * x2 + y2 * y2) (setq goc 0) (setq pt1 (list x3 y3)) - 4 -
  5. (setq pt3 (list x1 y1)) (setq cent1 (list (- 0 A) 0)) (setq goc (+ (/ 360 dc) goc)) (command "circle" cent1 R) (setq (setq cent2 (list 0 0)) X1 (- (* R (cos (dtr goc))) (* A (cos (* (+ 1 Z) (dtr (setq bk2 (- R A)) goc))))) (command "circle" cent2 bk2) ) (setq cent3 (list (- R A) 0)) (setq (command "circle" cent3 rc) Y1 (- (* R (sin (dtr goc))) (* A (sin (* (+ 1 Z) (dtr (setq cent4 (list 0 0)) goc))))) (setq bk4 Rt) ) (command "circle" cent4 bk4) (setq cent5 (list Rt 0)) (setq x2 (- (* A Z (sin (* (+ 1 Z) (dtr goc)))) Y1)) (setq bk5 (+ rct A)) (setq y2 (- x1 (* A Z (cos (* (+ 1 Z) (dtr goc)))))) (command "circle" cent5 bk5) (setq x3 (- x1 (/ (* rc y2) (sqrt (+ (* x2 x2) (* y2 ;(Setq y2)))))) cent6 (list (- Rt A) 0)) (setq y3 (+ y1 (/ (* rc x2) (sqrt (+ (* x2 x2) (* y2 ;(setq y2)))))) bk6 rct) (setq pt2 (list x3 y3)) (setq pt4 (list x1 y1)) ;(command "circle" cent6 bk6) ; VE CHOT (command "line" pt1 pt2 "") (command "zoom" "all") (command "line" pt3 pt4 "") ) (command "viewres" 20000) (command "region" "all" "") (princ) (command "color" 1) ) 3.3. Hƣớng dẫn sử dụng chƣơng trình Sau khi viết xong chương trình phải lưu lại với tên file nào đó ví dụ BIEN_DANG_CYCLOID, có phần mở rộng .lisp nằm trong thư mục SUPPORT của AutoCAD. Trình tự tải và chạy chương trình như sau:  Bƣớ c 1: Gọi lệnh: Tools Load Text in Editor từ danh mục của VLISP (hoặc nhấn tổ hợp phím Ctrl+Alt+E hoặc nhắp biểu tượng Load Active Edit Window) sẽ xuất hiện cửa sổ mới Visual LISP console. 5
  6.  Bƣớ c 2: Kích hoạt cửa sổ đồ họa AutoCAD  Bƣớ c 3: Tải file chương trình AutoLISP ra bản vẽ hiện hành, gọi: Tools> AutoLISP>Load Application (hoặc nhập lệnh Appload) sẽ hiển thị hộp thoại Load/Unload Application, chọn file BIEN_DANG_CYTROID, nhắp nút Load rồi nhắp nút Close đóng hộp thoại.  Bƣớ c 4: Gọi lệnh Cycloid vẽ biên daṇ g Bánh răn con lăn + Command: Cycloid  CHUONG_TRINH_VE_BIEN_DANG_CYCLOID ; NHAP BAN KINH DUONG TRON LAN QUA CAC CON LAN R = : NHAP KHOANG LECH TAM A = : NHAP BAN KINH CON LAN rc = : NHAP SO RANG Z = : NHAP SO DIEM CAN CHIA Dc = :  Sau khi nhâp̣ xong các yêu cầu , chương trình se ̃ ve ̃ ra 1 biên daṇ g bánh răng con lăn . Từ đó, cho phép ngườ i dùng có thể xuất biên daṇ g qua các phần mềm khác để tính toán , thiết kế và gia công.  Ví dụ minh họa: + Yêu cầu: dưṇ g biên daṇ g bánh răng con y lăn vớ i các thông số do ngườ i dùng nhâp̣ vào như sau: Bán kính đường tròn qua các con lăn: R = 100; Khoảng lệch tâm: A = 6; x Bán kính con lăn: Rc = 10; Số răng: Z = 10; Số điểm cần chia: Dc = 2000; + Sau khi goị lêṇ h và nhâp̣ các thông số Hình 5. Đường bao trong đầy đủ của như theo yêu cầu đăṭ ra , phần mềm se ̃ tư ̣ đôṇ g ve ̃ ra họ vòng tròn bán kính rc biên daṇ g đĩa cycloid như hình 5. 6
  7. 4. Kết luận Kết quả bài báo trên đây là đã nghiên cứu và xây dựng xong chương trình AutoLISP tích hợp vào AutoCAD nhằm tạo điều kiện thuận lợi cho người thiết kế xây dựng biên dạng đĩa cycloid với các thông số khác nhau theo yêu cầu của người thiết kế. Từ đó, người thiết kế có thể nhanh chóng tính toán bền và chế tạo biên dạng Hình 6. Sản phẩm hoàn chỉnh sau khi gia công như hình 6. Chương trình AutoLISP trên với các dòng nhắc bằng tiếng việt, nó cho phép người dùng có thể thuận tiện sử dụng. TÀI LIỆU THAM KHẢO [1] Nguyễn Hữu Lộc, (2003), Nguyễn Thanh Trung, Lập trình thiết kế với AutoLISP và Visual LISP, tập 1,2, Nhà xuất bản Tp Hồ Chí Minh. [2] Vũ Lê Huy (2006), Thiết kế tính toán bộ truyền Bánh răng con lăn, Luận văn thạc sỹ kỹ thuật, Trường đại học bách khoa Hà Nội. [3] Nguyễn Độ; Lập trình AutoLISP tạo lệnh vẽ đường cong xoắn ốc nhiều tâm sử dụng trong AutoCAD; Tạp chí Khoa học & Công nghệ sáu Trường Đại học; Số 51/2005; Hà Nội – 2005 [4] NGUYỄN PHÚ THỌ, Sử duṇ g ma ̃ nguồn mở của AutoCAD để taọ Menu Bar dùng cho sinh viên khối kỹ thuâṭ, Tạp chí Khoa học và Công nghệ, Đaị hoc̣ Đà Năñ g – Số 4(27). 7
  8. BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.