cimatron后处理之 变量讲解

cimatron后处理之    变量讲解
cimatron后处理之    变量讲解

后处理

一套GPP的POST运行,至少有几个文件支撑,请具体说明。

GPP需要至少两个文件,分别是demo.def, demo.dex,一般安装之后还有一个demo.exf文件,这个文件不起实际作用,是编译成DEF之前的过程文件。目录在\\var\post目录下。

题2:

一套IMS的POST运行,至少有几个文件支撑,请具体说明。

IMS需要一个文件,如\\var\ims\imspost\prjfiles\fanuc0.prj,

另外还有一个相关的文件很重要,如三轴立式的机床是\\var\ims\imspost\mchfiles\vertical.mch,当然还有\var\ims\imspost\deffiles\cimatron.def,它指定了APT的特殊格式

希望可以多交流,将这个问题谈得深一点,如:

1.在GPP中程序头加入刀具信息等;

2.在GPP中指定代码文件的放置目录;

3.在GPP中指定不使用圆弧插补;

4.在IMS中检验APT程序;

5.在IMS中指定使用刀尖作为对刀点;

matthews兄和sirhc兄都说到点子上了,看来大伙儿对POST还是很有基础的。我把这两个问题的答案综合一下,讲解就从这个突破口开始。

题1:

一套GPP的POST运行,至少有2个文件支撑,分别为*.DEX和*.DEF,IT版在\var\post目录下,E版在CIM_E\IT\var\post目录下。请注意我说的“至少”,因为还有一个*.CMD文件起着关键作用,比如指定G 代码的存放目录,连接外挂程序,删除多余的伴随文件等。*.CMD文件是否要起作用,由*.DEF文件中的一个控制项来决定。如何设置,以后会讲。而*.EXF文件虽然在POST运行时不需要,但POST设置全靠它,因此不能抛在一边。

*.EXF文件是GPP型POST的源代码,能手工编辑,有可读性。

*.DEX文件是GPP型POST的执行代码,类似二进制文件,很难手工编辑,没可读性。它由*.EXF文件通过编译产生。

*.DEF文件是GPP型POST的数据输出格式控制文件。

题2:

一套IMS的POST运行,至少有4个文件支撑,在\dat下的3个APT.*文件和\var\ims\IMSPOST\PRJFILES 下的1个*.prj文件,这里的APT.CMD文件就起到了连接作用。而搞IMS,一般搞*.prj文件就行了,通常设置数据输出格式。没有GPP型POST支撑,IMS是不行的。

先到这里,下贴继续。有不对处请兄弟们指正。

我首先向大家说声:I AM SORRY,因我前段时间有事,发贴没心思,请兄弟们原谅!现继续我的瞎掰。

(1)

介绍几个跟POST有关的编译器。

cimitX\BIN\下的DFEXF.EXE是把*.EXF编译成*.DEX的程序。激活该程序后,会出现一个DOS窗,输入EXF型文件名(不要含扩展名EXF),即可生成DEX型文件。同C语言编译器一样,若EXF型文件有问题,编译器会显出错误的语句。你可按提示修改EXF型文件直到编译成功。DFEXF.EXE的快捷方式在IT 的MAIN MENU下NC栏的第6个,即附图中第6个菜单。

生成DEF文件的程序CIM一般是不提供的,但CIM提供了DEF文件样本,即DEMO.DEF,我们可利用样本搞出不同的DEF文件来。cimitX\BIN\下的DFSTRD.EXE是配置*.DEF文件的程序。激活该程序后,会出现一个DOS窗,选择样本后就能进行配置,完成后另取一个文件名保存退出。配置DEF文件时DFSTRD。EXE要加参数:“P”DFSTRD.EXE的快捷方式在IT的MAIN MENU下NC栏的第5个,即附图中第5个菜单。

DFEXF.EXE和DFSTRD.EXE的默认目录是cimitX\var\post。

编译器具体使用在以后会提到。IMS的编译器明天讲。

错误处请兄弟们指正,不胜感谢!!!

不好意思,让兄弟们久等,我这人向来虎头蛇尾,兄弟们多担待。

(2)

IMS的编译器是cimitX\VAR\IMS\IMSPOST下的IMSPOSTW.EXE,它的默认目录为cimitX\VAR\IMS\IMSPOST\PRJFILES,它能生成*.LIB文件。而LIB型文件也是类似二进制文件,只有通过IMSPOSTW.EXE才能看懂。搞IMS就是用熟IMSPOSTW.EXE。

IMS的执行器为PEXEC95.EXE。LIB型文件其实是PEXEC95.EXE运行时的配置文件。

下面讲一点IMS的运行过程。

CIM的默认POST为GPP,要使用IMS,必须加一个启动参数:“-IPOST”。

cimitX\BIN下有一个POSTPR.DLL的扩展。当在CIM的环境中按下POST选项后,POSTPR.DLL被激活了,若它查到有参数:“IPOST“,便会到cimitX\DA T下去执行APT(一个GPP型的),而APT活完,APT.CMD文件就活了,这个文件没有什么,只有一个意思,调用APT新生成的print0.txt文件,而print0.txt 文件的内容就是去执行PEXEC95.EXE,即IMS。这就是有人所谓的CIM和IMS:”无缝集成“。兄弟们想想这缝隙有多大,APT的3个文件若有一个稍不行,IMS就不能活了。比如我将APT.CMD移到别的目录,IMS会翘辫子。因此,对CIM来说,IMS是外挂,不是集成。

(3)

先讲GPP,在讲之前,发一张GPP的系统变量表,以后会用到,这很重要。具体的解释我后面会举例,对英文感冒的兄弟不要怕。

变量名变量说明数据类型所应用的模块位子

ABS_ANG Start angle + Delta angle 2 CIRCULAR MOTION:

ARC_ANG Arc angle 2 CIRCULAR MOTION:

AXIS_ANGLE Tool axis angle 2 TOOL CHANGE:

AXIS_NUM Number of axes being used 6 AXIS CHANGE:BEGINNING OF TAPE: BLOCK_NUM Current block number as appears in the TP_LIST 6 All Blocks

CIR_INTERP Circular interpolation mode 7 ORIGIN CHANGE

CIRC_MOV Circular movement code 0 CIRCULAR MOTION:

CLEAR_LENG Distance between holder & tool tip 1 TOOL CHANGE:

COMP_3X 3-D cutter compensation 7 LINEAR MOTION:

CURR_NAME Current tool holder name 0 TOOL CHANGE:

CURR_ORIG Controller/Cimatron origin no. 7 ORIGIN CHANGE: BEGINNING OF TAPE: CURR_START Number of current start 7 START THREAD:

CURR_TOOL Current tool holder number 7 TOOL CHANGE:

CUT_LENGTH Length of cutting edge of tool 1 TOOL CHANGE:

CUT_SPEED Velocity of cutting (Vc) 1 CONSTANT SPEED:

CUT_WIDTH Width of the tool 1 TOOL CHANGE:

CUTCOM_OFF Cutter Compensation off code 0 CUTTER COMPENSA TION:

CUTCOM_ON Cutter Compensation on code 0 CUTTER COMPENSA TION:

CYC_2PLN Not in use. 1 CYCLE:

CYC_CLEAR Cycle clear height 1 CYCLE:

CYC_CODE Cycle code 0 CYCLE:

CYC_DEPTH Cycle depth increment 1 CYCLE: GROOVE CYCLE:

CYC_DWELL Cycle dwell time 5 CYCLE:

CYC_DZINIT The DRILL procedure DEL INIT value 1 CYCLE:

CYC_PECK Cycle PECK value 1 CYCLE: GROOVE CYCLE:

CYC_REDUC Cycle DECREASE value 1 CYCLE: GROOVE CYCLE:

CYC_RETR Cycle retract code 0 CYCLE:

CYC_TIMES Number of pecks/cycle 7 CYCLE:

CYC_XSHFT Cycle shift along the X axis 1 CYCLE:

CYC_YSHFT Cycle shift along the Y axis 1 CYCLE:

CYCLE_1 Spot Drill 7 CYCLE:

CYCLE_2 High Speed Peck 7 CYCLE:

CYCLE_3 Left Hand Tapping 7 CYCLE:

CYCLE_4 Fine Boring 7 CYCLE:

CYCLE_5 Counter Boring 7 CYCLE:

CYCLE_6 Deep Hole Peck 7 CYCLE:

CYCLE_7 Tapping 7 CYCLE:

CYCLE_8 Boring 7 CYCLE:

CYCLE_9 Bore + Spindle Stop 7 CYCLE:

CYCLE_10 Back Boring 7 CYCLE:

CYCLE_11 Bore + Dwell + Manual 7 CYCLE:

CYCLE_12 Bore + Dwell + Feed 7 CYCLE:

DATE_SDD The current day 6 BEGINNING OF TAPE:

DATE_SMM The current month 6 BEGINNING OF TAPE:

DATE_SYY The current year 6 BEGINNING OF TAPE:

DEL_Z_UP Procedure DEL Z UP 1 BEGINNING OF PROC:

DIA_COMP Diameter compensation index 1 TOOL CHANGE:

DIAMETER_ Tool diameter 1 TOOL CHANGE:

DOWN_STEP The procedure DOWN STEP value 1 BEGINNING OF PROC:

END_ANG End angle 2 CIRCULAR MOTION: THREAD CYCLE: THREAD CANNED CYCLE: FACE_ANGLE Tool face angle 2 TOOL CHANGE:

FACE_GROV Face groove 7 GROOVE CYCLE:

FACE_THRD Face thread 7 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_BYAREA Downstep by area - fine 7 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_BYSTEP Downstep by distance - fine 7 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_DEPTH Depth for fine machining 1 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_DSTEP Downstep for fine machining 1 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_MNSTEP Minimumdownstep-roughmachining 1 THREAD CYCLE: THREAD CANNED CYCLE: FIN_NORMAL Perpendicular entrance - fine 7 THREAD CYCLE: THREAD CANNED CYCLE:

FIN_ZIGZAG Zigzag entrance for fine machining 7 THREAD CYCLE: THREAD CANNED CYCLE: FIXT_COMP Fixture compensation index 1 TOOL CHANGE:

GAUGE_LEN Gauge length of tool 1 TOOL CHANGE:

GROV_CNTRL Control point of groove tool 1=center, 2=left, 3=right 6 TOOL CHANGE:

GROV_DEL Slow down distance in approach 1 GROOVE CYCLE:

GROV_STEP Width of each groove pass 1 GROOVE CYCLE:

GROV_WIDTH Total width of machined area 1 GROOVE CYCLE:

HOLD_LENG Holder length 1 TOOL CHANGE:

HOLD_WIDTH Holder width 1 TOOL CHANGE:

I_COORD I component of tool axis/wire vector 1 LINEAR MOTION:

I_ORIGIN Origin, I vector component 1 BEGINNING OF TAPE: ORIGIN CHANGE:

I_START Initial direction, I vector component 1 BEGINNING OF PROC:

INNER_GROV Inside groove 7 GROOVE CYCLE:

INNER_THRD Inside thread 7 THREAD CYCLE: THREAD CANNED CYCLE:

INS_STR Insert string 0 INSERT WITH: INSERT WITHOUT:

IX_ORIG I vector component of the X direction 1 ORIGIN CHANGE

J_COORD J component of tool axis/wire vector 1 LINEAR MOTION:

J_ORIGIN Origin, J vector component 1 BEGINNING OF TAPE: ORIGIN CHANGE:

J_START Initial direction, J vector component 1 BEGINNING OF PROC:

JX_ORIG J vector component of the X direction 1 ORIGIN CHANGE

K_COORD K component of tool axis/wire vector 1 LINEAR MOTION:

K_ORIGIN Origin, K vector component 1 BEGINNING OF TAPE: ORIGIN CHANGE:

K_START Initial direction, K vector component 1 BEGINNING OF PROC:

KX_ORIG Kvector component of the X direction 1 ORIGIN CHANGE

LAYER_NUM Number of layers in the proc 1 BEGINNING OF PROC:

LAYER_Z Z value of current layer 1 SUBROUTINE CALL:

LENG_COMP Length compensation index 1 TOOL CHANGE:

LIN_MOV Linear movement code 0 LINEAR MOTION:

LINE_ANG Angle of the line with the X axis 2 LINEAR MOTION: THREAD CYCLE:

THREAD CANNED CYCLE:

LINE_LENG Length of the linear motion 1 LINEAR MOTION: THREAD CYCLE: THREAD CANNED CYCLE:

MACSYS_NAM MACSYS name 0 BEGINNING OF TAPE:

MCH_COOL Coolant code 0 COOLANT:

MCH_DWELL Dwell time 5 DWELL:

MCH_FEED Feed rate 3 FEED:

MESS_STR Message string 0 MESSAGE:

MOVMNT_NUM Number of movement blocks in the current procedure 6 BEGINNING OF PROC:

NEXT_NAME Next tool holder name 0 TOOL CHANGE:

NEXT_TOOL Next tool holder number 7 TOOL CHANGE:

NIB_PITCH Nibbling pitch 1 NIBBLE:

NO_SUBROUT Subroutine mode 7 ORIGIN CHANGE

NODE_ID The node_ID number. 0 BEGINNING OF TAPE:

NUM_LAYERS Number of layers in procedure 6 SUBROUTINE CALL:

NUM_ORIGS Total number of origins used 7 BEGINNING OF TAPE:

NUM_SPRING Number of spring passes 6 BEGINNING OF PROC:

OUTER_GROV Outside groove 7 GROOVE CYCLE:

OUTER_THRD Outside thread 7 THREAD CYCLE: THREAD CANNED CYCLE:

Overlap_ between tool strokes 1 TOOL CHANGE:

PART_NAME The name of the part 0 BEGINNING OF TAPE:

PFM_UNITS PFM units 0 BEGINNING OF TAPE

PLA TFORM_ The platform in use. 0 BEGINNING OF TAPE:

PROC_CMNT Procedure comment 0 BEGINNING OF PROC:

PROC_NAME The name of the current procedure 0 BEGINNING OF PROC:

PROC_NUM Procedure sequence number 6 BEGINNING OF PROC:

RADIUS_ Radius of the arc 1 CIRCULAR MOTION:

REGSTR_1 AGIE T or Makino E 6 TOOL CHANGE:

REGSTR_2 AGIE P 6 TOOL CHANGE:

REGSTR_3 AGIE D or Makino D 6 TOOL CHANGE:

REGSTR_4 AGIE S 6 TOOL CHANGE:

ROT_MAT1. . .9 Rotation matrix elements 1 ORIGIN CHANGE:

RUF_BYAREA Downstep by area - rough 7 THREAD CYCLE:

RUF_BYSTEP Downstep by distance - rough 7 THREAD CYCLE:

RUF_DEPTH Depth for rough machining 1 THREAD CYCLE:

RUF_DSTEP Downstep for rough machining 1 THREAD CYCLE:

RUF_MNSTEP Minimum downstep for rough machining 1 THREAD CYCLE:

RUF_NORMAL Perpendicular entrance - rough 7 THREAD CYCLE:

RUF_ZIGZAG Zigzag entrance - rough machining 7 THREAD CYCLE:

SCALLOP_ Hgt of material left between strokes 1 TOOL CHANGE:

SEGMT_NUM Number of line segments in string 1 START STRING:

SIDE_STEP The procedure SIDE STEP value 1 BEGINNING OF PROC:

SPIN_DIR Spindle direction 0 SPIN:

SPIN_SPEED Spindle speed 4 SPIN:

SRF_NORX X component of the surfaces' normal 1 LINEAR MOTION:

SRF_NORY Y component of the surfaces' normal 1 LINEAR MOTION:

SRF_NORZ Z component of the surfaces' normal 1 LINEAR MOTION:

ST_ANG Start angle 2 CIRCULAR MOTION:

STARTS_NUM Total number of lathe/thread starts 7 BEGINNING OF PROC:

STEP_INCR Step increment 1 THREAD STEP:

STEP_TYPE Thread step code (1 to 6) 7 THREAD STEP:

STEP_V ALUE Pitch or lead size 1 THREAD STEP:

SUB_NUMBER Number of current subroutine 6 SUBROUTINE CALL:

TEETH_NUM Number of teeth in tool 7 TOOL CHANGE:

THRD_DEPTH Total thread machining depth 1 THREAD CYCLE:

TIME_SHH The current hour of starting postpr. 6 BEGINNING OF TAPE:

TIME_SMM The current min. of starting postpr. 6 BEGINNING OF TAPE:

TIME_SSS The current sec. of starting postpr. 6 BEGINNING OF TAPE:

TOOL_ANGLE Angle of the tool 2 TOOL CHANGE:

TOOL_RAD Tool radius 1 TOOL CHANGE:

TOOL_TYPE Punch tool type code 7 TOOL CHANGE:

TP_NAME Toolpath name 0 BEGINNING OF TOOLPATH:

TRANS_MATXTRANS_MATYTRANS_MATZ Translation from current UCS to the original MACSYS 6 BEGINNING OF PROC: /TOOL CHANGE: /ORIGIN CHANGE: / BEGINNING OF TAPE: TRANSF_NUM Number of transformations 6 BEGINNING OF PROC:

TRF_MA T1...9 Transformation rotation matrix 1 TRANSFORMATION:

TRF_VECX Transformation matrix 1 TRANSFORMATION:

TRF_VECY Transformation matrix 1 TRANSFORMATION:

TRF_VECZ Transformation matrix 1 TRANSFORMATION:

USER_NAME Give the user name as an output 0 BEGINNING OF TAPE:

WINT_1 Charmilles G27 6 TOOL CHANGE:

WINT_2 Charmilles G28 6 TOOL CHANGE:

WINT_3 Charmilles G29 6 TOOL CHANGE:

WINT_4 Charmilles G30 6 TOOL CHANGE:

WINT_5 Charmilles G28G29 6 TOOL CHANGE:

WINT_6 Charmilles G29G30 6 TOOL CHANGE:

WINT_7 Charmilles G32 6 TOOL CHANGE:

WINT_8 Charmilles G38 6 TOOL CHANGE:

WINT_9 Charmilles G39 6 TOOL CHANGE:

WINT_10 Charmilles G45 6 TOOL CHANGE:

WINT_11 Charmilles G46 6 TOOL CHANGE:

WINT_12 Charmilles G60 6 TOOL CHANGE:

WINT_13 Charmilles G61 6 TOOL CHANGE:

WINT_14 Charmilles G62 6 TOOL CHANGE:

WINT_15 Charmilles G63 6 TOOL CHANGE:

WREAL_1 Charmilles C for G32 1 TOOL CHANGE:

WREAL_2 Charmilles K for G32 1 TOOL CHANGE:

WREAL_3 Charmilles X for G32 1 TOOL CHANGE:

WREAL_4 Charmilles Y for G32 1 TOOL CHANGE:

WREAL_5 Charmilles R for G32 1 TOOL CHANGE:

WREAL_6 Charmilles A for G38 & G39 1 TOOL CHANGE:

X_CENTER X coordinate of center 1 CIRCULAR MOTION:

X_CURPOS X coordinate of current position 1 BEGINNING OF TAPE: LINEAR MOTION:CIRCULAR MOTION: CYCLE:

X_ENDPT X coordinate of endpoint 1 CIRCULAR MOTION:THREAD CYCLE:THREAD CANNED CYCLE: GROOVE CYCLE:

X_HOME X coordinate of home 1 BEGINNING OF TAPE:

X_INTER X intermediate point 1 BEGINNING OF PROC:

X_MACH X coordinate of machine zero 1 BEGINNING OF TAPE:

X_ORIGIN Origin, X coordinate 1 BEGINNING OF TAPE:

X_START X coordinate of start position 1 BEGINNING OF PROC: THREAD CYCLE: THREAD CANNED CYCLE: GROOVE CYCLE:

Y_CENTER Y coordinate of center 1 CIRCULAR MOTION:

Y_CURPOS Y coordinate of current position 1 BEGINNING OF TAPE: LINEAR MOTION: CIRCULAR MOTION: CYCLE:

Y_ENDPT Y coordinate of endpoint 1 CIRCULAR MOTION: THREAD CYCLE: THREAD CANNED CYCLE: GROOVE CYCLE:

Y_HOME Y coordinate of home 1 BEGINNING OF TAPE:

Y_INTER Y intermediate point 1 BEGINNING OF PROC:

Y_MACH Y coordinate of machine zero 1 BEGINNING OF TAPE:

Y_ORIGIN Origin, Y coordinate 1 BEGINNING OF TAPE: ORIGIN CHANGE:

Y_START Y coordinate of start position 1 BEGINNING OF PROC: THREAD CYCLE: THREAD CANNED CYCLE: GROOVE CYCLE:

Z_CENTER Z coordinate of circle center 1 CIRCULAR MOTION:

Z_CURPOS Z coordinate of current position 1 BEGINNING OF TAPE: LINEAR MOTION: CIRCULAR MOTION: CYCLE: Z SURFACE:

Z_DOWN The procedure Z DOWN value 1 BEGINNING OF PROC:

Z_ENDPT Z of circle endpoint 1 CIRCULAR MOTION:

Z_HOME Z coordinate of home 1 BEGINNING OF TAPE:

Z_INTER Z intermediate point 1 BEGINNING OF PROC:

Z_MACH Z coordinate of machine zero 1 BEGINNING OF TAPE:

Z_ORIGIN Origin, Z coordinate 1 BEGINNING OF TAPE:ORIGIN CHANGE:

Z_START Z coordinate of start position 1 BEGINNING OF PROC:

Z_UP The procedure Z UP value 1 BEGINNING OF PROC:

贺山中岁月兄新任版主,特将DEMO.EXF这个POST作一个讲解。

* DEMO 3 axes Post Processor for FANUC

* CIMATRON90 VER 9.0

* Last update : 23-FEB-1998

程序行前面起头字符为*表示此行为注释行。

********************************************************

* define private variables:

FORMA T (SEQUENCING) Seq SubSeq CNTRL_NUM NURBS_DEG count first deg ;

FORMAT (TOOL) CutterComp FirstTool LastTool ;

FORMA T (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ;

FORMA T (COORDINATES) Zinit Clear Depth CNTRL_X CNTRL_Y CNTRL_Z KNOT_ ;

FORMA T (COORDINATES) Xhome Yhome Zhome ;

FORMA T (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;

FORMA T (USER_1) CurrSubNum ;

FORMA T (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;

* define private flags:

FORMA T (USER_2) FlagSub FlagSeq FlagSpin;

FORMA T (USER_2) FirstOriginChange FlagError Flagrotmac ;

* define private constants:

FORMA T (USER_2) YES NO ;

* change the format of existing variables:

FORMA T (USER_1) SUB_NUMBER ;

FORMA T里面定义了后处理中需要用到的变量的类型,这些当然都不是我们需要修改的内容,但是你如果新定义了一个变量如圆弧插补的半径radius,这个变量当然需要可以是小数,它就需要被定义为REAL或COORDINA TES这种类型。添加一行程序:

FORMA T (COORDINATES) radius;

INTERACTION指的是执行后处理时的一些交互的内容:

INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ; 主程序号

INTERACTION (TOOL) "DIACOMP=TOOL+" DiaComp = 50 ; 刀补号

INTERACTION (USER_1) "TOOL-CHANGE-PROGRAM" ChangeTool = 8000 ; 换刀子程序号INTERACTION (CHARACTER) "SEQUENCING" NumYN = "N" ; 程序行前面是否需要行号INTERACTION (SEQUENCING) "SEQUENC-START" SeqStart = 10 ; 起始行号

INTERACTION (SEQUENCING) "SEQUENC-INCR." SeqIncr = 10 ; 行号增量

INTERACTION (CHARACTER) "SUBROUTINES" Sub = "Y" ; 是否输出子程序,WCUT是没有子程序的,但是POCKET和PROFILE会产生子程序

INTERACTION (USER_1) "SUB-PROGRAM-NUMBER" StartSubNum = 1000 ; 第一个子程序号

如果需要添加新的交互内容,只需要添加一个交互行就可以了,当然需要注意被交互的内容是整型还是实型,否则不能输入数字和小数

NON_MODAL ALL_V AR;

MODAL X_CURPOS Y_CURPOS Z_CURPOS ;

MODAL LIN_MOV CIRC_MOV MCH_FEED SPIN_SPEED SPIN_DIR MCH_COOL MCH_DWELL; MODAL CUTCOM_ON CUTCOM_OFF ;

MODAL CYC_DEPTH CYC_PECK CYC_DWELL CYC_RETR CYC_CLEAR Depth Clear NURBS_MOV;

MODAL 定义变量是否为模态,象X_CURPOS这种坐标位置当然是随时都在变化的。另外我们可以认为指的是在同一行程序内变量的值能否重复输入多次。

IDENTICAL X_CURPOS X_ENDPT ;

IDENTICAL Y_CURPOS Y_ENDPT ;

每输出一行程序之前,调用一个新的值,即保持侦测状态。

前面都是准备工作,下面的内容才是和输出加工程序有关的。

NEW_LINE_IS $ ; $为换行指令,这一段内容制定程序是如何换行的

IF_SET (FlagSeq _EQ_ NO) 如果制定不输出行号

OUTPUT \J ; \J表示换行但不输出行号

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT \J "N" Seq ;

Seq = Seq + SeqIncr ;

ELSE

OUTPUT \J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ; 这一段指定子程序号如何递增

END_IF ;

END_IF ;

BEGINNING OF TAPE: 程序头的指定

YES = 1 ;

NO = 0 ;

Seq = SeqStart ;

FlagSeq = NO ;

FlagSub = NO ;

IF_SET (NumYN _EQ_ "y") FlagSeq = YES ; END_IF ;

IF_SET (NumYN _EQ_ "Y") FlagSeq = YES ; END_IF ; 连交互里的大小写都想到了,防呆。

IF_SET (Sub _EQ_ "y") Sub = "Y" ; END_IF ;

IF_SET (Sub _EQ_ "Y")

SET_OFF NO_SUBROUT ;

ELSE

SET_ON NO_SUBROUT ;

END_IF ;

*-----Unit matrix (MUST be input in this order !!!) 指定XYZ轴的方向,千万不要改啊!

ROT_MA T1 = 1.0 ; ROT_MAT2 = 0.0 ; ROT_MA T3 = 0.0 ;

ROT_MA T4 = 0.0 ; ROT_MAT5 = 1.0 ; ROT_MA T6 = 0.0 ;

ROT_MA T7 = 0.0 ; ROT_MAT8 = 0.0 ; ROT_MA T9 = 1.0 ;

*-----shift all data according to the MCHINE ZERO indicated by the

* user in the POSTPR interaction 如果在后处理时指定了对刀点相对于编程原点的偏移量,指定坐标值如何转换。

TRANS_MATX = 0 - X_MACH ;

TRANS_MATY = 0 - Y_MACH ;

TRANS_MATZ = 0 - Z_MACH ;

*-----shift the HOME according to the MCHINE ZERO indicated by the

* user in the POSTPR interaction 如果在后处理时指定了对刀点相对于编程原点的偏移量,机床原点位置如何转换。

Xhome = X_HOME - X_MACH ;

Yhome = Y_HOME - Y_MACH ;

Zhome = Z_HOME - Z_MACH ;

*-----tool location is HOME 刀具原点

Xold = X_HOME ;

Yold = Y_HOME ;

Zold = Z_HOME ;

*-----For 1st ORIGIN CHANGE

FirstOriginChange = YES ;

MCH_FEED = 9999 ;

*-----output

IF_SET (FlagSeq _EQ_ YES )

OUTPUT "%" \J "O" MainNum ; 换行后输出子程序号,这里有ELSE只是为了修改者方便。

ELSE

OUTPUT " %" \J " O" MainNum ;

END_IF ;

*--For the first origin change

ORIGOLDI=0 ; ORIGOLDJ=0 ; ORIGOLDK=1 ;

flagrotmac = no ;

FILE指一个输出的加工代码文件

TAPE指使用同一把刀具的一段加工程序

PROCEDURE 指的是一个WCUT等

BEGINNING OF PROC:

KEEP PROC_NAME ;

SET_ON MCH_COOL ;

FlagSub = NO ;

SubSeq = SeqStart ;

END OF TAPE: 使用完一把刀具之后

IF_SET (FirstTool _NE_ LastTool)

OUTPUT $ " T" NEXT_TOOL " M98 P" ChangeTool;

END_IF ;

OUTPUT $ " M30 " ;

END OF FILE: 代码文件的结束符

IF_SET (FlagSeq _EQ_ YES )

OUTPUT \J "%" ;

ELSE

OUTPUT \J " %" ;

END_IF ;

FEED:

KEEP MCH_FEED ; 如果F值没有改变,则此行程序不输出F

SPIN:

KEEP SPIN_SPEED ;

COOLANT:

KEEP MCH_COOL ;

DWELL:

KEEP MCH_DWELL ;

CUTTER COMPENSA TION:

KEEP CUTCOM_ON ;

CUTTER COMPENSA TION: COFF:

KEEP CUTCOM_OFF ;

TOOL CHANGE: FIRST:第一次换刀,实际上就是程序头TOOL CHANGE: 加工过程中的换刀

TOOL CHANGE: LAST: 最后一次换刀

SET_ON SPIN_SPEED SPIN_DIR ;

*-----save first tool number

FirstTool = CURR_TOOL ;

LastTool = CURR_TOOL ;

*-----tool cutter compensation register number

CutterComp = CURR_TOOL + DiaComp ;

*-----assuming 1st tool is in the spindle, there is no need

* for tool change)

OUTPUT $ " T" CURR_TOOL ;

*-----more then one tool in this run of the Post Processor

IF_SET (NEXT_TOOL _NE_ CURR_TOOL)

OUTPUT $ " T" NEXT_TOOL ;

END_IF ;

*-----standard tool change commands. (assuming 1st tool is in

OUTPUT $ " G90 G80 G00 G17 G40 M23" ;

OUTPUT $ " G43 H" CURR_TOOL " Z" Zhome " S" SPIN_SPEED " " SPIN_DIR ;

如果是一把刀出一个程序实际上只需要修改TOOL CHANGE: FIRST就可以了,比如改成这样:TOOL CHANGE: FIRST:

SET_ON SPIN_SPEED SPIN_DIR ;

*-----save first tool number

FirstTool = CURR_TOOL ;

LastTool = CURR_TOOL ;

*-----tool cutter compensation register number

CutterComp = CURR_TOOL + DiaComp ;

OUTPUT $ "G17G40G49G80" ;

OUTPUT $ "G90G54G00X0Y0" ;

OUTPUT $ "G43H01""Z" Zhome ;

LINEAR MOTION: FAST: G00程序的输出格式

FlagSpin = NO ;

IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;

IF_SET (SPIN_DIR) FlagSpin = YES ; END_IF ;

IF_SET (FlagSpin _EQ_ YES)

SET_ON SPIN_SPEED SPIN_DIR ;

OUTPUT $ "S" SPIN_SPEED SPIN_DIR ;

END_IF ;

OUTPUT $ ;

IF_SET (LIN_MOV) OUTPUT LIN_MOV ; END_IF ;

IF_SET (X_CURPOS) OUTPUT "X" X_CURPOS ; END_IF ;

IF_SET (Y_CURPOS) OUTPUT "Y" Y_CURPOS ; END_IF ;

IF_SET (Z_CURPOS) OUTPUT "Z" Z_CURPOS ; END_IF ;

IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ;

SET_ON CIRC_MOV ;

Xold = X_CURPOS ;

Yold = Y_CURPOS ;

Zold = Z_CURPOS ;

LINEAR MOTION: G01的输出格式

FlagSpin = NO ;

IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;

IF_SET (SPIN_DIR) FlagSpin = YES ; END_IF ;

IF_SET (FlagSpin _EQ_ YES)

SET_ON SPIN_SPEED SPIN_DIR ;

OUTPUT $ "S" SPIN_SPEED SPIN_DIR ;

END_IF ;

OUTPUT $ ; 换行

IF_SET (LIN_MOV) OUTPUT LIN_MOV ; END_IF ;

IF_SET (CUTCOM_ON) OUTPUT CUTCOM_ON "D" CutterComp ; END_IF ;

IF_SET (CUTCOM_OFF) OUTPUT CUTCOM_OFF ; END_IF ;

IF_SET (X_CURPOS) OUTPUT "X" X_CURPOS ; END_IF ;

IF_SET (Y_CURPOS) OUTPUT "Y" Y_CURPOS ; END_IF ;

IF_SET (Z_CURPOS) OUTPUT "Z" Z_CURPOS ; END_IF ;

IF_SET (MCH_FEED) OUTPUT "F" MCH_FEED ; END_IF ;

IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ;

SET_ON CIRC_MOV ;

Xold = X_CURPOS ;

Yold = Y_CURPOS ;

Zold = Z_CURPOS ;

CIRCULAR MOTION: 圆弧运动的输出格式

FlagSpin = NO ;

IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;

IF_SET (SPIN_DIR) FlagSpin = YES ; END_IF ;

IF_SET (FlagSpin _EQ_ YES)

SET_ON SPIN_SPEED SPIN_DIR ;

OUTPUT $ "S" SPIN_SPEED SPIN_DIR ;

END_IF ;

DXcenter = X_CENTER - Xold ; I值为相对于圆心相对于起点的X方向距离,有的机床不是这样的啊!!如果弄错了,那么(很想在这里加入几个哭脸,可是不知道怎么弄,郁闷ing)

DYcenter = Y_CENTER - Yold ;

DZcenter = Z_CENTER - Zold ;

OUTPUT $ ;

IF_SET (CIRC_MOV) OUTPUT CIRC_MOV ; END_IF ;

IF_SET (X_CURPOS) OUTPUT "X" X_ENDPT ; END_IF ;

IF_SET (Y_CURPOS) OUTPUT "Y" Y_ENDPT ; END_IF ;

IF_SET (Z_CURPOS) OUTPUT "Z" Z_ENDPT ; END_IF ;这行应该删掉

IF_SET (DXcenter _NE_ 0.0) OUTPUT "I" DXcenter ; END_IF ;

IF_SET (DYcenter _NE_ 0.0) OUTPUT "J" DYcenter ; END_IF ;

IF_SET (DZcenter _NE_ 0.0) OUTPUT "K" DZcenter ; END_IF ;这行也应该删掉

IF_SET (MCH_FEED) OUTPUT "F" MCH_FEED ; END_IF ;

IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ;

SET_ON LIN_MOV ;

Xold = X_CURPOS ;

Yold = Y_CURPOS ;

Zold = Z_CURPOS ;

我是这样指定输出R的,不知道各位还有什么好办法:

radius=sqrt(DXcenter*DXcenter+DYcenter*DYcenter) ;

OUTPUT "R " radius ;

CYCLE: ON: 钻孔指令的输出方式

FlagSpin = NO ;

IF_SET (SPIN_SPEED) FlagSpin = YES ; END_IF ;

IF_SET (SPIN_DIR) FlagSpin = YES ; END_IF ;

IF_SET (FlagSpin _EQ_ YES)

SET_ON SPIN_SPEED SPIN_DIR ;

OUTPUT $ "S" SPIN_SPEED SPIN_DIR ;

END_IF ;

SET_ON X_CURPOS Y_CURPOS Z_CURPOS ;

SET_ON CYC_DEPTH CYC_RETR CYC_CLEAR MCH_FEED MCH_COOL ; SET_ON Zinit Depth Clear ;

Zinit = Z_CURPOS + CYC_DZINIT ;

Depth = Z_CURPOS - CYC_DEPTH ;

Clear = Z_CURPOS + CYC_CLEAR ;

IF_SET (Zold _LT_ Zinit) OUTPUT $ "Z" Zinit ; END_IF ;

OUTPUT $ ;

OUTPUT CYC_RETR ;

OUTPUT CYC_CODE ;

OUTPUT "X" X_CURPOS ;

OUTPUT "Y" Y_CURPOS ;

OUTPUT "Z" Depth ;

OUTPUT "R" Clear ;

IF_SET (CYC_PECK) OUTPUT "Q" CYC_PECK ; END_IF ;

IF_SET (CYC_DWELL) OUTPUT "P" CYC_DWELL ; END_IF ;

IF_SET (CYC_XSHFT) OUTPUT "I" CYC_XSHFT ; END_IF ;

IF_SET (CYC_YSHFT) OUTPUT "J" CYC_YSHFT ; END_IF ;

OUTPUT "F" MCH_FEED ;

OUTPUT MCH_COOL ;

SET_ON LIN_MOV CIRC_MOV ;

SET_OFF CYC_DEPTH CYC_CLEAR;

Xold = X_CURPOS ;

Yold = Y_CURPOS ;

Zold = Z_CURPOS ;

CYCLE: 同一步里面要钻好多孔的吗

Depth = Z_CURPOS - CYC_DEPTH ;

Clear = Z_CURPOS + CYC_CLEAR ;

OUTPUT $ ;

IF_SET (CYC_RETR) OUTPUT CYC_RETR ; END_IF ;

IF_SET (X_CURPOS) OUTPUT "X" X_CURPOS ; END_IF ;

IF_SET (Y_CURPOS) OUTPUT "Y" Y_CURPOS ; END_IF ;

IF_SET (Depth) OUTPUT "Z" Depth ; END_IF ;

IF_SET (Clear) OUTPUT "R" Clear ; END_IF ;

IF_SET (CYC_PECK) OUTPUT "Q" CYC_PECK ; END_IF ;

IF_SET (CYC_DWELL) OUTPUT "P" CYC_DWELL ; END_IF ; IF_SET (CYC_XSHFT) OUTPUT "I" CYC_XSHFT ; END_IF ; IF_SET (CYC_YSHFT) OUTPUT "J" CYC_YSHFT ; END_IF ; IF_SET (SPIN_SPEED) OUTPUT "S" SPIN_SPEED ; END_IF ; IF_SET (SPIN_DIR) OUTPUT SPIN_DIR ; END_IF ;

IF_SET (MCH_FEED) OUTPUT "F" MCH_FEED ; END_IF ;

IF_SET (MCH_COOL) OUTPUT MCH_COOL ; END_IF ;

SET_ON LIN_MOV CIRC_MOV ;

SET_OFF CYC_DEPTH CYC_CLEAR;

Xold = X_CURPOS ;

Yold = Y_CURPOS ;

Zold = Z_CURPOS ;

CYCLE: OFF: 结束钻孔

OUTPUT $ "G80 Z" Zinit ;

SET_ON LIN_MOV CIRC_MOV ;

Zold = Zinit ;

有一些机床的钻孔循环很特殊,搞起来很费劲啊。。。。。。

ORIGIN CHANGE: 如果有多个编程原点,坐标位置的转换

*-----Save the first origin data for later use

IF_SET (FirstOriginChange _EQ_ YES )

XfirstOrigin = X_ORIGIN ;

YfirstOrigin = Y_ORIGIN ;

ZfirstOrigin = Z_ORIGIN ;

FirstOriginChange = NO ;

END_IF ;

*.....distance between the rotation center and the ORIGIN

TRANS_MATX = X_ORIGIN - XfirstOrigin - X_MACH ;

TRANS_MATY = Y_ORIGIN - YfirstOrigin - Y_MACH ;

TRANS_MATZ = Z_ORIGIN - ZfirstOrigin - Z_MACH ;

在这里加一行SET_OFF CIR_INTERP ; 可以关闭圆弧插补,逼近成直线运动,精度好像默认是0.001吧,要在DFPOST里设置。五轴加工里面都要这样做的。

AXISCHANGE: 坐标轴方向的转换,不过我们这里可是三轴后处理哦,因此主要是为了防止有人乱设加工坐标系,输出一些报错信息

FlagError = NO ;

IF_SET (AXIS_NUM _GT_ 3) FlagError = YES ; END_IF ;

IF_SET (FlagError _EQ_ YES)

PRINT \J "Error: 4/5 axes motion was found in:" ;

PRINT \J " TP=" TP_NAME " PROC=" PROC_NUM " (" PROC_NAME ")"

;

PRINT \J "Error: Cannot post 5 axes toolpaths" ;

OUTPUT \J " M00 (Error: 4/5 axes motion was found)" ;为了防呆,这里可以改成几句骂人的话,哈哈。 OUTPUT \J " M00 (TP=" TP_NAME " PROC=" PROC_NUM " - " PROC_NAME ")"

;

END_IF ;

SUBROUTINE CALL:

CurrSubNum = SUB_NUMBER + StartSubNum ;

OUTPUT $ "M98 P" CurrSubNum ;

BEGINNING OF SUB:

SET_ON MCH_FEED MCH_COOL LIN_MOV CIRC_MOV ;

FlagSub = YES ;

OUTPUT \J " " ;

IF_SET (FlagSeq _EQ_ YES)

OUTPUT \J "O" CurrSubNum ;

ELSE

OUTPUT \J "O" CurrSubNum ;

END_IF ;

END OF SUB:

OUTPUT $ "M99" ;

FlagSub = NO ;

SUBROUTINE RETURN:

SET_ON LIN_MOV CIRC_MOV X_CURPOS Y_CURPOS Z_CURPOS;

最后是和子程序有关的一些设置,我就带过了

1、在cimatron的post中定义日期的变量为

DATE_SDD :日

DATE_SMM :月

DATE_SYY :年

你可以在BEGINNING OF TAPE: 中加入以下一行来显示时间:

OUTPUT "The date is (day-month-year):" DATE_SDD "-" DA TE_SMM "-" DATE_SYY \J ;

2、在cimatron的post中定义刀径及刀长的变量为

CUT_LENGTH :刀具长度

DIAMETER_:刀具直径

你可以在TOOL CHANGE: 中加入下面两行来显示刀径及刀长:

OUTPUT $ "The tool's length is " CUT_LENGTH ;

OUTPUT $ "The tool's diameter is " DIAMETER_ ;

mastercamx4后处理说明

我的9.1!是mili版的 zhengyong2010(2012-01-02 18:50:36): zhengyong2010(2012-01-02 18:50:53): 处理出来的钻孔程序是这样的!zhengyong2010(2012-01-02 18:51:27):

我的是这个文件夹 毛连均(2012-01-02 18:51:57): mastercam9.1软件有吗 zhengyong2010(2012-01-02 18:52:07): 有! zhengyong2010(2012-01-02 18:52:32): https://www.360docs.net/doc/069742883.html,/item.htm?spm=1103CV29.3-gC1W.h-57stLG&id=12871 372822& 毛连均(2012-01-02 18:52:42): 有安装视频吗 zhengyong2010(2012-01-02 18:52:59): 这个是一键安装的! zhengyong2010(2012-01-02 18:53:12): 不用自己动手安装! 毛连均(2012-01-02 18:53:25): 哦 zhengyong2010(2012-01-02 18:53:37): 不过正版的系统安装不上哦 毛连均(2012-01-02 18:55:27): 这个软件直接放到postscript 毛连均(2012-01-02 18:55:58): posts吗 zhengyong2010(2012-01-02 18:56:23):

你开远程协助吧! zhengyong2010(2012-01-02 18:56:27): 我帮你看看 毛连均(2012-01-02 18:57:05): 不会 zhengyong2010(2012-01-02 18:57:12): 0 毛连均(2012-01-02 18:58:01): 聊天记录

MasterCAM X5后处理编辑

MasterCAM X5后处理编辑 更改IJK格式: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择圆弧选项——把 XY,XZ,YZ平面设置成(开始至中心的间距)。 更改行号输出: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择NC输出——行 号一栏取消即可。 %号修改: 用记事本打开后处理MPFAN文件——查找Start of File and Toolchange Setup——在下方"%", e$——改成我们需要的就可以了,如不需要%号,可在本行最前方加一个#就可以去掉%号 了。 去掉程序中的空格: 用记事本打开后处理MPFAN文件——查找sav_spc = spaces$——可在本行最前方加一个# 就可以去掉空格了。 更改O0000(程序名): 用记事本打开后处理MPFAN文件——查找*progno$, sopen_prn, sprogname$, sclose_prn, e$——如果想删除O0000——就把开头的*progno$,这一段删除,

有些机台不认O0000可能认O0001我们只需更改第一句*progno$,更改成 "O0001",就可以 了 想把O0000和程序序名分开就可以把*progno$,更改为*progno$, e$这样就分 开了格式如下: O0000 (COR01) 去掉程序路径和时间信息: sopen_prn, "DATE=DD-MM-YY - ", date$, " TIME=HH:MM - ", time$, sclose_prn, e$ #Date and time output Ex. 12-02-05 15:52 sopen_prn, "MCX FILE - ", *smcpath$, *smcname$, *smcext$, sclose_prn, e$ sopen_prn, "NC FILE - ", *spathnc$, *snamenc$, *sextnc$, sclose_prn, e$ sopen_prn, "MATERIAL - ", *stck_matl$, sclose_prn, e$ spaces$ = sav_spc 这些段落全部开头加# 去掉换刀程序: 用记事本打开后处理MPFAN文件——查找pbld, n$, *t$, sm06, e$改为#pbld, n$, *t$, sm06, e$ 删除高度补偿: 用记事本打开后处理MPFAN文件——查找pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$改为#pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$如果要保留安全高

MasterCAM 后置处理设置方法详细说明

MasterCAM X版本后置处理及其修改方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,用户根据数控 机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数 控机床的专用后置处理程序。 mastercam系统默认发那科后置处理文件的扩展名为pst,称为pst文件。(一般该文件在共享文档\shared mcamx5\MILL\Posts\MPFAN.pst)根据本人多年使用经验,初次安装后后处理有以下几点要修改。 (1)默认后处理去掉第四轴A0的输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索Rotary Axis Settings,找到rot_on_x:1#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 改成rot_on_x:0#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 就可以关闭四轴,没有A0输出。 (2)去掉程序开头的注释输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索"%",找到 "%",e$ sav_spc=spaces$ spaces$=0 中间略掉 spaces$=sav_spc 改成 "%",e$ sav_spc=spaces$ spaces$=0 *progno$,sopen_prn,sprogname$,sclose_prn,e$ #sopen_prn,"PROGRAM NAME-",sprogname$,sclose_prn,e$ #sopen_prn,"DATE=DD-MM-YY-",date$,"TIME=HH:MM-",time$, sclose_prn,e$#Date and time output Ex.12-02-0515:52 #sopen_prn,"DATE-",month$,"-",day$,"-",year$,sclose_prn, e$#Date output as month,day,year-Ex.02-12-05 #sopen_prn,"DATE-",*smonth,"",day$,"",*year2,sclose_prn, e$#Date output as month,day,year-Ex.Feb.122005 #sopen_prn,"TIME-",time$,sclose_prn,e$#24hour time output-Ex.15:52 #sopen_prn,"TIME-",ptime sclose_prn,e$#12hour time output 3:52PM spathnc$=ucase(spathnc$) smcname$=ucase(smcname$) stck_matl$=ucase(stck_matl$)

MASTERCAM的后置处理程序修改说明

MASTERCAM的后置处理程序设计 一、前言 数控自动编程分为以自动编程语言和以计算机绘图为基础的自动编程方法,两种方式都是经过刀位计算产生加工刀具路径文件,而不是数控程序。从加工刀具路径文件中提取相关的加工信息,并根据指定数控机床的特点及数控程序格式要求进行分析、判断和处理,最终形成数控机床能直接识别的数控程序,就是数控加工的后置处理(Post Processing)。 Mastercam是美国CNC Software.Inc公司开发的基于微机平台的CAD/CAM软件,侧重于数控加工,其曲线、曲面设计主要针对数控加工编程,它能完成2~5轴数控铣削加工编程、线切割加工编程和车削编程加工,在模具制造业中的应用非常广泛。该系统分为主处理程序和后置处理程序两大部分。主处理程序针对加工对象、加工系统建立三维模型,用图形交互的方法计算刀具运动轨迹,生成加工刀具路径文件(称为NCI文件)。NCI文件是一个用ASCII码编写的文件,包含产生NC程序的全部资料。该系统后置处理程序内定成适应日本FANUC控制器的通用格式,如FANUC 3M、FANUC 6M、FANUC 0—MC控制器等。 MV-610加工中心配置的数控系统是德国西门子SINUMERIK 810D,Mastercam软件生成的NC代码不能直接应用,还需人工做大量的修改,既不方便又易出差错。因此,有必要对MV-610加工中心开发专用的后置处理程序,发挥软件的CAM模块最佳效果。 本文根据Mastercam7.2c的通用后置处理程序,结合MV-610加工中心和SINUMERIK 810D系统的特点,设计出专用的后置处理程序,以便Mastercam生成的NC程序能直接用于加工生产。 二、Mastercam系统通用后置处理程序 Mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。 Mastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削加工参数、NC程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成: 1.注解 程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如: # mi2-Absolute, or Incremental positioning 0=absolute 1=incremental 表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。 在这一部分里,定义了数控系统编程的所有准备功能G代码格式和辅助功能M代码格式。 2.程序纠错 程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如: # Error messages (错误信息) psuberror # Arc output not allowed "ERROR-WRONG AXIS USED IN AXIS SUBSTITUTION", e 如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。 3.定义变量的数据类型、使用格式和常量赋值 如规定G代码和M代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是A、B和C,圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。 4.定义问题 可以根据机床加工需要,插入一个问题给后置处理程序执行。 如定义NC程序的目录,定义启动和退出后置处理程序时的C-Hook程序名。 5.字符串列表

对FANUC 0i的MasterCAM后处理修改

对FANUC 0i的MasterCAM后处理修改 2010-07-16 16:17 FANUC 0i MA系统配MasterCAM软件仍然是当今数控机床加工的主流搭配,因此本文对广大数控机床的编程与操作人员来讲,很有参考价值。文中所表述的思路、方法与程序都是作者在长期的工作实践中总结出来的,我们也欢迎广大读者在欣赏本文的同时,将你们有实用价值的技巧与心得写出来与大家共分享。 我们在利用MasterCAM为FANUC 0iMA系统做计算机编程的过程中发现,应用软件默认的FANUC后处理程序(Mpfan.pst)输出的刀路文件,需要大量的手工修改才能满足实际加工的需要。为了使CAM软件得到进一步推广应用,我们对MasterCAM9.0后置处理程序进行了编辑,使之应用得到了成功,大大提高了编程效率和程序质量,缩短了产品的制造周期,提高了产品的市场竞争力。『::好就好::中国权威模具网』 1. MasterCAM生成的后处理程序 在图1所示中,主要完成:(1)φ12立铣刀铣外形;(2)φ2中心钻打中心孔;(3)φ10钻头钻2-φ10孔的加工。 采用MasterCAM软件完成该零件的数控加工仿真后,应用后处理程序Mpfan.pst,生成的NC加工代码如下。 % O0000 (PROGRAM NAME-EXAMPLE1) (DATE=DD-MM-YY-11-07-04 TIME=HH:MM-08:41) N100G21 N102G0G17G40G49G80G90

(TOOL-1DIA.OFF.-1LEN.-1DIA.-12.) N104T1M6(φ12立铣刀铣外形) N106G0G90X-62.Y10.A0.S1000M3 N108G43H1Z50.M8 N110Z10. N112G1Z-10.F1000. N114G41D1X-50.F100. N116Y60. N118X-20. N120Y51. N122G3X-14.Y45.R6. N124G1X14. N126G3X20.Y51.R6. N128G1Y60. N130X50. N132Y10. N134X40.Y0. N136X-40. N138X-49.661Y9.661 N140G40X-58.146Y1.175 N142G0Z50. N144M5 N146G91G28Z0.M9 N148G28X0.Y0.A0. N150M01 (TOOL-2DIA.OFF.-2LEN.-2DIA.-2.) N152T2M6(φ2中心钻) N154G0G90G55X15.Y20.A0.S1500M3 N156G43H2Z3.M8 N158G1Z-3.F50. N160G0Z3. N162X65. N164G1Z-3. N166G0Z3. N168M5 N170G91G28Z0.M9 N172G28X0.Y0.A0. N174M01 (TOOL-3DIA.OFF.-3LEN.-3DIA.-10.) N176T3M6(φ10钻头钻2-φ10孔) N178G0G90G54X-25.Y20.A0.S1000M3

MASTERCAM后处理修改方法必看

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是G54。部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如MP_EZ.PST)可正常输出G54指令。由于FANUC.PST后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择Mpfan.PST文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, e 插入G54指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, "G54",e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90 修改后变为: N102G0G17G40G49G80G90G54 查找当前行的上一行: pbld, n, *smetric, e 将其整行删除,或加上“#”成为注释行:

MasterCAM9_修改后处理方式

MasterCAM9后处理的修改 MasterCAM系统缺省的后处理文件为MPFAN.PST,适用于FANUC(发那科)数控代码的控制器。其它类型的控制器需选择对应的后处理文件。 由于实际使用需要,用缺省的后处理文件时,输出的NC文件不能直接用于加工。原因是:以下内容需要回复才能看到 ⑴进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是G54。部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 ⑵FANUC.PST后处理文件针对的是4轴加工中心,而目前使用量最大的是3轴加工中心,多出了第4轴数据“A0.”。 ⑶不带刀库的数控铣使用时要去掉刀具号、换刀指令、回参考点动作。 ⑷部分控制器不接受NC文件中的注释行。 ⑸删除行号使NC文件进一步缩小。 ⑹调整下刀点坐标值位置,以便于在断刀时对NC文件进行修改。 ⑺普通及啄式钻孔的循环指令在缺省后处理文件中不能输出。使用循环指令时可大幅提高计算速度,缩小NC文件长度。 如果要实现以上全部要求,需对NC文件进行大量重复修改,易于出现差错,效率低下,因此必须对PST(后处理)文件进行修改。修改方法如下: 1、增加G54指令(方法一): 采用其他后处理文件(如MP_EZ.PST)可正常输出G54指令。由于FANUC.PST后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 用MC9自带的编辑软件(路径:C:\Mcam9\Common\Editors\Pfe\ PFE32.EXE)打开FANUC.PST文件(路径:C:\Mcam9\Mill\Posts\ MPFAN.PST) 单击【edit】→【find】按钮,系统弹出查找对话框,输入“G49”。 查找结果所在行为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, e 插入G54指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, "G54",e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90 修改后变为: N102G0G17G40G49G80G90G54 查找当前行的上一行:

MASTERCAM后处理修改方法必看

M A S T E R C A M后处理修改方法必看 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是 G54。 部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~ G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如)可正常输出G54指令。由于后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, e 插入G54指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, "G54",e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90

修改后变为: N102G0G17G40G49G80G90G54 查找当前行的上一行: pbld, n, *smetric, e 将其整行删除,或加上“#”成为注释行: # pbld, n, *smetric, e 修改后G21指令不再出现,某些控制器可不用此指令。注意修改时保持格式一致。G21指令为选择公制单位输入,对应的英制单位输入指令为G20。 2、增加G54指令(方法二):? 单击"查找"按钮,系统弹出查找对话框,输入“force_wcs”,单击"FIND NEXT" 按钮,查找结果所在行为:? force_wcs : no #Force WCS output at every toolchange? 将no改为yes,修改结果为:? force_wcs : yes #Force WCS output at every toolchange? 输出的NC文件修改前对应位置指令为:? 修改后变为:? 前一方法为强制输出固定指令代码,如需使用G55~G59指令时,有所不便。多刀路同时输出时,只在整个程序中出现一次G54指令。后一方法同其他后处理文件产生G54指令的原理相同,多刀路同时输出时,每次换刀都会出现G54指令,也可根据参数自动转换成G55~G59指令。? 输出三轴加工中心程序的FANUC后处理文件为,输出4轴加工中心程序的三菱控制器后处理文件为。? ⑵后处理文件针对的是4轴加工中心,而目前使用量最大的是3轴加工中心,多出了第4轴数据“A0.”。?

MASTERCAM后处理的设置和参数修改

MASTERCAM后处理的设置和参数 修改 后置处理文件简称后处理文件,MASTERCAM后置处理文件是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为.PST。安装MASTERCAM时系统会自动安装默认的后处理为MPFAN.PST.在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,如果没有全部更正,则可能造成事故. MASTERCAM提供了不同系列的后处理文件,它们在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下部分: 1)注释部分。对后处理文件及其设定方法作一般性介绍.此部分内容一般都不用更改. 以下是截取的部分注释:(注释前都带#号,系统在执行代码处理时是不会读取前面带#号的语句的.) # Post Name : MPFAN # Product : MILL # Machine Name : GENERIC FANUC # Control Name : GENERIC FANUC

# Description : GENERIC FANUC MILL POST # Associated Post : NONE # Mill/Turn : NO # 4-axis/Axis subs. : YES # 5-axis : NO # Subprograms : YES # Executable : MP v9.0 # # WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO # THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE. 2) 系统程序规划部分(Debugging and Factory Set Program Switches)。此部分是MASTERCAM版本的后处理系统规划,每个版本都大同小异,一般不需更改.以下截取的是9.0版的) m_one : -1 #Define constant zero : 0 #Define constant one : 1 #Define constant two : 2 #Define constant three : 3 #Define constant four : 4 #Define constant

Mastercamx后处理

Mastercam 是一套应用广泛的CAD/CAM/CAE软件包,它采用图形交互式自动编程方法实现NC 程序的编制。交互式编程是一种人机对话的编程方法,编程人员根据屏幕提示的内容,反复与计算机对话,选择菜单目录或回答计算机的提问,直至将所有问题回答完毕,系统即可自动生成NC程序。NC程序的自动产生是受软件的后置处理功能控制的,不同的加工模块(如车削、铣削和线切割等) 和不同的数控系统对应不同的后处理文件。软件当前使用哪一个后处理文件,是在软件安装时设定的,而在具体应用软件进行编程之前,一般还需对当前的后处理文件进行必要的修改和优化,以使其符合系统要求和使用者的编程习惯。有些用户在使用软件时,由于不了解情况,没有对后处理文件进行修改,导致生成的N C程序中某些固定的地方经常出现一些多余的内容,或者总是漏掉某些词句。解决这类问题,一般都需要在将程序传入数控机床之前,对程序进行手工修改,如果没有全部更正,则可能造成事故。例如,在数控编程中可以去掉程序行号,以控制程序文件大小,便于文件的快速上传。又如,更改某些不同系统的不同程序代码,或限定主轴和进给速度的最大与最小极限速度。再如,确定立式和卧式机床型号等。本文介绍了Mastercam 后处理文件的内容以及修改和设置的方法,供有关人员参考。 一、启动Mastercam 软件的修改文件 以铣削为例,在安装的MaterCAM根目录下,采用记事本打开MPFAN.pst 文件(位置为“ D:\mcamx\mill\Posts\MPFAN. pst”)。图1所示即为该文件。 后置处理文件简称后处理文件,是一种可以由用户以回答问题的形式自行修改的文件,其扩展名为“.PST”。在应用Mastercam软件的自动编程功能之前,必须先对这个文件进行编辑,才能在执行后处理程序时产生符合某种控制器需要和使用者习惯的NC程序,也就是说,后处理程序可以将一种控制器的NC程序,定义成该控制器所使用的格式。以FANUC系列的后处理系统为例,MPFAN后处理文件针对的是4轴加工中心,下面我们来优化FANUC 3M控制器所使用的格式。注意:不同系列的后处理文件,在内容上略有不同,但其格式及主体部分是相似的,一般都包括以下四个部分。

mastercam后处理修改

MasterCAM 后处理修改特殊技巧一.1 MasterCAM 后处理修改特殊技巧: Scrollex EDIT 另外:输出字母的大小写修改方式不知如何更改。注:若要修改下述相应功能则直接查找红色下划线语句即可。 ①、 MasterCAM 后处理输出文件格式设置 sextnc MIN #NC Program Extension for Okuma 上述语句表示输出格式为 MIN 格式。若没有可以新建。“.Trun”格式表示车床专用。需要的格式修改 MIN 即可,如MPF,NC,H,TXT 等这样就不必每次为输出什么样的格式费神了。我就经常用 MPF 和NC、H 几种格式,为每种格式编制一个后处理或通用一个均比较方便。 ②、“Arcoutput”控制语句控制圆弧输出格式,设置值若为“0”表示输出为“IJK” 格式;若设置值为“1”则输出圆弧格式为“R”。 “ arctype”控制输出圆弧类型,若为“1”则表示由圆心确定;若为“2”则表示由起点(Start)指向圆心(Center), 2=St-Ctr;若为“3”表示由圆心指向起点, 3=Ctr-St;若为“4”表示非增量。 arcoutput : 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180 arctype : 1 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St , 4=unsigned inc. ③、“Omitseq”控制语句控制序列号输出,若设置值为“Yes”则忽略序列号,不 输出,若设置值为“No”则不忽略即输出序列号。 ④、“Spaces”控制语句控制空格输出,若设置值为“0”表示不输出空格即紧凑输出,若设置值为“1”表示输出空格即在每个“X,Y,R,F”等控制语句前加一空格。 ⑤、若要查找每一条输出语句的作用及位置则在输出语句后加上标语句即可。一般输出语句的格式为: pbld, n, "M6", e(其中pbld 为输出开头,n 为序列号,“”引号内为直接输出字符,e 为结束语句。 下面语句为程序号输出格式: fmt O 4 progno #Program number #fmt ":" 4 progno #Program number #表示注释语句的开始,fmt 是格式定义,O 表示输出程序开头为 O,若开头为 PR 或 P 时只需要改 O 为需要的程序开头即可。这里的 4 表示程序号长度为 4 个字节。其它用 fmt 格式定义的语句也一样,可用此法修改想改的部分即可得到需要的输出结果。比如要求输出的G01变为L格式(即从ISO格式转化为Heidenhain 格式)数据的读入: *progno:从 MasterCAM 图形中读入程序号 scomm:从 MasterCAM 图形中读入注释文本 *t:从MasterCAM 图形中读入刀具号 *tnote, *toffnote, *tlngnote, *tldia:从 MasterCAM 图形中读入刀具直径 date:从 MasterCAM 图形中读入日期

慢走丝之统赢操作说明及后处理修改说明

慢走丝之统赢操作说明及后处理修改说明 NC程式中出現的補正編號是由變數90的控制,可以將#8更換為#90﹐Variable 90 = H20,abs,modal,integer,init/0.; Offset code :;;Offset Compensation Number #8與#90的區別,(根據客戶需要采用變數控制) #8的補正編號是由系統自動累加1,從H01﹒H02﹒H03﹒﹒﹒﹒H99﹒﹒﹒ #90的補正編號是由DBF檔案資料庫與條件組補正編號控制﹐變動性較#8大﹐可以這選圖元時隨時改變補正編號 #90補正編號可參考WPCAM﹒DBF檔案資料 原Variable D = H10,init/0,not_modal,ex:H01,H02 修改后Variable D = D10,init/0,not_modal,ex01,D02(也可以修改成其他字母代碼 全世界慢走丝,中走丝,快走丝“常用中英词汇表” 慢走丝名 三菱Mitsubishi 牧野Makino 兄弟Brother 日立 Hitachi 西部Seibu 沙迪克Sodlck 法那科,富士通。Fanuc 积柏时Japax 欧安? 夏米尔洽米尔Charmiles 阿奇Agie GF阿奇夏米尔GF Agie-Charmills 庆鸿Chmer 徕通Legend 京美Centech 美新?健升?秀丰?亚特?美溪? 杜芬?联盛?

三光科技Sanguang Technoloies 汉川?三光沙迪克 Sanguang Sodlck 北京阿奇? 中特?宝码?上海通用?安德? 编程系统 Esprit 无中文名你能取一个MasterCam 无中文名Ycut 立先Wpcam 统羸 机台性能: 最大工件尺寸Max workpiece size 最大工件重量Max workpiece weight X和Y轴行程X/Y Travel U,Vl轴行程U,V Treavl Z轴行程Z Travel 机械重量Net Wight 机头移动距离Machine Head movement 电极直径Electrode pipe diameter 加工液容量Fluid capacity 加工液Dielectric fluid 加工电源Input power 最大加工电流Max machineing current 机械高度Machine height 机台尺寸Machine size 机器特性Features 穿线方法Thread type 半自动穿线Semi-auto thread 自动穿线Automatic thread 驱动器Driver 伺服马达Servo motor 光栅尺位置检出装置 Liner scale Positioning 线张力Wire tension 线速Wire feed 垂直度Perpendicularity 锥度Taper 斜度Oblique 过滤方式Filtering element 纯水供液系统Pure water supply unit 离子交换Ionexchange 冷却系统Coolant system 控制轴Axis control 最小设定单位Min setting 最小移动单位Min movment 程序储存Program storage 轴旋转Axis rotating 镜像 Mirror 线径补偿Offset 倍率scale 自动园角 corner path 转角暂停corner pause 加工电源Power supply 放电回路Discharge loop 电流current 停止时间Off time 放电时间On time 辅助电流Auxiliary current 辅助停止时间Auxiliary off time 伺服

mastercam后处理修改

MasterCAM后处理修改特殊技巧一.1 MasterCAM后 处理修改特殊技巧: Scrollex EDIT 另外:输出字母的大小写修改方式不知如何更改。 注:若要修改下述相应功能则直接查找红色下划线语句即可。 ①、 MasterCAM后处理输出文件格式设置 sextnc MIN #NC Program Extension for Okuma 上述语句表示输出格式为MIN格式。若没有可以新建。“.Trun”格式表示车床专用。需要的格式修改MIN即可,如MPF,NC,H,TXT等这样就不必每次为输出什么样的格式费神了。我就经常用MPF和NC、H几种格式,为每种格式编制一个后处理或通用一个均比较方便。 ②、“Arcoutput”控制语句控制圆弧输出格式,设置值若为“0”表示输出为“IJK”格式;若设置值为 “1”则输出圆弧格式为“R”。“arctype”控制输出 圆弧类型,若为“1”则表示由圆心确定;若为“2”则表示由起点(Start)指向圆心(Center),2=St- Ctr;若为“3”表示由圆心指向起点,3=Ctr-St;若为“4”表示非增量。 arcoutput : 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180 arctype : 1 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St , 4=unsigned inc.

③、“Omitseq”控制语句控制序列号输出,若设置值为“Yes”则忽略序列号,不输出,若设置值为“No”则不忽略即输出序列号。 ④、“Spaces”控制语句控制空格输出,若设置值为“0”表示不输出空格即紧凑输出,若设置值为“1”表示输出空格即在每个“X,Y,R,F”等控制语句前加一空格。 ⑤、若要查找每一条输出语句的作用及位置则在输出语句后加上标语句即可。一般输出语句的格式为:pbld, n, "M6", e(其中pbld为输出开头,n为序列号,“”引号内为直接输出字符,e为结束语句。 下面语句为程序号输出格式: fmt O 4 progno #Program number #fmt ":" 4 progno #Program number #表示注释语句的开始,fmt是格式定义,O表示输出程序开头为O,若开头为PR或P时只需要改O为需要的程序开头即可。这里的4表示程序号长度为4个字节。其它用fmt格式定义的语句也一样,可用此法修改想改的部分即可得到需要的输出结果。比如要求输出的G01变为L格式(即从ISO格式转化为Heidenhain格式) 数据的读入: *progno:从MasterCAM图形中读入程序号 scomm:从MasterCAM图形中读入注释文本 *t:从MasterCAM图形中读入刀具号 *tnote, *toffnote, *tlngnote,

MasterCAM9.1车床后处理MPLFAN.PST的修改方法

A程式是自带后处理出的,B程式是改后的后处理出的。 本人并非专业编程人员,对编程只是知道些皮毛。同事叫我帮忙修改一下MasterCAM9.1的后处理,因为每次都要手工修改,很麻烦,还怕出错。在网上找了好久都找不到关于MasterCAM车床后处理的修改方法,只好自己慢慢研究……最终还是改好了,能正常使用。但我毕竟不是专业人氏,也不知会不会出现意外的情况,希望懂的人可以指正。 声明:此后处理适用MasterCAM 9.1,其它版本请自行研究。如何要使用此后处理,请务必核对程式!凡使用此后处理一切后果自负!(经反馈,两段程式合并一起处理时,会出现换刀指令!如不用刀库的必须注意!) 找到车床的后处理文件MPLFAN.PST(位于Mcam9\Lathe\Posts\),复制一份出来放在同目录,改好自己喜欢的名字,打开修改。以下是修改记录。(黄色底纹是修改过的,注意对比源文件) force_wcs : no #删除程式中的G54,默认是yes。 #去除程式中的M08、M09(冷却液开关) #fstrsel sm09 coolant scoolant #程序名,日期,时间等 # *progno, e #去除程序名 # pbld, n, *smetric, e #去除G21 "(-", progname,".NC", "- ", date, ")", e #程度名和日期,随意更改 #删除程式中的刀具和刀片描述 # ptoolcomment # comment #删除程式中的“G0 T0202(刀具号)” # pbld, n, *sgcode, *toolno, e #以下两段调换顺序,可以调换“G0快速定位”和“主轴转动”的顺序。黄色的第一段输出“快速定位和冷却开关”。 sav_absinc = absinc if home_type > one, absinc = zero pcan1, pbld, n, psccomp, *sgcode, pwcs, pfxout, pyout, pfzout, pfscool, strcantext, e if lcc_cc_pos, plcc_cc_pos #Use sav_xa to position with comp. LCC pcom_movea #Update previous, pcan2 ps_inc_calc #Reset current absinc = sav_absinc #Added for 'css_start_rpm' logic (09/05/01) if css_actv, [ if css_start_rpm, prpm # Direct RPM startup for programmed CSS else, pcssg50, pcss # NO RPM start - just output the CSS ] else, # Direct RPM was programmed

Mastercam后置处理文件及其设定方法详细说明

Mastercam后置处理文件及其设定方法详细说明 mastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。 mastercam系统后置处理文件的扩展名为pst,称为pst文件,它定义了切削加工参数、nc程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成: 1.注解 程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如: # mi2-absolute, or incremental positioning 0=absolute 1=incremental 表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。 在这一部分里,定义了数控系统编程的所有准备功能g代码格式和辅助功能m代码格式。 2.程序纠错 程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如: # error messages (错误信息) psuberror # arc output not allowed "error-wrong axis used in axis substitution", e 如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。 3.定义变量的数据类型、使用格式和常量赋值 如规定g代码和m代码是不带小数点的两位整数,多轴加工中心的旋转轴的地址代码是a、b和c,圆弧长度允许误差为0.002,系统允许误差为0.00005,进给速度最大值为10m/min等。 4.定义问题 可以根据机床加工需要,插入一个问题给后置处理程序执行。 如定义nc程序的目录,定义启动和退出后置处理程序时的c-hook程序名。 5.字符串列表 字符串起始字母为s,可以依照数值选取字符串,字符串可以由两个或更多的字符来组成。 字符串sg17,表示指定xy加工平面,nc程序中出现的是g17,scc1表示刀具半径左补偿,nc程序中出现的是g41,字符串sccomp代表刀具半径补偿建立或取消。 6.自定义单节 可以让使用者将一个或多个nc码作有组织的排列。 自定义单可以是公式、变量、特殊字符串等: pwcs # g54+ coordinate setting at toolchange if mil >1, pwcs_g54 表示用pwcs单节指代#g54+在换刀时坐标设定值,mil定义为工件坐标系(g54~g59) 7.预先定义的单节 使用者可按照数控程序规定的格式将一个或多个nc代码作有组织的排列,编排成一条程序段。

mastercam后处理修改

m a s t e r c a m后处理修改 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

MasterCAM后处理修改特殊技巧一.1 MasterCAM后处理修改特殊技巧: Scrollex EDIT 另外:输出字母的大小写修改方式不知如何更改。 注:若要修改下述相应功能则直接查找红色下划线语句即可。 ①、 MasterCAM后处理输出文件格式设置 sextnc MIN #NC Program Extension for Okuma 上述语句表示输出格式为MIN格式。若没有可以新建。“.Trun”格式表示车床专用。需要的格式修改MIN即可,如MPF,NC,H,TXT等这样就不必每次为输出什么样的格式费神了。我就经常用 MPF和NC、H几种格式,为每种格式编制一个后处理或通用一个均比较方便。 ②、“Arcoutput”控制语句控制圆弧输出格式,设置值若为“0”表示输出为“IJK”格式;若设置值为“1”则输出圆弧格式为“R”。“arctype”控制输出圆弧类型,若为“1”则表示由圆心确定;若为“2”则表示由起点(Start)指向圆心(Center),2=St-Ctr;若为“3”表示由圆心指向起点,3=Ctr-St;若为“4”表示非增量。 arcoutput : 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180 arctype : 1 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St , 4=unsigned inc. ③、“Omitseq”控制语句控制序列号输出,若设置值为“Yes”则忽略序列号,不输出,若设置值为“No”则不忽略即输出序列号。 ④、“Spaces”控制语句控制空格输出,若设置值为“0”表示不输出空格即紧凑输出,若设置值为“1”表示输出空格即在每个“X,Y,R,F”等控制语句前加一空格。 ⑤、若要查找每一条输出语句的作用及位置则在输出语句后加上标语句即可。一般输出语句的格式为: pbld, n, "M6", e(其中pbld为输出开头,n为序列号,“”引号内为直接输出字符,e为结束语句。 下面语句为程序号输出格式: fmt O 4 progno #Program number #fmt ":" 4 progno #Program number #表示注释语句的开始,fmt是格式定义,O表示输出程序开头为O,若开头为PR或P时只需要改O为需要的程序开头即可。这里的4表示程序号长度为4个字节。其它用fmt格式定义的语句也一样,可用此法修改想改的部分即可得到需要的输出结果。比如要求输出的G01变为L格式(即从ISO格式转化为Heidenhain格式) 数据的读入: *progno:从MasterCAM图形中读入程序号 scomm:从MasterCAM图形中读入注释文本 *t:从MasterCAM图形中读入刀具号 *tnote, *toffnote, *tlngnote, *tldia:从MasterCAM图形中读入刀具直径 date:从MasterCAM图形中读入日期 time:从MasterCAM图形中读入时间 *speed:从MasterCAM图形中读入主轴速度

相关文档
最新文档