POST PROCESSOR - Từ cơ bản đến nâng cao

iPumpkin

<center><b>CAM Programmer</b></center>
Author
[LEFT]Dành tặng cho dân lập trình CNC - gia công cơ khí.

Yêu cầu:

1. Phần mềm CAM có hổ trợ APT (hoặc chương trình Edit Post processor riêng)
2. Phần mềm IMSPost (xử lý file dạng APT, edit Post)

Kiến thức cơ bản:

1. Kiến thức cơ bản về bộ điều khiển CNC, ví dụ fanuc: http://www.doccnc.com/
2. G-Code: http://en.wikipedia.org/wiki/G-code
3. APT Language: http://5axes.free.fr/devel_WinPost_en.htm

Hai KeyWord hay dùng nhất:

PPRINT : definition of a comment to be added to the final code. Example of code: PPRINT USE 50.0" X 32.0" X 5.0" ALUMINUM
INSERT : Insert a special instruction set in the final code. Example of code: INSERT / G40G80
FROM : Definition of the start point

Danh sách các công ty phát triển chương trình Post Processor thương mại (dùng để tham khảo và nghiên cứu thêm):

 CAM-POST(ICAM) ICAM Technologies Corporation- advanced NC post-processing, MCD based machine tool simulation.
 CATIA PPB (Dassault_CENIT)CATIA V4 Post Processor Builder (PPB)
 CodeWizard (PATHTRACE)
 ERA Post www.era.uk.com
 Gpost (Intercim) Austin N.C., Inc. - Main Page
 IMS Software, Inc. - NC Postprocessing Software NC Postprocessing Software - IMS Software, Inc.
 POS-GEN (SpazioSystem)
 PostWorks (NCCS) NCL-CAM et PostWorks
 NCsoft Postpro et simulation SGPOST et NCAXIS
 Software Magic - CAD-CAM and Post Processoring solutions Software Magic - CAD/CAM and Post Processoring solutions
 VegaPost NC Post Processor - VegaPost
 AZPost Solution VMC4X et VCM5X Doc sur code APT traité en ligne (intéressant)

Phần mềm miển phí dùng để thực tập Post Processor : http://5axes.free.fr/WinPost/WinPost004X.exe[/LEFT]
 
H

haidang_tn

Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

Bác có biết công ty phát triển chương trình post processer nào ở hà nội không?
Em lập trình Cima từ năm 2005 đến giờ nhưng chưa có bộ post nào ngon cả?(post ra là cho máy chạy luôn)
Khi post chương trình cho máy CNC vẫn phải sửa lại bằng tay,để cho phù hợp với máy.
Máy của em đang dùng là máy MORI SEIKI Duracenter 5a,đời 2008.
cảm ơn bác nhiều.
 
H

haidang_tn

Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

Chương trinh CNC của em post được ra như thế này.
%
O1000
(** Cimatron **)
T99
T01
(** D12 H01 D01 **)
G54G00
G80G91G40G28Z0
G49G28X0Y0M05
M06
G90G00X0Y0
G43Z50.H01
M03S1500
G00X37.063Y35.84Z50.
Z1.
G01Z-.5F600
Y33.84F2000
X27.063
.......
.......
X27.063F2000
X37.063
Y162.15
G00Z50.
(** End of tape **)
G80G91G28Z0
G49G28X0Y0M05
M06
G90
M30
%
Sửa đi cho phù hợp voi máy của em như sau:
%
O1000
(** Cimatron **)
M06T01
G65P9611
(** D12 H01 D01 **)
G54G00
G80G91G40G28Z0
G49G28X0Y0M05
G90G00X0Y0
G43Z50.H01
M03S1500
G00X37.063Y35.84Z50.
Z1.
G01Z-.5F600
Y33.84F2000
X27.063
.......
.....
Y162.15
G00Z50.
(** End of tape **)
G80G91G28Z0
G49G28X0Y0M05
G90
M30
%
Nếu như chương trinh càng nhiều dụng cụ cắt thì càng thêm nhiều.
M06T02.
G65P9611
....
M06T10
G65P9611
Do vậy khi chạy chương trinh cần kiểm tra đi kiểm tra lại rất mất thời gian.
Bác nào biết chỉ cho em để em đỡ vất vã.
Cảm ơn!
 

iPumpkin

<center><b>CAM Programmer</b></center>
Author
Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

[LEFT]Khi lập trình CNC, ngoài giữ liệu về hình học liên quan đến dao cắt X,Y,Z cần output ra file NC. Thì cần output ra thêm các loại dữ liệu:
1. Ghi Chú: các ghi chú mà máy CNC sẽ bỏ qua, ví dụ các dòng ghi chú có dấu “;” hay dấu “(“
 Đối với loại dữ liệu này dùng câu lệnh PPRINT. Ví dụ
 Trong APT thêm dòng : PPRINT dien dan meslab, khi output ra file NC có dạng: “ x dien dan meslab”hoặc “x dien dan meslab” trong đó x là biến số tùy chọn có thể là ; hay (
2. Thêm các dòng mã lệnh, ví dụ các mã lệnh G,M hay bất cứ dòng mã lệnh nào mà bộ điều khiển có thể hiểu
 Ví dụ trong APT thêm dòng: INSERT M25 M26 thì trong file NC Output ra dòng lệnh M25 M26 (chú ý dòng lệnh này không có ký tự ; hay ( phía trước.

3. Xuất ra các thông số hình học của dao cắt hay các biến hệ thống từ phần mềm CAD/CAM (mình sẽ trình bày trong 1 dịp khác). Việc này đòi hỏi cần biết các biến hệ thống của các phần mềm CAD/CAM đồng thời viết lên các Macro – 1 dạng chương trình con để gọi các thông tin này xuất ra file NC Code. Các bạn xem thử 1 đoạn mã lệnh APT, trong đó dùng các Macro và các câu lệnh cơ bản, thông dụng của APT.

4. Để thực hành viết và hiệu chỉnh, ví dụ cho các chương trình con thông dụng như Khoan, Khoét, Doa, Taro các bạn hãy xem các biến hệ thống mà Catia dùng để lập trình nên nó, danh sách các biến hệ thống nằm ở đường dẫn: thumuccaidatcatia_doc/B21doc/English/online/mfgug_C2/mfgugrf0800.htm


$$ -----------------------------------------------------------------
$$ Generated on 26 Tháng Ba 2013 12:32:13 CH
$$ CATIA APT VERSION 1.0
$$ -----------------------------------------------------------------
CHANNEL,
$$ 1
$$ D00234957_POCKET
$$ 1
$$ 1.000000 0.000000 0.000000 718.820000
$$ 0.000000 1.000000 0.000000 0.000000
$$ 0.000000 0.000000 1.000000 0.000000
CATMAT/ 718.820000, 0.000000, 0.000000, 1.000000, 0.000000$
, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0$
.000000, 1.000000,1
PARTNO/1
$$ PPRINT/PP WORD TABLE:IMS.pptable
$$ IMS PPTABLE 20 May 2009
$$ PART_OPE/D00234957_POCKET
$$ PROGRAM/1
$$ MACHINE/5-axis Machine.2
$$ CATPROCESS/7600_101467859.CATProcess
$$ CATPRODUCT/7600_D00234957
$$ MAXRPM/
$$ OPERATION NAME : SET UP
$$ Start generation of : SET UP

PPRINT TEN CHUONG TRINH:
PPRINT ********GA DAT CHI TIET********
PPRINT ******XACH DINH GOC TOA DO*****
PPRINT ( DUNG DOI DIEN MAY PHAY - LAM CHUAN)
PPRINT (KEP DAU NHO VAO MAM CAP)
PPRINT X0 TAI X718.82mm TINH TU VAI TRAI CHI TIET SAU KHI KEP
PPRINT Y0 TAI TAM XOAY CHI TIET
PPRINT Z0 TAI TAM XOAY CHI TIET
PPRINT A0 TAI VI TRI XOAY A0 CHI TIET
STOP
INSERT G0 A=DC(0)
$$ End of generation of : SET UP
$$ OPERATION NAME : Tool Change.109
$$ Start generation of : Tool Change.109
MULTAX/ON
FROM / 0.00000, 0.00000, 250.00000, 0.000000, 0.000000, 1.000000
$$ TOOLCHANGEBEGINNING
CUTTER/ 40.000000, 3.100000, 16.900000, 3.100000, 0.000000,$
0.000000, 8.000000
TPRINT/T50 DIA 40 X CR3.1 X OUT OF HOLDER 50 INSERT ENDMILL
LOADTL/50,ADJUST,1,SPINDL, 400.000000,MILL
$$ COOLNT/
$$ TOOLCHANGEEND
$$ End of generation of : Tool Change.109
$$ OPERATION NAME : THO
$$ Start generation of : THO
PPRINT CHUA 0.3MM CANH, 0.2MM DAY
STOP
$$ End of generation of : THO
OP_NAME/Circular Milling.35
START_OP/AXIAL
SPINDL_NAME/NAME,,NUMB,
$$ OPERATION NAME : Circular Milling.35
$$ Start generation of : Circular Milling.35
TLCOMP/50,ADJUST,1
SPINDL/ 400.0000,RPM,CLW
RAPID
GOTO / 0.00000, 0.00000, 250.00000, 0.000000, 0.000000, 1.000000
RAPID
GOTO / 0.00000, 0.00000, 95.32300, 0.000000, 0.000000, 1.000000
FEDRAT/ 300.0000,MMPM
GOTO / 7.67004, 8.51845, 95.32300, 0.000000, 0.000000, 1.000000
INSERT M25 M26
GOTO / 6.99481, 9.08109, 95.31568, 0.000000, 0.000000, 1.000000
GOTO / 6.28571, 9.58558, 95.30842, 0.000000, 0.000000, 1.000000
GOTO / 5.62827, 9.98579, 95.30201, 0.000000, 0.000000, 1.000000
GOTO / 4.86138, 10.38078, 95.29482, 0.000000, 0.000000, 1.000000
GOTO / 4.17288, 10.67617, 95.28858, 0.000000, 0.000000, 1.000000
GOTO / 3.35774, 10.95988, 95.28139, 0.000000, 0.000000, 1.000000
RAPID
GOTO / -71.12000, 0.00000, 250.00000, 0.000000, 0.000000, 1.000000
RAPID
GOTO / -71.12000, 300.00000, 250.00000, 0.000000, 0.000000, 1.000000
$$ End of generation of : Circular Milling.44
END_OP/AXIAL
$$ OPERATION NAME : TINH CANH
$$ Start generation of : TINH CANH
PPRINT GC TINH CANH CUA POCKET
PPRINT BU BAN KINH, CHIEU DAI DAO DE DAT KICH THUOC
STOP
$$ End of generation of : TINH CANH
OP_NAME/Circular Milling.45
START_OP/AXIAL
SPINDL_NAME/NAME,,NUMB,
$$ OPERATION NAME : Circular Milling.45
$$ Start generation of : Circular Milling.45
SPINDL/ 1000.0000,RPM,CLW
RAPID
GOTO / 71.12000, 0.00000, 250.00000, 0.000000, 0.000000, 1.000000
RAPID
GOTO / 71.12000, 0.00000, 57.09600, 0.000000, 0.000000, 1.000000
FEDRAT/ 50.0000,MMPM
GOTO / 71.12000, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INSERT M8
CUTCOM/LEFT,1
$$ START CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 76.08260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
AUTOPS
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
4.96260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
76.08260, 0.00000, 56.89600)
CUTCOM/OFF
$$ END CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 71.68260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
0.56260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
71.68260, 0.00000, 56.89600)
CUTCOM/LEFT,1
$$ START CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 76.28260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
5.16260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
76.28260, 0.00000, 56.89600)
CUTCOM/OFF
$$ END CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 71.88260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
0.76260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
71.88260, 0.00000, 56.89600)
CUTCOM/LEFT,1
$$ START CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 76.48260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
5.36260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
76.48260, 0.00000, 56.89600)
CUTCOM/OFF
$$ END CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 72.08260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
0.96260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
72.08260, 0.00000, 56.89600)
CUTCOM/LEFT,1
$$ START CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 76.68260, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
INDIRV/ 0.00000, 1.00000, 0.00000
TLON,GOFWD/ (CIRCLE/ 71.12000, 0.00000, 56.89600,$
5.56260),ON,2,INTOF,$
(LINE/ 71.12000, 0.00000, 56.89600,$
76.68260, 0.00000, 56.89600)
CUTCOM/OFF
$$ END CUTCOM PLANAR XP,YP,ZP,I,J,K
GOTO / 71.12000, 0.00000, 56.89600, 0.000000, 0.000000, 1.000000
GOTO / 71.12000, 0.00000, 57.09600, 0.000000, 0.000000, 1.000000
RAPID
GOTO / 71.12000, 0.00000, 250.00000, 0.000000, 0.000000, 1.000000
RAPID
GOTO / 71.12000, 300.00000, 250.00000, 0.000000, 0.000000, 1.000000
$$ End of generation of : Circular Milling.45
END_OP/AXIAL
$$ SPINDL/OFF
$$ REWIND/0
$$ END[/LEFT]
 

iPumpkin

<center><b>CAM Programmer</b></center>
Author
Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

[LEFT]Hên cho bạn, vì mình trước đây dùng Cimatron, Cimatron có phần mềm post riêng gọi là GPP2, Cimatron là phần mềm của Do Thái, trước đây phiên bản 7.0 về trước dùng IMSPost để xuất chương trình NC, GPP2 khá dể hiểu hơn so với IMSPost – tuy nhiên theo mình có lẻ ít tính năng hơn, đặc biệt cho máy nhiều trục.

Để edit post và xuất ra các dòng lệnh như ý bạn muốn – ở đây mình thấy sau khi thay dao bạn gọi M6 lện thay dao, sau đó tên dao. Rồi gọi chương trình con G65 P9611 (có lẻ là offset dao ?).

M06T02.
G65P9611

Vào thư mục cài đặt Cimatron, C:\CimatronE10\Program\IT\var\post2, nhấp đúp vào file ví dụ Fanuc.ex2 (Ví dụ bạn dùng Cimatron E9 trở lên mới hổ trợ file .ex2).

Tìm đến block lệnh sau:

GPP_PROCDEF ToolChange;

GPP_PROCPARAM (TOOLS) CurrentTool ; // procedure argument - tool to change to
IF (OutSubroutine == SubsAll) // use subroutines for EVERYTHING
OUTPUT $ " T" CurrentTool " M98 P" SubToolNum ; // so call tool change subroutine
ELSE // output tool change commands to g-code
GPP_CALLPROC MoveToMachineSafePos ();
OUTPUT $ " T" CurrentTool " M06";
GPP_CALLPROC ResetMachine ();
END_IF;

Cimatron dùng câu lệnh OUTPUT $ “noi dung can out put”, ở trên bạn thấy dùng OUTPUT $ " T" CurrentTool " M06"; Tức gọi tên dao rồi mới gọi M6 – bạn muốn xuất ra M06 rồi mới tên dao M06T02. , thì bạn hãy đổi ngược thứ tự của câu lệnh trên kia.

Cứ mỗi lần thay dao bạn muốn xuất ra thêm dòng G65P9611, thì sau dòng

OUTPUT $ " T" CurrentTool " M06"; bạn hãy thêm 1 dòng
OUTPUT $ " G65P9611"

Bonus thêm cho bạn, ở đầu dòng bạn thấy xuất ra T99 và T01 – điều này có nghĩa là post nó gọi con dao hiện hành – đồng thời gọi tiếp con dao kế tiếp ( ở đây ta thấy thếm 1 lợi ích, khi chạy 1 con dao, thì lúc máy chạy người vận hành BIẾT TÊN CON DAO KẾ TIẾP – do đó họ đi tìm con dao kế tiếp trong lúc máy chạy => tiết kiệm thời gian. Bạn nào gia công thực tế có thể thấy rỏ cái lợi này. )

Bạn tìm đến dòng lệnh:
TOOL CHANGE:

IF (QUALIFIER_NAME == "first") // first tool change - define the tool in the spindle
tmpString = "Tool in Spindle: " + TOOL_NAME
+ " D= " + STR_FORMAT(DIAMETER_)
+ " R= " + STR_FORMAT(TOOL_RAD);
OUTPUT $ " T" TOOL_NUM " (" tmpString ")"; // define the tool that is currently in the spindle
ELSE // all other tool changes (NOT the first)
GPP_CALLPROC ToolChange (TOOL_NUM); // generate the TOOL CHANGE command (M6)
END_IF;

Bỏ đi các dòng sau, thì post sẽ không xuất ra Next Tool.

NextTool = NEXT_TOOL(TOOL_NUM); // NEXT_TOOL(TOOL_NUM) cannot be used for output
IF (NextTool != TOOL_NUM) // Must output the NEXT tool
tmpString = "Next Tool: " + NEXT_TOOL(TOOL_NAME)
+ " D= " + STR_FORMAT(NEXT_TOOL(DIAMETER_))
+ " R= " + STR_FORMAT(NEXT_TOOL(TOOL_RAD));
OUTPUT $ " T" NextTool " (" tmpString ")"; // rotate tool magazine for next tool
END_IF;[/LEFT]
 
H

haidang_tn

Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

G65P9611 là lênh đo dụng cụ cắt tự động bác ah!
Em có thử sửa theo như bác hướng dẫn nhưng không được.
Bác cho em xin địa chỉ mail
Em gửi file post của em cho bác để bác sửa giúp em.
Em đang dùng Cimatron e10 bản 64b
cảm ơn bác!
Chờ hồi âm của bác.
 
H

haidang_tn

Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

Em gửi file post cho anh rồi đó.
Em tinh làm file past thùng bia Tiger gửi qua mail cho anh,nhưng thấy thế nào..
Hay khi nào anh ra công tác ngoài hà nôi em xin mang thùng bia Tiger đến cho anh,em 1 thùng nữa
Để không say không về.
Sdt của em:0943588016
Cảm ơn anh nhiều!
 

iPumpkin

<center><b>CAM Programmer</b></center>
Author
Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

Mình đã nhận được e-mail của bạn, post của bạn là GPP1 là phiên bản củ. Mình gửi tặng bạn cái Post GPP2 luôn, viết theo ý của bạn.

Mình bobus thêm cho bạn xuất ra toolist của các dao bạn dùng lên đầu file, đồng thời xuất dao ra có thêm thông tin đường kính, góc dao để bạn double check lại với tên dao mà bạn đặt. Bạn check và cho ý kiến nhé. Bên dưới là đoạn code xuất ra, thân mến.


%
O0010
;(DATE : 27.3.2013)
;T25 BN20R4 DIA.- 20.
;T32 BN12R4 DIA.- 12.
;T1 BALL8 DIA.- 8.
;T2 BALL4 DIA.- 4.
M06T25
G65 P9611
G54 G00
G80 G91 G40 G28 Z0
G49 G28 X0 Y0 M05
;T 25 (TOOL IN SPINDLE: BN20R4 D= 20. R= 4.)


(VOLUME MILLING-ROUGH SPIRAL #3)
G00 X-23.038 Y-111.221
G43 H25 Z-5.226
S1000 M03
M08
Z-23.872
G01 Z-24.872 F150.
Z-39.892
X-21.866 Y-109.686
X-17.176 Y-103.547
X-16.768 Y-103.091
X-16.296 Y-102.702
====================


G01 X107.374 Y55.319 F731.
G02 X109.977 Y48.745 R17.132
G01 X110.2 Y48.156 Z-84.663 F500.
X110.511 Y47.609 Z-84.434
X110.905 Y47.117 Z-84.205
X111.37 Y46.693 Z-83.975
X111.896 Y46.347 Z-83.746
G00 Z-5.226
M09
M05


M06 T32
G65 P9611
G54 G00
G80 G91 G40 G28 Z0
G49 G28 X0 Y0 M05
G90 G00 G17
(VOLUME MILLING-REROUGH #4)
G00 X1.624 Y50.354
G43 H32 Z-5.226
S398 M03
M08
Z-21.278
G01 Z-22.278 F150.
Z-25.318
X0.953 Y51.245 F500.
 
T

tienn111h

Ðề: POST PROCESSOR - Từ cơ bản đến nâng cao

có ai có links down GPP2 hoặc IMS p
 
Hi anh!
E đang xem bộ Post của Fanuc 3X Mill từ Mastercam, e có thắc mắc là ngôn ngữ của bộ post này có khác so với bộ Post của các phần mềm khác hay không?
Và làm thế nào để việc edit Post cho từng máy CNC dòng khác nhau 1 cách dễ dàng nhất?
 
C

Cơ khí cnc

Mình muốn chèn dòng nhắc ( kiểm tra đạo thực tế số với toolname )
( TOOLNAME : D20 )
vào đầu chương trình của mastercam thì phải làm sao . nhờ các thánh giúp mình với . Cám ơn nhiều !
 
Top