Custom macro for cnc machine (gcode)

D

dungnv896

Ðề: Custom macro for cnc machine (gcode)

Bài cũ quá rồi. Mình định góp ý, nhưng không biết còn ai theo dõi không?
 
Last edited by a moderator:
Ðề: Custom macro for cnc machine (gcode)

bạn cứ post đi . vẫn rất nhiều người theo dõi mà
 
Ðề: 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.
Các ký tự # đứng trước dòng lệnh để báo cho HĐH đây là biến macro( cũng tên đó nhưng ở đây ta phải hiểu là biến lập trình), chẳng qua là ta dùng công thức để tính toán ra giá trị nào đó, rồi gắn vào biến này, HĐH sẽ dùng biến này như thông số trong chương trình.
 
Ðề: 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
Ối, bạn không cho xuống dòng, đọc khó quá nhỉ.
 
Ðề: Custom macro for cnc machine (gcode)

mình thấy các bạn chỉ lập trên phần mềm thôi chứ như các bác nói lập trình tay như thế thì có mà ờ trên trường thôi. phay 1/2 mặt cầu không dùng G19 hoặc G18 mà vẫn chạy được cơ à.
 
Ðề: Custom macro for cnc machine (gcode)

Ối, bạn không cho xuống dòng, đọc khó quá nhỉ.

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

Đã xuống dòng theo yêu cầu

mình thấy các bạn chỉ lập trên phần mềm thôi chứ như các bác nói lập trình tay như thế thì có mà ờ trên trường thôi. phay 1/2 mặt cầu không dùng G19 hoặc G18 mà vẫn chạy được cơ à.
Hiện nay vẫn rất nhiều công ty sử dụng lập trình tay để viết chương trình bạn ơi. Nhất là các công ty làm hàng đơn lẻ và các hàng đơn lẻ chen ngang hàng chế tạo hàng loạt. Lý do lập trình tay ở đây là:
-chương trình ngắn nên bộ nhớ máy chứa được nhiều chương trình không cần viết mới.
- Người vận hành dễ dàng kiểm soát chương trình
Nếu mình nhớ không lầm thì Mr Tuấn của Kenameltal vẫn viết chương trình tay bằng cho hãng HONDA VIET NAM
 

QuyenQCM

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

Lập trình tay cho những biên dạng 2,5D có nhiều ưu điểm như: nhanh gọn nhẹ, nhưng chỉ nên áp dụng với các biên dạng đơn giản và ít bước, chứ nếu mà lập trình khoét 500 cái lỗ khác nhau trên 1 tấm phôi thì toi luôn,
Liệu cơm gắp mắm thôi,
 
D

ddl9xx

Ðề: Custom macro for cnc machine (gcode)

Cấu trúc lệnh : G65 P8106 X0 Y0 Z10 D50 K1 W2 T1 F2000

Trong đó
G65 : gọi chương trình macro
P8106 : tên chương trình macro gia công hốc tròn
X : tọa độ tâm theo trục X (#24)
Y : tọa độ tâm theo trục y (#25)
Z : độ sâu hốc (#26)
D : đường kính hốc (#7)
K : chiều sâu mỗi lát cắt (#6)
W: chiều rộng mỗi lát cắt (#23)
T : bán kính dao (#20)
F : tốc độ cắt (#9)

các pro giúp em lập trình cái này với!ai giúp được em,em xin cảm ơn và hậu tạ!hix!
 

QuyenQCM

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

bạn thắc mắc ở chỗ nào vậy
 
D

ddl9xx

Ðề: Custom macro for cnc machine (gcode)

bạn cho mình hỏi là làm sao để đưa nó vào máy CNC và phần mềm mô phỏng được vậy?thank các pro nhiều!
 

QuyenQCM

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

bạn cho mình hỏi là làm sao để đưa nó vào máy CNC và phần mềm mô phỏng được vậy?thank các pro nhiều!
để đưa nó vào máy CNC có nhiều cách:
-Nhập liệu trực tiếp bằng tay trên máy CNC
-Copy thẻ nhớ máy CNC ( nếu máy nào có thẻ nhớ)
-Truyền trực tiếp vào bộ nhớ máy bằng DNC ( cimcoedit chẳng hạn)
Vì đây là chương trình macro nên không có phần mềm nào mô phỏng được nó.
 

QuyenQCM

Active Member
Author
Deep cutting of square pocket ( cắt thô hốc vuông)

Cấu trúc câu lệnh:

G65 P9140 U_V_R_Z_F_S_I_H_Q_M;

With:
U LATERAL SIDE LENGTH
V LONGITUDINAL SIDE LENGTH
C APPROACH CIRCLE RADIUS
D CUTTER RADIUS OFFSET No.
R RAPID APPROACH POINT R
Z HOLE BOTTOM POIN Z
F FEEDRATE
S APPROACH FEEDRATE
I RADIUS OF CORNER ARC
H Cutting with per pass
Q CUTTING DIRECTION
M SETTING MODE FOR R AND Z
 
Ðề: Custom macro for cnc machine (gcode)

Bác Quyen Qcm cho hỏi máy Fanuc 6M có chạy Macro và sử dụng
tọa độ cực G16 được không vây?
 

QuyenQCM

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

Bác QuyenQCM cho hỏi máy Fanuc 6M có chạy Macro và sử dụng
tọa độ cực G16 được không vây?
Fanuc 6M vẫn chạy macro bình thường và chạy G15,G16 ngon nhé!
 
Ðề: Custom macro for cnc machine (gcode)

Tại hôm trước em viết chương trình sử dụng tọa độ cực G16
nhưng nó báo lỗi không chạy.Viết lại chương trình đó mô phỏng
trên phần mềm thì được:102:
 
Ðề: Custom macro for cnc machine (gcode)

Bác nào có tài liệu chia sẻ cái macro này đi. Tại nếu các bác nói kiểu này thì chỉ là những người biết chia sẻ cho nhau thôi, chứ tụi em chưa biết thì nhìn mấy cái macros này không hiểu.
 

QuyenQCM

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

Tại hôm trước em viết chương trình sử dụng tọa độ cực G16
nhưng nó báo lỗi không chạy.Viết lại chương trình đó mô phỏng
trên phần mềm thì được:102:
nó báo lỗi như thế nào bạn.
 

QuyenQCM

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

Bác nào có tài liệu chia sẻ cái macro này đi. Tại nếu các bác nói kiểu này thì chỉ là những người biết chia sẻ cho nhau thôi, chứ tụi em chưa biết thì nhìn mấy cái macros này không hiểu.
Macro là ngôn ngữ của nhà sản xuất, toàn *#.... bố tây cũng bó chiếu. Mình chỉ áp dụng thôi. cứ G65 mà phang...
còn ai muốn chuyên sâu chắc phải mất chi phí
 
L

lam.pham

Ðề: Custom macro for cnc machine (gcode)

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

Đã xuống dòng theo yêu cầu

mình thấy các bạn chỉ lập trên phần mềm thôi chứ như các bác nói lập trình tay như thế thì có mà ờ trên trường thôi. phay 1/2 mặt cầu không dùng G19 hoặc G18 mà vẫn chạy được cơ à.
Hiện nay vẫn rất nhiều công ty sử dụng lập trình tay để viết chương trình bạn ơi. Nhất là các công ty làm hàng đơn lẻ và các hàng đơn lẻ chen ngang hàng chế tạo hàng loạt. Lý do lập trình tay ở đây là:
-chương trình ngắn nên bộ nhớ máy chứa được nhiều chương trình không cần viết mới.
- Người vận hành dễ dàng kiểm soát chương trình
Nếu mình nhớ không lầm thì Mr Tuấn của Kenameltal vẫn viết chương trình tay bằng cho hãng HONDA VIET NAM
Ngocm02 thân!
Tôi hay làm macro của hệ điều hành OSP và của máy Brother, tuy chưa làm về Fanuc nhưng cũng có thể hiểu và giải thích sơ cho bạn câu lệnh trên.
Theo như chương trình của bạn, thì bạn phay 1/2 mặt cầu, với bán kính lớn nhất là 50mm, G54 bạn chọn ngay tâm mặt cầu.
+ Trước hết: #1, #2, #3 được gọi là biến macro, cái này bạn có thể đặt trước trong user parameter của máy hoặc là gán nó trong chương trình, chương trình bạn viết ở trên thì đã gán rồi đấy. Bạn cho #1=0.5 đó.
+Bước 1: G90G0G54X-10.Y0M3S4500
G43Z50.H1M8 mấy dòng lệnh này thì tôi khỏi nói nha.
+Bước 2: #1=0.5 bạn gán giá trị biến ban đầu #1 là 0.5 theo tôi hiểu trên chương trình bạn đưa ra 0.5 đơn vị là mm.
+Bước 3 : N001
WHILE[#1LE50.]DO1: lệnh này có nghĩa là trong khi giá trị biến #1 nhỏ hơn hoặc bằng 50. (LE) thì thực hiện chu trình gia công N001, chu trình gia công kết thúc lệnh WHILE khi gặp lệnh END1 (tôi không biết là chương trình của bạn có N001 hay không nên tôi thêm vào để dễ dàng giải thích nhé, bên hệ điều hành OSP phải có thì máy mới hiểu lệnh WHILE[...]DO)
+Bước 4:
#2=50.-#1 cho biến #2= giá trị biến #1+ 0.5 (đơn vị là mm).
+Bước 5:
#3=SQRT[2500.-[#2*#2]] giá trị biến #3 sẽ là căn bậc 2 của {2500- [giá trị biến #2 bình phương]} ở đây 2500. chính là bán kính lớn nhất của hình cầu bình phương (50^2=2500). Công thức này là để tính bán kính của hình cầu mỗi khi máy hạ 1 lượng Z xuống để gia công, còn vì sao tính như vậy thì bạn vui lòng mở sách toán lớp 12 xem cách chứng minh nhé, hì hì.
+Bước 6:
G1Z-#1F20: hạ Z xuống 1 lượng Z = - giá trị biến #1 ( đây là pass đầu tiên máy cắt nên lượng Z sẽ là -0.5) và Feedrate là 20
+Bước 7:
X-#3F500 : dao chạy tới tọa độ X= - giá trị biến #3( tôi tính được là với biến #1=0,5 thì #3 sẽ là 7,053) Feedrate 500.
+Bước 8:
G2I#3: nội suy cung tròn với tọa độ tâm I là giá trị biến #3.
+Bước 9:
#1=#1+0.5: sau khi nội suy cung tròn G2 xong, thì biến #1 sẽ tăng lên 1 lượng là 0.5 mm, lúc này giá trị biến #1= 1.
ở đây lưu ý, lệnh WHILE[.......] DO sẽ phát huy tác dụng, máy sẽ so sánh giá trị biến #1 lúc này với 50. nếu nhỏ hơn hoặc = 50. thì máy sẽ chạy lại từ bước 3 cho tới khi biến #1 tăng tới giá trị lớn hơn 50 thì sẽ kết thúc và nhảy khỏi vòng lặp WHILE này.
+Bước 10: G0Z50.M5M30: khỏi giải thích nha.
Để cho dễ hiểu, tôi sẽ viết lại với giá trị tọa độ thực qua 2 vòng lặp đầu nha, Sau đây là bảng các giá trị biến qua từng vòng lặp nè:
Vòng lặp lần 1: #1=0.5 #2=49.5 #3=7.053
Chương trình gia công từ bước 6 tới bước 8 nè: G1Z-0.5F20
X-7.053F500
G2I7.053.
Vòng lặp lần 2: #1=1. #2=49 #3=9.949
G1Z-1.F20
X-9.949F500
G2I9.949
........
cho tới khi #1= 50. thì máy dừng gia công.
Hình như đây là gia công thô thì phải.
WHILE[...LE...] LE có nghĩa là less than or equal to ( nhỏ hơn hoặc bằng)
ngoài ra còn có LT : Less than (nhỏ hơn)
EQ: Equal (bằng)
NE: Not Equal ( khác)
GE và GT là greater than or equal và greater than.
Thân!
 
Top