Custom macro for cnc machine (gcode)

QuyenQCM

Active Member
Author
Hiện tại mình biết rất nhiều đồng chí kỹ sư CAD CAM CNC nhưng không biết lập trình tay, quá phụ thuộc vào phần mềm CAM, như vậy gặp mấy chú công nhân vận hành máy nó hỏi mà không trả lời được thì mất hết cả danh dự.
Nhân đây mình chia sẻ với anh em vài chương trình macro sẵn trong máy CNC như :
Finishing inside of circle
Deep cutting of circular pocket
Finish cutting inside of square
Deep cutting of square pocket......
anh em biết thêm thì có thể chia sẻ để mọi người văn võ song toàn....
bài viết sẽ update dần dần
 

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

Bài thực hành đầu tiên:
Finishing inside of circle ( gia công tinh lỗ tròn)
Nếu gặp bài dạng này thì thông thương nhà ta hay dùng cấu trúc lệnh G02,G03 và thêm vòng lặp...
nhưng với macro thì đơn giản hơn nhiều với duy nhất 1 câu lệnh
Cấu trúc lệnh:
G65 P9110 I...D...R...Z...F...C...S...Q...M...;

Trong đó G65 : gọi chương trình macro
P9110 : tên chương trình macro( ở đây là Finishing inside of circle)
I : bán kính đường tròn
D : giá trị của tool trong mục offset dao
R : Rapid approcch point (điểm bắt đầu cắt so với Z)
Z :Độ sâu của hốc tròn
F :Feedrate XY axis ( tốc độ dao theo chiều xy)
C :Approach circle radius( bán kính cua của tool vào phôi)
S :Feedrate Z axis ( tốc độ xuống dao theo chiều Z)
Q :Cutting diretion ( chiều sâu lát cắt)
M :Setting mode for R&Z
hình ảnh minh họa: mình sẽ update sau
 
Ðề: Custom macro for cnc machine (gcode)

Tiếp đi bác Quyen. Em muốn học cái này mà không biết bắt đầu từ đâu. Trong 4room bác nào có tài liệu thì cho em voi nhé. Hoặc gửi vào mail ngocm02@yhoo.com
 
Ðề: Custom macro for cnc machine (gcode)

Bác QuyenMC ơi. Bác giải thích chương trình này giúp em nhé. Trong Cimco nó chạy không được. Đây là 1 chương trình có sẵn trên máy của em. Mấy ông chạy thử máy chạy rồi nhưng em không hiểu gì hết.


Code:
% 
O0202
N001
G91G28G0Z0 
G92Z0
G91G00Z0.9 
G04X2. 
G91G00Z-0.9
G04X4. 
M00
#1=1 
WHILE[#1LE16]DO1 
G91G0Z-100.
G4X4.
#1=#1+1
END1 
G91G0Z-0.9 
G4X2.
G91G0Z0.9
G4X4.
#2=1 
WHILE[#2LE16]DO2 
G91G0Z100. 
G4X4.
#2=#2+1
END2 
G91G28G0Z0 
M00

N002
G91G28Z0.
G4X2.
G92Z0. 
G91G0Z0.9
G4X2.
G91G0Z-0.9 
M00
#1=1 
WHILE[#1LE5]DO1
G90G0Z-205.771 
G4X4.
G90G0Z-460.052 
G4X4.
G90G0Z-671.694 
G4X4.
G90G0Z-928.403 
G4X4.
G90G0Z-1146.746
G4X4.
G90G0Z-1370.511
G4X4.
G90G0Z-1600. 
G4X4.
G90G0Z-1600.9
G04X2. 
G90G0Z-1600. 
G4X4.
G90G0Z-1370.511
G4X4.
G90G0Z-1146.746
G4X4.
G90G0Z-928.403 
G4X4.
G90G0Z-671.694 
G4X4.
G90G0Z-460.052 
G4X4.
G90G0Z-205.771 
G4X4.
G90G0Z0. 
G4X4.
G90G0Z0.9
G4X2.
G90G0Z0. 
G4X4.
#1=#1+1
END1 
G91G28Z0.
M00

N003(Z ICHI KIME KURI.)
G91G28G0Z0 
G92Z0. 
G91G00Z0.9 
G4X2.
G91G0Z-0.9 
G4X2.
G91G0Z-700.
M00
#1=1 
WHILE[#1LE7]DO1
G91G00Z-200. 
G4X8.
G91G0Z200. 
G4X8.
#1=#1+1
END1 
G91G28Z0.
M00
 
Last edited by a moderator:

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

Bác QuyenMC ơi. Bác giải thích chương trình này giúp em nhé. Trong Cimco nó chạy không được. Đây là 1 chương trình có sẵn trên máy của em. Mấy ông chạy thử máy chạy rồi nhưng em không hiểu gì hết.


%
O0202
N001
G91G28G0Z0
G92Z0
G91G00Z0.9
G04X2.
G91G00Z-0.9
G04X4.
M00
#1=1
WHILE[#1LE16]DO1
G91G0Z-100.
G4X4.
#1=#1+1
END1
G91G0Z-0.9
G4X2.
G91G0Z0.9
G4X4.
#2=1
WHILE[#2LE16]DO2
G91G0Z100.
G4X4.
#2=#2+1
END2
G91G28G0Z0
M00

N002
G91G28Z0.
G4X2.
G92Z0.
G91G0Z0.9
G4X2.
G91G0Z-0.9
M00
#1=1
WHILE[#1LE5]DO1
G90G0Z-205.771
G4X4.
G90G0Z-460.052
G4X4.
G90G0Z-671.694
G4X4.
G90G0Z-928.403
G4X4.
G90G0Z-1146.746
G4X4.
G90G0Z-1370.511
G4X4.
G90G0Z-1600.
G4X4.
G90G0Z-1600.9
G04X2.
G90G0Z-1600.
G4X4.
G90G0Z-1370.511
G4X4.
G90G0Z-1146.746
G4X4.
G90G0Z-928.403
G4X4.
G90G0Z-671.694
G4X4.
G90G0Z-460.052
G4X4.
G90G0Z-205.771
G4X4.
G90G0Z0.
G4X4.
G90G0Z0.9
G4X2.
G90G0Z0.
G4X4.
#1=#1+1
END1
G91G28Z0.
M00

N003(Z ICHI KIME KURI.)
G91G28G0Z0
G92Z0.
G91G00Z0.9
G4X2.
G91G0Z-0.9
G4X2.
G91G0Z-700.
M00
#1=1
WHILE[#1LE7]DO1
G91G00Z-200.
G4X8.
G91G0Z200.
G4X8.
#1=#1+1
END1
G91G28Z0.
M00
Đây là những chương trình con được lập trình sẵn trong máy
tuy nhiên tớ chẳng biết nó làm cái gì.
 
Ðề: Custom macro for cnc machine (gcode)

Các kí tự (#1=1 WHILE[#1LE5]; DO1), (#1=#1+1; END1) , (#1=1 WHILE[#1LE7];DO1) là ký hiệu để làm gì vậy bác. Em viết chương trình cho các máy ở chỗ em làm toàn viết bằng tay ( vì em chưa biết sử dụng các chương trình Cam hỗ trợ - em đang học Solid). Tuy nhiên các ký tự này là lần đầu tiên em gặp phải. Muốn tìm hiểu nó quá mà không biết ý nghĩa và công dụng của nó để làm gì. Bác biết chỉ giáo giúp em nhé.
Các chương trình trên để kiểm tra hành trình chạy thử của trục Z thì phải.
 
Last edited:

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

Các kí tự (#1=1 WHILE[#1LE5]; DO1), (#1=#1+1; END1) , (#1=1 WHILE[#1LE7];DO1) là ký hiệu để làm gì vậy bác. Em viết chương trình cho các máy ở chỗ em làm toàn viết bằng tay ( vì em chưa biết sử dụng các chương trình Cam hỗ trợ - em đang học Solid). Tuy nhiên các ký tự này là lần đầu tiên em gặp phải. Muốn tìm hiểu nó quá mà không biết ý nghĩa và công dụng của nó để làm gì. Bác biết chỉ giáo giúp em nhé.
Các chương trình trên để kiểm tra hành trình chạy thử của trục Z thì phải.
Nó là 1 dạng ngôn ngữ code riêng của fanuc(cá nhân) được đi kèm theo Gcode......
Mấy chú công nhân cty mình vẫn sài mã kiểu này nhưng mình chịu chết( mấy chú được chuyên gia Đài Loan dạy chuyển giao công nghệ)
để từ từ mình tìm hiểu thêm cái ngôn ngữ này nhé
@ngocm02 đã test chương trình kia của mình chưa, thấy thế nào....
 

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

Deep cutting of cirucular pocket (gia công hốc tròn)

Cấu trúc lệnh : G65 P9120 I...D...R...Z....F....H...S....Q....M

Trong đó:

Trong đó
G65 : gọi chương trình macro
P9120 : tên chương trình macro( Deep cutting of cirucular pocket (gia công hốc tròn))
I : bán kính đường tròn
D : giá trị của tool trong mục offset dao
R : Rapid approcch point (điểm bắt đầu cắt so với Z)
Z :Độ sâu của hốc tròn
F :Feedrate XY axis ( tốc độ dao theo chiều xy)
H: stepover( bước dịch ngang theo x,y)
S :Feedrate Z axis ( tốc độ xuống dao theo chiều Z)
Q :Cutting diretion ( chiều sâu lát cắt)
M :Setting mode for R&Z
 

iPumpkin

<center><b>CAM Programmer</b></center>
Ðề: Custom macro for cnc machine (gcode)

Trong Fanuc câu lệnh while là dùng cho vòng lặp, câu lệnh là WHILE [CONDITION} Don, While có thể hiểu là “trong khi”, DO là thực hiện đoạn mã lệnh đó khi {Condition} được chỉ định, câu lệnh END để kết thúc vòng lặp. Vòng lặp trong Condition này có tất ba lớp, single, double va triple.


WHILE[#1LE16]DO1
G91G0Z-100.
G4X4.
#1=#1+1
END1
#1: thiết đặt giá trị đếm đầu tiên ví dụ cho mm hay cho độ
WHILE {#1 LE 16} DO1: Vòng lặp cho mổi giá trị đếm cho đến khi gia công đến 16 lần
#1=#1+1, mổi lần lặp 1 vòng lặp khác là tăng lên 1 lần
END1 kết thúc vòng lặp.

Đây là đoạn chương trình viết cho máy Tiện Fanuc – theo như đoạn Code có ý nghĩa là:
Lùi máy về điểm 0 theo trục Z, sau đó gán điểm 0 (có chiều dài dao làm điểm Zero, dùng G92), cho trục chính máy tiện xoay (G04 để dwell xoay tại chổ) tại vị trí X2, sau đó đến X4, rồi khoan hay cắt mặt trụ chi tiết từ độ sâu Z0 đến Z-100. Theo mình khi tiện từ tọa độ Z0 đến Z-100, cứ sau 100/16mm máy sẽ dỡ dao cắt từ X2 lên X4. Tóm lại chương trình này tiện ren hoặc trục bậc – có thể là tiện ren với Pitch=6.25mm. (Mình ít xài máy Tiện nên không rành)
 
Last edited:
Ðề: Custom macro for cnc machine (gcode)

Bác iPumpkin oi. Chương trình này đươc chạy trên máy phay đó bác. Không phải máy tiện đâu.
 
Ðề: Custom macro for cnc machine (gcode)

Nó là 1 dạng ngôn ngữ code riêng của fanuc(cá nhân) được đi kèm theo Gcode......
Mấy chú công nhân cty mình vẫn sài mã kiểu này nhưng mình chịu chết( mấy chú được chuyên gia Đài Loan dạy chuyển giao công nghệ)
để từ từ mình tìm hiểu thêm cái ngôn ngữ này nhé
@ngocm02 đã test chương trình kia của mình chưa, thấy thế nào....
Để em viết thành 1 chương trình rồi mới chạy. Để 01 câu lệnh như thế này chạy nguy hiểm quá. Bác có câu lệnh cắt cho cung Elipe không? Nếu có bác cho em nhé, em chỉ cần cắt 1/4 cung elipe thôi
 

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

thế bạn chưa biết rồi
cái này chỉ một câu lệnh thôi, tớ đã test rồi nhé
đây là macro cho lập trình tay mà
 
Ðề: Custom macro for cnc machine (gcode)

Đây là chương trình chạy Finish đường tròn của em. Phải xét G54 lung tung mới dám chạy. Em chưa dám chạy thử chương trình của bác.


N400
(SHOULDER B)
(T00L NO 24 DIA80MM)
T24M06
G80G40G49
G90G00G54X0.0Y0.0
G43Z25.4H24S950M03
G01Z15.0F1000M08
G01X-296.985Y-296.985F1000
Z-8.0
G42Y-566.985F300D24
G02X-487.904Y-487.904R290.0F450
G02I487.904J487.904F300
G02X-566.985Y-296.985R290.0F450
G01X-296.985Y-296.985F450
Z25.4M09
G91G28Z0M05
M01
 

iPumpkin

<center><b>CAM Programmer</b></center>
Ðề: Custom macro for cnc machine (gcode)

Đây là chương trình chạy Finish đường tròn của em. Phải xét G54 lung tung mới dám chạy. Em chưa dám chạy thử chương trình của bác.
Chạy finishing đường tròn mà không có bù dao hả bạn ?. Để mà chạy cái này có macro đơn giản và thuận tiện lắm. Còn CAD/CAM bạn dùng Circular Milling. Thường chạy đường tròn vào dao ở giửa lổ tròn rồi chạy ra cho yên tâm.
 
Ðề: Custom macro for cnc machine (gcode)

Chạy finishing đường tròn mà không có bù dao hả bạn ?. Để mà chạy cái này có macro đơn giản và thuận tiện lắm. Còn CAD/CAM bạn dùng Circular Milling. Thường chạy đường tròn vào dao ở giửa lổ tròn rồi chạy ra cho yên tâm.
G01X-296.985Y-296.985F1000
Z-8.0
G42Y-566.985F300D24
G02X-487.904Y-487.904R290.0F450
G02I487.904J487.904F300

Có G42 đó bác. Vì em chưa học về Cam nên toàn viết chương trình bằng tay đau khổ quá
 

QuyenQCM

Active Member
Author
Ðề: Custom macro for cnc machine (gcode)

Đây là chương trình chạy Finish đường tròn của em. Phải xét G54 lung tung mới dám chạy. Em chưa dám chạy thử chương trình của bác.


N400
(SHOULDER B)
(T00L NO 24 DIA80MM)
T24M06
G80G40G49
G90G00G54X0.0Y0.0
G43Z25.4H24S950M03
G01Z15.0F1000M08
G01X-296.985Y-296.985F1000
Z-8.0
G42Y-566.985F300D24
G02X-487.904Y-487.904R290.0F450
G02I487.904J487.904F300
G02X-566.985Y-296.985R290.0F450
G01X-296.985Y-296.985F450
Z25.4M09
G91G28Z0M05
M01
ối trời lập trình tay thì tính gì hả bạn ơi!
Macro để cho bạn đỡ phải nhập liệu bằng tay tính toán bằng đầu mà.
Nếu muốn lập trình hốc vuông hay hốc chữ nhật có R ở góc mà R khác với R dao thì phải làm sao.
nên macro sẽ giúp bạn điều này
tks
 

iPumpkin

<center><b>CAM Programmer</b></center>
Ðề: Custom macro for cnc machine (gcode)

G01X-296.985Y-296.985F1000
Z-8.0
G42Y-566.985F300D24
G02X-487.904Y-487.904R290.0F450
G02I487.904J487.904F300

Có G42 đó bác. Vì em chưa học về Cam nên toàn viết chương trình bằng tay đau khổ quá
Sau G42 hay G41 phải có G40 để hủy nhé, không có G40 thì sẽ biết hậu quả khi chạy liền. Keke
 
Ðề: Custom macro for cnc machine (gcode)

Đây là thiếu sót của lập trình bằng tay đó bác. Nhưng may mắn đó là 1 cái hốc nên dao chui ra dễ dàng
 
Ðề: Custom macro for cnc machine (gcode)

Bác nào có các lệnh G-CODE và M-CODE cho phần PHAY của máy TURN-MILL không? Cho em xin các lệnh này nhé.
Máy của em là con DOOSAN TURN-MILL 480 LM. Hệ điều hành FANUC-21iTB
Chận thành cảm ơn
 
Ðề: Custom macro for cnc machine (gcode)

Đây là chương trình chạy phay 1/2 mặt cầu sử dụng Macro trong CIMCO V6 có sẵn.
Chương trình cực ngắn
Các bác tham khảo

G90G0G54X-10.Y0M3S4500 G43Z50.H1M8 #1=0.5 WHILE[#1LE50.]DO1 #2=50.-#1 #3=SQRT[2500.-[#2*#2]] G1Z-#1F20 X-#3F500 G2I#3 #1=#1+0.5 END1 G0Z50.M5 M30
 
Top