Xây dựng mô-đun hỗ trợ CAPP xuất Gcode tự động trực tiếp từ đối tượng gia công sử dụng lập trình tham số

Tóm tắt - Lập quy trình công nghệ có sự trợ giúp của máy tính

(CAPP) ngày càng được chú trọng phát triển nhằm đưa công nghệ,

kinh nghiệm và trí tuệ của con người vào lĩnh vực tự động hóa sản

xuất. Việc sử dụng các dữ liệu trích xuất từ CAPP bao gồm các

thông tin hình học và công nghệ của đối tượng gia công để tự động

tạo ra các chương trình Gcode gia công trên máy CNC chưa được

nghiên cứu cụ thể. Mô-đun lập trình CNC theo kiểu tham số cho

các đối tượng gia công phổ biến như mặt phẳng, hốc, đảo, rãnh,

lỗ v.v. được trình bày trong bài báo đã xử lý hiệu quả bài toán đó,

từ đó hoàn thiện dòng tích hợp CAD/CAPP/CNC mà không cần

thông qua các thao tác bằng tay trong mô-đun CAM. Với mỗi đối

tượng gia công chỉ cần khai báo thông số cơ bản, mô-đun sẽ hỗ

trợ xuất Gcode tự động cho từng đối tượng. Trong bài báo, một chi

tiết với các đối tượng gia công cơ bản được sử dụng để mô tả

phương pháp và kiểm tra tính hiệu quả của mô-đun.

pdf 6 trang yennguyen 8640
Bạn đang xem tài liệu "Xây dựng mô-đun hỗ trợ CAPP xuất Gcode tự động trực tiếp từ đối tượng gia công sử dụng lập trình tham số", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Xây dựng mô-đun hỗ trợ CAPP xuất Gcode tự động trực tiếp từ đối tượng gia công sử dụng lập trình tham số

Xây dựng mô-đun hỗ trợ CAPP xuất Gcode tự động trực tiếp từ đối tượng gia công sử dụng lập trình tham số
52 Phùng Xuân Lan, Nguyễn Kiên Trung 
XÂY DỰNG MÔ-ĐUN HỖ TRỢ CAPP XUẤT GCODE TỰ ĐỘNG TRỰC TIẾP TỪ 
ĐỐI TƯỢNG GIA CÔNG SỬ DỤNG LẬP TRÌNH THAM SỐ 
DEVELOPMENT OF CAPP SUPPORTED MODULE FOR AUTOMATIC GCODE 
GENERATION FROM MACHINING FEATURE USING MACRO PROGRAMMING 
Phùng Xuân Lan, Nguyễn Kiên Trung 
Trường Đại học Bách khoa Hà Nội; lan.phungxuan@hust.edu.vn, trung.nguyenkien@hust.edu.vn 
Tóm tắt - Lập quy trình công nghệ có sự trợ giúp của máy tính 
(CAPP) ngày càng được chú trọng phát triển nhằm đưa công nghệ, 
kinh nghiệm và trí tuệ của con người vào lĩnh vực tự động hóa sản 
xuất. Việc sử dụng các dữ liệu trích xuất từ CAPP bao gồm các 
thông tin hình học và công nghệ của đối tượng gia công để tự động 
tạo ra các chương trình Gcode gia công trên máy CNC chưa được 
nghiên cứu cụ thể. Mô-đun lập trình CNC theo kiểu tham số cho 
các đối tượng gia công phổ biến như mặt phẳng, hốc, đảo, rãnh, 
lỗ v.v. được trình bày trong bài báo đã xử lý hiệu quả bài toán đó, 
từ đó hoàn thiện dòng tích hợp CAD/CAPP/CNC mà không cần 
thông qua các thao tác bằng tay trong mô-đun CAM. Với mỗi đối 
tượng gia công chỉ cần khai báo thông số cơ bản, mô-đun sẽ hỗ 
trợ xuất Gcode tự động cho từng đối tượng. Trong bài báo, một chi 
tiết với các đối tượng gia công cơ bản được sử dụng để mô tả 
phương pháp và kiểm tra tính hiệu quả của mô-đun. 
Abstract - Computer aided process planning (CAPP) is 
increasingly being developed to bring technology, experience and 
intelligence into the manufacturing automation. The 
implementation of the data on geometry, technical and 
manufacturing process extracted from CAPP from machining 
features to automatically generate the Gcode for CNC machine is 
ongoing research. CNC macro programming module for common 
machining features such as faces, pocket, boss, slot, holes, etc. 
presented in this article will be effective tool for the current problem 
and clear the obstacle in the integrated CAD/CAPP/CNC system 
without any manual proceesing at CAM module. The Gcode will be 
automatically generated by the module from basic information of 
each machining feature. In this paper, a machining part consists of 
the basic machining features is used to describe the method and 
to verify the module’s cability. 
Từ khóa - Lập trình tham số; đối tượng gia công; CAPP; xuất 
Gcode 
Key words - Macro programming; machining feature; CAPP; 
Gcode generation. 
1. Đặt vấn đề 
Máy công cụ CNC từ lâu đã khẳng định được vai trò 
quan trọng của mình trong nền sản xuất hiện đại đặc biệt là 
trong công nghiệp sản xuất tự động hóa ngày nay và công 
nghiệp 4.0 tương lai. Nhờ có công nghệ CAD/CAM người 
kỹ sư đã được hỗ trợ khá nhiều trong việc hình thành đường 
chạy dao và xuất chương trình Gcode sử dụng cho máy 
CNC. Tuy nhiên các chương trình Gcode xuất từ CAM ra 
thường chỉ sử dụng những lệnh nội suy Gcode cơ bản nên có 
đặc thù là khá dài, khó theo dõi và sửa đổi. Các đường chạy 
dao là do phần mềm tự động tính toán và tạo ra, do đó nhiều 
khi không giống tư duy của lập trình bằng tay. Độ chính xác 
của đường chạy dao phụ thuộc rất nhiều vào cơ sở tính toán 
bên trong phần mềm. Thậm chí các đường chạy dao tự động 
đó có thể vi phạm vào không gian của máy và đồ gá gây các 
va chạm nguy hiểm cho máy, dao và đồ gá. Chính vì vậy, 
mặc dù ở một nước có nền công nghiệp phát triển mạnh mẽ 
như Nhật Bản, họ cũng không sử dụng nhiều các phần mềm 
CAD/CAM để hình thành Gcode mà tối đa sử dụng lập trình 
tham số trực tiếp trên hệ điều khiển. Ưu điểm nổi trội của lập 
trình theo kiểu tham số là chương trình ngắn, dễ dàng theo 
dõi, kiểm soát và thay đổi thông số, đáp ứng tính toán nhanh 
từ chính bộ điều khiển của máy CNC, đồng thời có hỗ trợ 
các kỹ thuật lập trình cơ bản như câu lệnh điều kiện, vòng 
lặp, các hàm toán học [1]. Các đường chạy dao theo một kiểu 
thống nhất ít phát sinh thêm các đường khác và được kiểm 
soát thông qua các hàm toán học do người lập trình đề xuất 
trong chương trình nên chương trình có độ tin cậy cao. Đặc 
biệt, khi đối tượng gia công thay đổi thông số hình học thì 
chương trình vẫn có thể sử dụng lại mà không cần phải lặp 
lại toàn bộ các thao tác phức tạp và rờm rà như CAM. Trong 
dòng tích hợp CAD/CAPP, mô hình chi tiết 3D sẽ được nhận 
dạng và hình thành quy trình công nghệ một cách tự động 
thông qua các thuật toán nhận dạng, lựa chọn và tối ưu. Đầu 
ra của CAPP sẽ là một danh sách các đối tượng gia công với 
đầy đủ các thông tin hình học và công nghệ bao gồm các lựa 
chọn máy, dao và chế độ cắt [2]. Những thông tin đầu vào 
này sẽ là cơ sở để hình thành chương trình gia công CNC 
cho từng đối tượng. Mỗi đối tượng gia công trên một chi tiết 
sẽ có tương ứng một chương trình gia công theo kiểu tham 
số (chương trình con). Chương trình chính sẽ có nhiệm vụ 
gọi các chương trình con theo đúng thứ tự gia công để gia 
công hoàn thiện chi tiết. Khi thay đổi thông tin tạo hình của 
đối tượng gia công, chỉ cần cung cấp bộ thông số khác cho 
các tham số thì đường chạy dao sẽ thay đổi theo. Dựa vào 
ưu điểm này của lập trình CNC theo kiểu tham số, nhóm 
nghiên cứu đã thiết lập một bộ các lệnh/hàm mới cho phép 
nhận thông số đầu ra của CAPP để trực tiếp tạo ra chương 
trình gia công cho từng đối tượng gia công và cho cả chi tiết. 
Từ đó, dòng tích hợp tự động CAD/CAPP/CNC dễ dàng 
được thiết lập với hiệu quả cao mà không cần thiết phải 
thông qua mô-đun CAM. 
2. Lập trình CNC theo tham số 
Bản chất của lập trình theo tham số là việc sử dụng 
các biến hay thông số trong quá trình lập trình kết hợp với 
việc gọi chương trình con nên rất phù hợp với việc thiết 
lập các chương trình gia công theo từng nhóm đối tượng 
gia công khác nhau. Khi đối tượng gia công thay đổi thì 
chỉ việc thay đổi giá trị của các tham số là đường chạy 
dao sẽ thay đổi, trong khi cấu trúc của chương trình vẫn 
giữ nguyên. Đăc điểm này rất phù hợp cho các chi tiết tiêu 
chuẩn có hình dáng cơ bản còn kích thước khác nhau ví 
dụ như ổ đỡ, vòng bi, bánh răng, trục, v.v. Hiện nay, 
Fanuc là một trong những hệ điều khiển sử dụng rộng rãi 
nhất trong thực tế. Tùy từng các phiên bản của hệ điều 
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 53 
khiển Fanuc mà năng lực lập trình theo tham số cũng khác 
nhau. Bài báo này xây dựng các chương trình CNC theo 
tham số trên phiên bản hệ điều khiển là Fanuc21 và 
Fanuc31. Một số điểm chung của hai hệ điều khiển này là 
đều cho phép khai báo và sử dụng hiệu quả các tham số. 
Một tham số được đặt tên theo cấu trúc “#” tiếp theo sau 
là một số ví dụ #10 = 100 là gán giá trị 100 cho tham số 
#10. Tùy phạm vi của con số này mà nó có thể là biến 
toàn cục, biến cục bộ hay biến hệ thống [3]. Giới hạn của 
biến và các hàm toán học tương ứng tùy thuộc vào từng 
hệ điều khiển. Bảng 1 mô tả sự khác nhau của hai hệ 
Fanuc21 và Fanuc31 khi sử dụng lập trình tham số. Hệ 
điều khiển Fanuc31 có nhiều hàm hơn cho phép lập trình 
đơn giản và ngắn gọn hơn. Hệ điều khiển Fanuc21 không 
có vòng lặp khi đó có thể sử dụng chương trình con và số 
lần gọi chương trình con để thay thế. Fanuc21 cũng không 
có lệnh G65 cho phép gán giá trị cho các tham số trong 
chương trình con như Fanuc31. 
Bảng 1. So sánh đặc điểm của hai hệ Fanuc21 và Fanuc31 
trong lập trình tham số 
STT Khả năng Fanuc21 Fanuc31 
1 Phép toán +, -, *, / +, -, *, / 
2 
Các hàm 
toán học 
Không có 
SIN, COS, TAN, 
ATAN, ASIN, ACOS 
ABS, SQRT, EXP, 
ROUND, FIX, FUP 
2 Phép logic 
EQ (=), NE ( ), 
GT(>), LT(<), 
GE( ), LE( ) 
EQ, NE, GT, LT, GE, 
LE 
AND, OR, XOR 
3 
Câu điều 
kiện 
IF [] GOTO n 
IF [] THEN [] 
IF [] GOTO n 
IF [] THEN [] 
4 Vòng lặp Không có 
WHILE [] DO 
END 
5 
Gọi chương 
trình theo 
tham số 
Không có G65 
Hiện nay, hệ điều khiển Fanuc21 vẫn được sử dụng nhiều 
trong các máy CNC thế hệ cũ (còn phổ biến ở Việt Nam) 
nên trong ví dụ mô tả phương pháp ở bài báo này, nhóm tác 
giả sẽ trình bày cách thức hình thành Gcode theo định dạng 
Fanuc21. Cấu trúc chương trình này cũng sẽ được áp dụng 
tương tự trong hệ điều khiển Fanuc31. Các biến được sử 
dụng theo nguyên tắc đặt tên biến trong G65 để có thể dễ 
dàng chuyển đổi sang Fanuc31 [4]. Với Fanuc31, chương 
trình hình thành còn đơn giản hơn nhiều do được trang bị 
nhiều công cụ hàm toán học hỗ trợ trong lập trình. Nhờ 
những công cụ lập trình đó mà lập trình CNC theo kiểu tham 
số ngày càng được mở rộng; không chỉ dừng lại ở các biên 
dạng đơn giản, lập trình theo tham số còn có thể áp dụng 
được cho các biên dạng phức tạp. Hiệu quả của lập trình theo 
tham số đã được khẳng định rõ rệt qua nhiều so sánh [5]. 
3. Dòng tích hợp CAD/CAPP/CNC và vị trí của mô-đun 
chuyển đổi Gcode 
Mô hình tích hợp CAD/CAPP/CNC được mô tả như 
Hình 1, qua đó trải qua ba mô-đun cơ bản với dữ liệu đầu 
vào là mô hình CAD 3D có đầy đủ yêu cầu kỹ thuật và các 
thông tin cơ bản khác. Mô-đun 1 (CAD-CAPP) tạo ra liên 
kết giữa CAD và CAPP với nhiệm vụ cơ bản là tách biệt 
các đối tượng, trích xuất các thông tin hình học và yêu cầu 
kỹ thuật của từng đối tượng, đồng thời nhận dạng các đối 
tượng gia công cơ bản. Hình 2 mô tả các loại đối tượng gia 
công 2.5D cơ bản có thể nhận diện và xử lý trong mô-đun 
này. Mô-đun 2 (CAPP) xử lý các dữ liệu đã trích xuất trong 
mô-đun 1. Nó thực hiện một loạt các nhiệm vụ cơ bản của 
thiết kế quy trình công nghệ là nhận dạng phương pháp gia 
công, lựa chọn thiết bị, chế độ cắt và thiết lập thứ tự nguyên 
công trên cơ sở các ràng buộc công nghệ. Mô-đun cuối 
cùng (CAPP-CNC) trong dòng tích hợp này chính là mô-
đun chuyển đổi Gcode với nhiệm vụ là thiết lập cầu nối 
giữa CAPP và CNC. Nó bao gồm các hàm chuyển đổi 
Gcode trực tiếp từ các đối tượng gia công. 
Bước 2
Nhận dạng các đối tượng 
gia công bằng các luật 
nhận dạng
Bước 1
Tách biệt và trích xuất 
thông tin cho từng đối 
tượng gia công
Bước 3
Nhận dạng phương 
pháp gia công 
ĐẦU RA
(CT gia công CNC)
ĐẦU VÀO
Mô hình CAD 3D với đầy đủ 
yêu cầu kỹ thuật
Vật liệu gia công
Dạng sản xuất
Phương pháp chế tạo 
phôi và xử lý nhiệt
Bước 6
Duyệt từng bước/
nguyên công theo 
đối tượng gia công
Bước 7
Gọi hàm chuyển đổi 
Gcode theo đối 
tượng gia công
 cơ bản
Bước 8
Tạo file chương trình 
chính và các chương 
trình con
CAD-CAPP
CAPP
CAPP- CNC
Bước 4
Lựa chọn máy/dao 
cho từng đối tượng 
gia công
Bước 5
Thiết lập thứ tự 
nguyên công
Hình 1. Sơ đồ mô tả dòng tích hợp CAD/CAPP/CNC 
Như vậy, với mỗi loại đối tượng gia công cơ bản được 
nhận dạng sẽ có một hàm chuyển đổi Gcode tương ứng. 
Thông tin hình học trích xuất từ mô-đun 1 và thông tin công 
nghệ trích xuất từ mô-đun 2 sẽ được sử dụng như các tham 
số đầu vào của các hàm chuyển đổi này. Các thông tin đầu 
vào này được hệ thống lại thành các nhóm đặc trưng như 
mô tả trong Hình 3. Đầu ra của dòng tích hợp này là các 
file CNC theo tham số với hai định dạng tương ứng với hai 
hệ điều khiển Fanuc21 và Fanuc31. 
Đối tượng 
gia công 2.5D
Mặt 
phẳng
Bậc Hốc
Hốc tròn
Hốc 
vuông
Hốc biên 
dạng
Đảo
Đảo tròn
Đảo 
vuông
Đảo biên 
dạng
Bậc 
vuông
Bậc biên 
dạng
Hệ lỗ
Hệ lỗ 
tròn
Hệ lỗ 
thẳng
Rãnh
Rãnh 
tròn
Rãnh 
vuông
Rãnh 
biên dạng
Bậc 
vuông
Bậc biên 
dạng
Hình 2. Đối tượng gia công 2.5D cơ bản 
54 Phùng Xuân Lan, Nguyễn Kiên Trung 
Thông số 
đầu vào
Thông số 
hình học
Thông số vị 
trí
Thông số 
công nghệ
Thông số 
hiệu chỉnh
Thông số 
khác
- Kích thước chiều dài, bề rộng, chiều 
sâu, bán kính góc lượng (dạng 
vuông)
- Kích thước đường kính, chiều sâu 
(dạng tròn)
- Kích thước bao, đường đi biên dạng
- Tọa độ tuyệt đối của góc dưới bên 
trái (dạng vuông)
- Tọa độ tuyệt đối của tâm (dạng tròn)
- Thông số góc quay 
- Số vòng quay trục chính
- Lượng chạy dao
- Bề rộng cắt
- Lượng gia tăng theo trục Z
- Lượng dư dành cho gia công tinh 
theo các trục
- Giá trị hiệu chỉnh bán kính
- Số hiệu dao
- Kiểu chạy thể tích/đường biên dạng
- Định dạng tọa độ tính toán
Hình 3. Nhóm các bộ thông số đầu vào đặc trưng của 
chu trình Gcode mới 
4. Phương pháp xây dựng Mô-đun chuyển đổi 
4.1. Cấu trúc mô-đun chuyển đổi 
Mô-đun chuyển đổi Gcode sẽ được phát triển theo hai 
hình thức: 1) dưới dạng các hàm phục vụ cho việc chuyển 
đổi Gcode trực tiếp trong dòng tích hợp CAD/CAPP/CNC; 
2) dưới dạng các chu trình Gcode mới cho phép người sử 
dụng có thể dễ dàng xuất các chương trình gia công cho 
từng đối tượng cụ thể để hỗ trợ việc lập trình tham số bằng 
tay. Dù dưới hình thức nào, mô-đun chuyển đổi Gcode này 
sẽ bao gồm một loạt các hàm chuyển đổi bên trong. Mỗi 
hàm chuyển đổi sẽ tương ứng thực hiện việc xuất Gcode 
cho một loại đối tượng gia công cơ bản. Hàm sẽ lấy các 
tham số đặc trưng cho loại đối tượng đó và truyền vào cho 
các tham số để tính toán tọa độ và hình thành Gcode. Tùy 
mức độ phức tạp của đối tượng gia công mà số lượng dữ 
liệu đầu vào sẽ khác nhau và phụ thuộc các nhóm thông số 
đặc trưng hình học và công nghệ như mô tả ở Hình 3. Với 
các đối tượng có hình dáng đặc biệt là vuông hay tròn thì 
thông số hình học khá đơn giản chỉ gồm các kích thước 
định hình đối tượng. Riêng với trường hợp đối tượng có 
biên dạng là sự kết hợp của các đường thẳng và cung tròn 
thì cần phải có một chuỗi lệnh Gcode mô tả biên dạng. 
Cách thức khai báo cho đối tượng loại này tương tự như 
cách thức mà hệ điều khiển Fanuc ứng dụng cho chu trình 
tiện. Hình 4 mô tả ví dụ cách thức khai báo biên dạng của 
một đối tượng gia công theo biên dạng. Với bộ thông số vị 
trí cần khai báo giá trị tuyệt đối của điểm xác định vị trí của 
đối tượng trên chi tiết gia công và các điểm này được quy 
định riêng biệt với từng đối tượng khác nhau. Ví dụ, với 
đối tượng hốc tròn, tọa độ điểm tâm hốc được lấy là các 
thông số vị trí, còn tọa độ điểm góc trái được lấy cho đối 
tượng hốc vuông. Đối với đối tượng biên dạng, vị trí của 
đối tượng đã được thể hiện qua tọa độ của các điểm trên 
biên dạng khi khai báo biên dạng. Bên cạnh giá trị tọa độ 
thì giá trị góc quay của đối tượng so với trục X+ cũng cần 
khai báo trong trường hợp toàn bộ đối tượng được quay 
theo một góc nào đó. Trong bộ thông số công nghệ thì cơ 
bản cần khai báo các thông số chế độ cắt (số vòng quay trục 
chính n và lượng tiến dao F) và khoảng cách giữa hai đường 
chạy dao (stepover). Ngoài ra còn có thông số liên quan 
đến kiểu chạy dao theo thể tích khi bóc đi toàn bộ thể tích 
kim loại hoặc chỉ chạy dao theo đường biên khi cần gia 
công tinh theo đường biên dạng. 
Hình 4. Ví dụ về khai báo đối tượng gia công là biên dạng 
4.2. Hàm chuyển đổi Gcode cho gia công biên dạng 
Trong các đối tượng gia công mô tả ở Hình 4 thì dạng 
đối tượng gia công theo biên dạng là phức tạp hơn cả trong 
việc tính toán tọa độ các điểm chạy dao, các đối tượng gia 
công là hàng lỗ, hốc tròn, hốc vuông thì tọa độ điểm chạy 
dao có thể có sẵn hoặc nội suy ra dễ dàng từ đó áp dụng 
thuật toán chạy dao của biên dạng. Dưới đây là ví dụ mô tả 
hai định dạng chuyển đổi của đảo biên dạng thành Gcode 
theo tham số là chu trình Gcode mới và hàm chuyển đổi. 
Với hệ Fanuc21, trước khi gọi hàm chuyển đổi để xuất 
Gcode thì cần có đoạn chương trình khai báo giá trị của các 
tham số để truyền vào hàm chuyển đổi. Trong khi đó, ở hệ 
Fanuc31 giá trị của tất cả các tham số này sẽ được truyền 
qua mã lệnh G65 nên giảm lược được các dòng lệnh khai 
báo tham số. 
• Chu trình Gcode mới gia công đảo theo biên dạng 
bất kỳ cho hệ điều kiển Fanuc21 và Fanuc31 
+ Gán giá trị tham số cho Fanuc21 
#26 = [Z] (Giá trị Z) 
#6 = [K] (Giá trị K) 
+ Gán giá trị tham số cho Fanuc31 * 
G65 P1040 ZKHETBCR 
MUWFS 
+ Chu trình Gcode chuyển đổi cho cả hai hệ điều khiển 
G104 ZKHDET 
G105 PQBCRMUWFS... 
Trong đó: 
- Z: tọa độ tuyệt đối của đáy biên dạng (+/-); 
- K: chiều cao của đảo (+); 
- H: lưu vị trí hiệu chỉnh bán kính dao; 
- D: đường kính của dụng cụ cắt; 
- E: định dạng gia công hốc (E=1)/đảo (E=0); 
- T: số hiệu dao; 
- P: số thứ tự đầu tiên xác định biên dạng; 
- Q: số thứ tự cuối cùng xác định biên dạng; 
G00 X10.0 Y10.0
G01 X5.0 Y25.0
G02 X15.0 Y35.0 R10.0
G03 X40.0 Y35.0 R30.0
G02 X50.0 Y25.0 R10.0
G01 Y20.0
G01 X45.0 Y10
G01 X30.0 Y7.0
G01 X10.0 Y10.0
5
7 1
0
2
0
3
5
2
5
15
R10 R10
R
3
0
10
40
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 55 
- B: khoảng cách giữa hai đường chạy dao (% so 
với đường kính dao); 
- C: lượng gia tăng theo chiều sâu (+); 
- R: khoảng cách an toàn; 
- M: lượng dư lớn nhất cần loại bỏ; 
- U: lượng dư dành cho cắt tinh theo X/Y, 
- W: lượng dư dành cho cắt tinh theo Z; 
- F: lượng chạy dao; 
- S: số vòng quay trục chính. 
*: Với Fanuc31 có thể lấy được giá trị hiệu chỉnh bán 
kính H trong hệ thống nên ko cần khai báo đường kính dao 
D; biên dạng được khai báo trong chương trình con P1040. 
• Hàm chuyển đổi 
CTbiendang (CauLenh s, list BienDang) 
CauLenh (class) là một đối tượng với nhiều thuộc tính, mỗi 
thuộc tính là một thông số hình học và công nghệ cần truyền 
(s.z, s.k, s.h, s.d, s.e, s.t, s.p, s.q, s.b, s.c, s.r, s.m, s.u, s.w, s.f, s.s) 
BienDang là một danh sách các chuỗi khai báo biên 
dạng. Trong trường hợp ví dụ ở Hình 4 chính là toàn bộ 
code ở bên phải của hình. Trong bước trích xuất đối tượng 
gia công, biên dạng này sẽ được lưu lại và chuyển đổi dưới 
các lệnh Gcode cơ bản 
4.3. Thuật toán sinh đường chạy dao 
Khác với cách thức hình thành Gcode trong CAM thiên 
về việc tính toán toàn bộ tọa độ của các điểm đến, mô-đun 
chuyển đổi Gcode chỉ đảm nhiệm các tính toán điểm dao 
vào-ra biên dạng và giá trị hiệu chỉnh, nhường lại việc tính 
toán đường chạy dao xung quanh biên dạng cho hệ điều 
khiển máy CNC thực hiện thông qua chức năng hiệu chỉnh 
bán kính dao phay G41/G42. Khi phải chạy nhiều đường 
chạy song song biên dạng thì giá trị hiệu chỉnh bán kính 
dao sẽ được thay đổi tương ứng để tạo thành các đường 
chạy dao cho các vòng cắt thứ i khác nhau. Với thuật toán 
như thế, đường chạy dao cho các vòng cắt là rất rõ ràng, dễ 
nắm bắt và đặc biệt là trong kiểm soát theo những kiểu 
đường cố định và chỉ thay đổi từ bước gia công từ thô sang 
tinh. Các kiểu đường chạy dao trong quá trình cắt thô và 
cắt tinh được minh họa trong Hình 5. 
Trong quá trình cắt thô biên dạng, đường chạy dao là 
các đường hoàn toàn đồng dạng so với biên dạng gia công 
(i = 1÷ n, n là tổng số vòng cắt thô trên 1 lớp cắt cùng độ 
sâu Z). Tọa độ các điểm chạy dao trên các đường này là do 
hệ điều khiển tự động tính toán và nội suy ra thông qua việc 
thay đổi giá trị hiệu chỉnh bán kính dao Hi tương ứng với 
mỗi đường chạy thứ i dao dựa trên tổng lượng dư biên dạng 
cần cắt M, khoảng cách stepover B, lượng dư để lại cho 
phay tinh U, bán kính dao D và giá trị logic A (A=1, 0) thể 
hiện qua phương trình 1. Thuật toán đường chạy dao này 
sẽ tạo ra chương trình gia công thô đơn giản và dễ hiểu cho 
người dùng. 
𝐻𝑖𝑡ℎô = [𝑀 −
𝐷
2
+ (𝑖 − 1)𝐵] 𝐴 + [
𝐷
2
+ 𝑈] (1 − 𝐴) (1) 
Quá trình cắt tinh (i = n+1) sẽ cắt hết phần lượng dư để 
lại sau bước cắt thô để tạo thành biên dạng với kích thước 
và độ nhám bề mặt yêu cầu. Đường chạy dao ở bước này 
có một chút thay đổi ở giá trị hiệu chỉnh là bán kính dao và 
đường chạy dao có thêm các đoạn tiếp vào dao và thoát dao 
theo bán kính cong R được qui định bởi người lập trình 
hoặc có thể để theo tính toán mặc định. Do đó, các điểm 
lập trình ăn dao vào (1→2→3) và thoát dao ra (3→5→1) 
sẽ được tính dựa thông số hình học của đoạn biên dạng đầu 
(P1-P2), bán kính tiếp R và lượng dư cắt lớn nhất M như 
mô tả trong hình 5b. Tọa độ của các điểm này được thể hiện 
trong phương trình (2-6) dựa trên góc C của đoạn biên dạng 
tiếp vào so với trục X+. Hình 6 mô tả thuật toán để tạo ra 
đường chạy dao cho đảo biên dạng ở các bước phay thô và 
phay tinh được sử dụng trong mô-đun. 
Hình 5. Đường chạy dao cho phần a) cắt thô và b) cắt tinh 
𝑋3 =
𝑋𝑃1 + 𝑋𝑃2
2
 𝑌3 =
𝑌𝑃1 + 𝑌𝑃2
2
(2) 
𝑋1 = 𝑋3 − 2𝑅 ∗ 𝑠𝑖𝑛𝐴 𝑌1 = 𝑌3 − 2𝑅 ∗ 𝑐𝑜𝑠𝐴 (3) 
𝑋4 =
𝑋1 + 𝑋3
2
 𝑌4 =
𝑌1 + 𝑌3
2
(4) 
𝑋2 = 𝑋4 + 𝑅 ∗ 𝑐𝑜𝑠𝐴 𝑌2 = 𝑌4 − 𝑅 ∗ 𝑠𝑖𝑛𝐴 (5) 
𝑋5 = 2𝑋4 − 𝑋2 𝑌5 = 𝑌 − 𝑌2 (6) 
Trong đó: A=180 - C, C là góc tạo bởi đoạn biên dạng 
tiếp vào và vector đơn vị  0,1u trên trục X+. 
𝑐𝑜𝑠𝐶 =
0 ∗ (𝑌𝑃2 − 𝑌𝑃1) + 1 ∗ (𝑋𝑃2 − 𝑋𝑃1) 
1 ∗ √(𝑋𝑃2 − 𝑋𝑃1) 2 + (𝑌𝑃2 − 𝑌𝑃1)2
(7) 
b) 
a) 
56 Phùng Xuân Lan, Nguyễn Kiên Trung 
Xác định đối tượng gia công
(Dạng đảo biên dạng)
Trích xuất các thông số 
của đảo biên dạng
- Tọa độ tuyệt đối của Z
- Chiều cao của đảo K
- Khai báo biên dạng (P, Q)
- Lượng dư lớn nhất theo 
XY (M)
- Vị trí hiệu chỉnh bán kính 
(H)
- Số hiệu dao (T)
- Lượng dư dành cho gia 
công tinh theo trục X (U)
- Lượng dư dành cho gia 
công tinh theo trục Z (W)
- Khoảng cách giữa hai 
đường chạy dai (B)
- Lượng gia tăng theo Z (C)
- Số vòng quay trục chính S
- Lượng chạy dao F
- Khoảng lùi dao an toàn R
Zhiện tại = Z + K + R; HChiện tại = M - D/2
nbiên dạng = 1+100 * (M-U-D)/(D*B)
mlớp = (K – W)/C
HChiện tại = HChiện tại - 100*B*D/2
 Zhiện tại - C > Z + W 
Zhiện tại = Zhiện tại - C
 n= 0, m=0
Gọi biên dạng gia công
 (Sử dụng G41)
m = m + 1
Kết thúc
Bắt đầu
Zhiện tại = Z + W 
HChiện tại > D/2 + U HChiện tại = D/2 + U
n ≥ nbiên dạng 
n = n+1
m ≥ mlớp 
HChiện tại: Giá trị hiệu chỉnh 
bán kính hiện tại
nbiên dạng: Số vòng quanh 
biên dạng
mlớp: Số lớp theo chiều sâu
-
+
+
-
Lớp cuối cùng
Vòng cuối cùng
-
+
-
+
Tính toán các điểm vào, ra 
biên dạng
Hình 6. Sơ đồ khối mô khối mô tả quá trình tính toán và 
 hình thành Gcode cho đảo biên dạng 
5. Xây dựng và thử nghiệm hiệu quả mô-đun chuyển 
đổi Gcode 
Hình 7. Giao diện của mô-đun chuyển đổi Gcode 
Mô-đun chuyển đổi Gcode được viết dựa trên ngôn ngữ 
C#. Mô-đun có tính năng cơ bản như: hỗ trợ và minh họa 
đường chạy dao cho các đối tượng gia công cơ bản. Trong 
giao diện chính là phần nhập chu trình Gcode đặc trưng cho 
các đối tượng gia công, phần chuyển đổi sẽ hỗ trợ để 
chuyển đổi các chu trình Gcode này sang Gcode dưới dạng 
chương trình cụ thể để có thể chạy trên các máy gia công 
CNC. Bên cạnh đó, một giao diện mô phỏng đường chạy 
dưới dạng 2D cũng được tích hợp vào mô-đun để giúp 
minh họa trực quan các đường chạy dao tương ứng với từng 
câu lệnh Gcode giúp người lập trình có thể giám sát được 
các đường chạy dao trong chương trình. 
Để minh họa cho khả năng thực thi và độ tin cậy của 
gia công chương trình CNC tự động sinh ra với mô-đun 
chuyển đổi, một chi tiết với một số đối tượng gia công cơ 
bản được đưa ra thử nghiệm. Dưới đây là toàn bộ chương 
trình Gcode mới để gia công chi tiết ví dụ và trích đoạn 
chương trình Gcode (chương trình chính và chương trình 
con) cho hệ điều khiển Fanuc21C được mô-đun chuyển đổi 
xuất ra. Trong ví dụ này, chương trình ngắn gọn với 17 câu 
lệnh bao gồm các chu trình Gcode mới là chu trình phay 
mặt phẳng G130/G131, chu trình phay đảo biên dạng 
G104/G105 và chu trình gia công hệ lỗ sâu phân bố trên 
vòng tròn G183. 
• Chương trình viết theo các chu trình Gcode mới để 
gia công chi tiết 
N1 G54 
N2 G21 G90 G40 
N3 G130 X0 Y0 Z0 I55 J40 K1.5 
D18 E0 T01 
N4 G131 B50 C0.5 R2 W0 
S1000 F150 
N5 G104 Z-5 K5 H12 D12 E0 T02 
N6 G105 P7 Q15 B75 C1 R2 
M15 U0.5 W0 S1000 F150 
N7 G00 X10.0 Y10.0 
N8 G01 X5.0 Y25.0 
N9 G02 X15.0 Y35.0 R10.0 
N10 G03 X40.0 Y35.0 R30.0 
N11 G02 X50.0 Y25.0 R10.0 
N12 G01 Y20.0 
N13 G01 X45.0 Y10 
N14 G01 X30.0 Y7.0 
N15 G01 X10.0 Y10.0 
N16 G183 X27 Y17 Z0 A10 
K5 M4 I40 R10 T03 C2 F100 
S1000 
N17 M30 
• Chương trình chính Gcode (Fanuc21C) 
N42 #26 = -5 (Z +/- ) 
N43 #6 = 5 (K +) 
N44 #11 = 12 (H) 
N45 #7 = 12 (D) 
N46 #8 = 0 (E) 
N47 #2 = 75 (B %) 
N64 G94 G97 F#9 S#19 
N65 M06 T#20 M03 
N66 G43 H#20 
N67 #102 = #7 * #2 / 100 
N68 #103 = 2 (So vong XY) 
N69 #104 = 5 (So lop Z) 
N70 #100 = 0 
N71 #105 = #13 - [#7/2] 
N72 #101 = 1 
N73 #106 = 0.94868 (SinA) 
N74 #107 = 0.31623 (CosA) 
N75 M98 P101040 
• Chương trình con Gcode (Fanuc21C) cho phay đảo 
biên dạng 
O1040 
N1 IF[#100 LT #103] GOTO5 
N2 #101 = #101 + 1 
N3 #100 = 0 
N4 #105 = #13 - [#7/2] 
N5 #100 = #100 + 1 
N6 IF[#100 LT #103] GOTO8 
N7 #105 =#7/2+#21 
N8 G90 G10 L11 P#11 R#105 
N9 G41 H#11 
N11 G90 G00 X7.5 Y17.5 
N15 G01 Z#108 
N16 G01 X5 Y25 
N17 G02 X15.0 Y35.0 R10.0 
N18 G03 X40.0 Y35.0 R30.0 
N19 G02 X50.0 Y25.0 R10.0 
N20 G01 Y20.0 
N21 G01 X45.0 Y10 
N22 G01 X30.0 Y7.0 
N23 G01 X10.0 Y10.0 
N25 G40 G00 
X1*#105*#106+7.5 
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 57 
Z#26+#6+#18 
N12 #108=-#101*#3 
N13 IF [[#26 + #23] LT #108] 
GOTO15 
N14 #108 = #26+#23 
Y1*#105*#107 +17.5 
N26 #105 = #105 - #102 
N27 IF[#105 GT 0] GOTO29 
N28 #105=#102-#21 
Hình 7 thể hiện giao diện của mô-đun chuyển đổi với 
các chức năng tương ứng. Cửa sổ lệnh bên trên cho phép 
nhập các chu trình Gcode mới để gia công chi tiết. Cửa sổ 
dưới chính là kết quả xuất Gcode sử dụng trực tiếp trong 
hệ điều khiển Fanuc21 hoặc Fanuc31. 
Hình 8. Kết quả mô phỏng gia công trên WinNC Fanuc21 
Kết quả của mô phỏng gia công với chương trình Gcode 
chuyển đổi theo Fanuc 21C được thể hiện trên Hình 8. Đối 
với phay mặt phẳng cần phay 3 lớp để ăn hết chiều sâu và 
phay đảo biên dạng cần phay 5 lớp để ăn hết chiều sâu và 
mỗi lớp chạy 2 vòng để ăn hết lượng dư theo bề rộng. Số 
các lớp và vòng cắt là do mô-đun tự động tính toán ra dựa 
trên các thông số hình học và công nghệ của đối tượng gia 
công. Hình 8, mô tả hình ảnh gia công tại lớp 1 và lớp 2 
của phay phẳng, vòng 1 lớp 1 và vòng 2 lớp 4 của phay đảo 
biên dạng và kết quả gia công toàn bộ chi tiết. Từ các kết 
quả mô phỏng cho thấy, chương trình xuất ra là hoàn toàn 
khả thi để gia công chi tiết. 
6. Kết luận 
Bài báo cùng kết quả đạt được đã cho thấy, phương 
pháp lập trình tham số hiệu quả với việc xuất Gcode trực 
tiếp từ đối tượng gia công đã được trích xuất từ CAPP. Với 
lập trình theo kiểu tham số, chương trình gia công rất ngắn 
gọn và rõ ràng, dễ theo dõi và hiệu chỉnh chứ không như 
CAM. Mô-đun chuyển đổi có thể được sử dụng hỗ trợ lập 
trình bằng tay với mã lệnh Gcode mới và số dòng lệnh nhập 
vào ngắn gọn, rõ ràng hoặc kết hợp với mô-đun 
CAD/CAPP để tạo thành dòng tích hợp CAD/CAPP/CNC 
hoàn chỉnh. Trong các nghiên cứu tiếp theo, nhóm sẽ tập 
trung tới các biên dạng là đường cong phức tạp 2D, 3D và 
độ chính xác gia công trong so sánh với chương trình xuất 
từ mô-đun CAM. 
TÀI LIỆU THAM KHẢO 
[1] Mohd Asif Hasan. A Practical Approach to the use of Local 
Variables in CNC Machines Programming for Fanuc Custom 
Macros. Journal of Material Science and Mechanical Engineering 
(JMSME). Volume 3, Issue 3; 2016 p. 254-257 
[2] M. Sadaiah1, D. R. Yadav2, P. V. Mohanram1 and P. Radhakrishnan 
A Generative Computer-Aided Process Planning System for Prismatic 
Components. Int J Adv Manuf Technol (2002) 20:709–719 
[3] Mohd Asif Hasan A Conceptual Framework of Common Variables 
in CNC Machines Programming for Fanuc Custom Macros. Journal 
of Material Science and Mechanical Engineering (JMSME). 
Volume 3, Issue 3; April-June, 2016 p. 250-253 
[4] Peter Smid. Fanuc CNC Custom Macros. Industrial Press Inc. 2005. 
[5] Vratraj Joshi, Keyur Desai, Harit Raval. Machining of Archimedean 
spriral by parametric programming. International Journal of Modern 
Manufacturing Technologies. Vol. VIII, No. 2. 2016 p. 25-30.
(BBT nhận bài: 12/12/2018, hoàn tất thủ tục phản biện: 20/01/2019) 

File đính kèm:

  • pdfxay_dung_mo_dun_ho_tro_capp_xuat_gcode_tu_dong_truc_tiep_tu.pdf