Custom macro for cnc machine (gcode)

#81
Ðề: Custom macro for cnc machine (gcode)

Lập trình Macro đôi khi còn hiệu quả hơn dùng CAM. Thường dùng cho bài toán được lập sẵn
VD G-Code cắt plasma lỗ tròn trên ống thép, thực hiện trên Mach3 gia công 4th:
(CNC A axis Plasma TUBE routine)
(by ngvavinh@gmail.com)
#100= 1.250 (CutTube Diameter)
#101= 1.250 (Uncut Tube Diameter)
#103= .095 ( Tube Thickness )
#104= 45 (Joint ANGLE)
#200 = [#100 / 2] (RO)
#201 = [#101 / 2] (RU)
#202 = [#200 - #103] (RI)
#203 = #104 (AF)
#204 = 10 (ID)
#300= 2 (A step in deg)
G0 G40 G54 G90 G49 G17 G50 G64 G91.1 G94
G0 A0.000 x0.000 Z1.000 F500
Z0.000
M98 P01 L180
G0 A0.000 X0.000 Z1.000
M30
o01
G1 A#300 X [sqrt [#201 **2 - [ [#202 * sin [#204]] **2]] / sin[#203] - tan [90-#203] * #202 * cos[#204]]
#204=[#204+2]
#300=[#300+2]
m99
%
 

Đặt mua Tài liệu Thiết kế & Phát triển sản phẩm với giá ưu đãi

#82
Ðề: Custom macro for cnc machine (gcode)

xin chào mọi người người .
em xin chia sẻ 1 chương trình macro để mọi người cùng nghiên cứu,va giao lưu học hỏi nhau nhé.
%
O9811(REN XYZ MEASURE)
G5.1Q0
G65P9724
IF[#19EQ#0]GOTO1
IF[#20EQ#0]GOTO1
#3000=91(ST INPUT MIXED)
N1G53
IF[#19EQ#0]GOTO2
IF[#11EQ#0]GOTO2
#3000=91(SH INPUT MIXED)
N2G53
IF[#20EQ#0]GOTO3
IF[#13EQ#0]GOTO3
#3000=91(TM INPUT MIXED)
N3G53
#1=135
WHILE[#1LE149]DO1
#[#1]=#0
#1=#1+1
END1
#10=#5041(X START)
#12=#5042(Y START)
G31X[#10-#502]Y[#12-#503]F#119
G53
IF[ABS[#5061-[#10-#502]]GE#123]GOTO22
IF[ABS[#5062-[#12-#503]]GE#123]GOTO22
#30=-1(DIR FLAG)
IF[#24NE#0]GOTO5
IF[#25NE#0]GOTO7
(Z MOVE)
IF[#26EQ#0]GOTO225
#7=5203
IF[[#5043-#116]LT#26]GOTO4
#30=1
N4G53
G65P9726Z#26Q#17
IF[#149NE0]GOTO21
#135=#10
#136=#12
#137=#126-#116(Z POS)
#138=#137
IF[#8EQ#0]GOTO45
#138=#138+#[2000+#8](SIZE)
N45G53
#142=#137-#26(Z ERROR)
#143=#138-#26(SIZE ERROR)
#145=ABS[#142](T P ERR)
#146=#143*#30(METAL CON)
GOTO9
N5G53(X MOVE)
IF[#25NE#0]GOTO225
IF[#26NE#0]GOTO225
#6=#500
#7=5201
IF[#5041LT#24]GOTO6
#6=-#500
#30=1
N6G53
G65P9726X#24Q#17S#500
IF[#149NE0]GOTO21
#135=#124+#6+#502(COR SKIP POS)
#136=#12
#138=#135
IF[#8EQ#0]GOTO65
#138=#138+#[2000+#8](ACT SIZE)
N65G53
#140=#135-#24(X ERROR)
#143=#138-#24(SIZE ERROR)
#145=ABS[#140](T P ERROR)
#146=#143*#30(METAL CON)
GOTO9
N7G53(Y MOVE)
IF[#26NE#0]GOTO225
#6=#501
#7=5202
IF[#5042LT#25]GOTO8
#6=-#501
#30=1
N8G53
G65P9726Y#25Q#17S#501
IF[#149NE0]GOTO21
#135=#10
#136=#125+#6+#503(Y SKIP POS)
#138=#136
IF[#8EQ#0]GOTO85
#138=#138+#[2000+#8](ACT SIZE)
N85G53
#141=#136-#25(ERROR)
#143=#138-#25(SIZE ERROR)
#145=ABS[#141](TP ERROR)
#146=#143*#30(METAL CON)
N9G53
#147=#30
IF[#23EQ#0]GOTO10
G65P9730H#11M#13S#19T#20W#23X#24Y#25Z#26
N10G53
IF[#21EQ#0]GOTO11(U UPPER TOL)
IF[ABS[#143]GE#21]GOTO23
IF[#145GE#21]GOTO23
N11G53
IF[#11EQ#0]GOTO13
IF[ABS[#143]LT#11]GOTO12
#148=1
N12G53
IF[#120AND4EQ4]GOTO13
IF[ABS[#143]LT#11]GOTO13
G0X#10Y#12
#[3006-[[#120AND8]/8*6]]=1(OUT OF TOL)
N13G53
IF[#13EQ#0]GOTO15
IF[ABS[#145]LT[#13/2]]GOTO14
#148=2
N14G53
IF[#120AND4EQ4]GOTO15
IF[ABS[#145]LT[#13/2]]GOTO15
G0X#10Y#12
#[3006-[[#120AND8]/8*6]]=1(OUT OF POSITION)
N15G53
IF[#20EQ#0]GOTO19
IF[ABS[#146]LT#22]GOTO19(NULL BAND)
IF[#9NE#0]GOTO16
#9=1
N16G53
G65P9732T#20C[#146*#9]Z#26
N19G53
IF[#19EQ#0]GOTO24
G65P9732S#19Z#26W1.0
GOTO24
N21G53
IF[#149NE2]GOTO22
G0X#10Y#12
#3000=93(PROBE FAIL)
N22G53
G0X#10Y#12
#3000=92(PROBE OPEN)
N225G53
G0X#10Y#12
#3000=91(XYZ INPUT MIXED)
N23G53
#148=3
IF[#120AND4EQ4]GOTO24
G0X#10Y#12
#[3006-[[#120AND8]/8*6]]=1(UPPER TOL EXCEEDED)
N24G53
G0X#10Y#12
M99

%
 
#84
Ðề: 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
Bạn có thể chỉ mình cách lấy chương trình macro trong CimcoV6 dc kg bạn, mình cũng rất muốn tìm hiểu về vấn đề này mà không có ai chỉ, tks bạn
 
#85
Ðề: Custom macro for cnc machine (gcode)

Bạn có thể chỉ mình cách lấy chương trình macro trong CimcoV6 dc kg bạn, mình cũng rất muốn tìm hiểu về vấn đề này mà không có ai chỉ, tks bạn
Mình cài ổ C thì nó sẽ ra thế này. Còn bạn cài ở ổ nào thì minh không biết.
C:\CIMCO\CIMCOEdit6\Samples\Fanuc Mill
 
Last edited:
#86
Ðề: Custom macro for cnc machine (gcode)

Có ai hiểu về chương trình máy mài cnc stugami này không chì giúp mình được không.xin cảm ơn nhiều


%
O0505(TRUNNI 1730505)
G22(IN-NG)
#108=31.744(FINISH-DIA)
#109=0(G
=0)
#110=285(H
)
#111=ABS[#108-#550](DIAMETER-CHECK)
IF[#111LT0.001]GOTO1
#3000=23(DIAMETER-SET-NG)
N1
IF[#509EQ1]GOTO3
#3000=24(WORK,SET-NOT-FINISH)
N3
IF[#1005EQ1]GOTO4
#3000=20(WHEEL IS NOT REVOLVING)
N4
G0T0
G30U0
G30W0
M98P7001(WHEEL-DIA,COLLECT)
G50X#500Z#501
/M98P9800
N5(LOCATOR)
G30U0
G0Z[#505+1.5]
U[#504-#5021]M26
G4
G1G98M93
G31P1W-5.0F100
G4U0.1
M95
#506=#5042(NAW)
#507=#505-#506(SA)
IF[ABS[#507]GT#513]GOTO302
N15
G50Z#505
G0W1.5
M27
IF[#109EQ1]GOTO20(GAUGE)
N10(G
,GRINDING)
G0Z3.0M13S#110
X[#108+5.0]
G1G98X[#108+1.5]Z1.5F500T1
X[#108+1.0]Z1.0F10
X[#108+0.5]Z0.5F5
X[#108+0.3]Z0.3F2
X[#108+0.1]Z0.1F1.0
X[#108+0.05]Z0.05F0.4
X[#108+0.01]Z0.01F0.1
X#108Z0.0F0.02
G4U3.0
GOTO99

N20(G
,GRINDING)
G0Z5.0M13S#110T1
X[#108+2.0]Z2.0
M21
G1G98X[#108+0.5]Z0.5F500
X[#108+0.3]Z0.3F10
IF[#1002EQ1]GOTO303(AMOUNT-CHECK)
G31P2U-1.0W-1.0F0.4
G31P3U-0.1W-0.1F0.1
G31P4U-0.05W-0.05F0.05
M95
N24G50X#108
M23
G4U2.0
N99
G1G98U0.1W0.1F100
G0U10.0W5.0
G0T0
M45
G30U0M12
G30W0M46
M32
#500=#5041
M33
GOTO1000
N302
G0W1.5M27
G0T0
G30U0
G30W0
#3000=10(LOCATOR-NG)
N303
M27
G0U10.0
G0T0
G30U0M23
G30W0M12
#3000=21(GR
-NOTHING)
N1000
M30
%
 
#87
Ðề: Custom macro for cnc machine (gcode)

Ngồi đọc từ trang 1 đến trang 9 rất hay, bài viết 4 năm trời tích lũy mình đọc chỉ 1 giờ hihi. Cảm ơn các Anh cao thủ nha
 
Last edited:
#89
anh em có biêt biến macro chỗ tọa độ G54 của X, Y, Z máy fanuc 10M là # bao nhiêu ko , máy đời cao thì nó là # 2501, #2601
 
#90
Ðề: 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.
Hi!
Neu muon viet program bang macro thi cung don gian thoi. Program macro no don gian va ngan, no giong nhu hoi chua minh hoc lap trinh pascal vay. co lenh while, if, va thuc hien cac phep toan sin, cosin..., lam tron so round, fix ,up...
Voi ban ve co nhieu chi tiet tuong tu nhau chi thay doi chieu dai, duong kinh, goc ...thi viet program bang macro no gon hon nhieu va de thay doi cac thong so trong may ma ko can set up lai. Do la uu diem cua Program Macro.
Con Program cua ban:
syntax: While[...condition 1 is true...] DO1
<...BODY OF SINGLE LEVEL LOOP.>
END1
EQ: EQUAL TO
NE: NOT EQUAL TO
LT: LESS THAN
LE: LESS THAN OR EQUAL TO
GT: GREATER THAN
GE: GREATER THAN OR EQUAL TO
#1=1; trong may cnc phan macro: #1 se duoc assign bang 1
WHILE[#1LE5] DO1 bat dau dem va thuc hien phep tinh vong lap
#1=#1+1;
lan1: doc lenh while: 1<=5
thuc hien: #1(macro duoc gan mot gia tri moi) = #1+1 (macro gia tri cu +1)
chay cho den khi nao: #1=5 thi no se doc "DO1" nhay toi lenh "END1"

END1 (dung vong lap)
Thanks
 
#92
Chào anh .
Em có một vấn đè xin anh gúp đỡ.
máy phay CNC mazak em đang dùng con tool sen ( đầu đo dao ) bị lệch mỗi khi lấy gốc e đã liên hệ nhiều với nhà cung cấp mà không căn chỉnh được .
Bây giờ em muốn có lệnh G-code nào mà khi lấy gốc song nó sẽ tự động cộng vào gốc tọa độ ( G54, G55...) không ạ ? hoặc là khi đọc đến lệnh đó nó sẽ tự bù vào gốc tọa độ 1 khoảng giá trị không a.?
Em xin cảm ơn anh
 

Thành viên đang online

Top