MasterCAM9后处理的修改1_第1页
MasterCAM9后处理的修改1_第2页
MasterCAM9后处理的修改1_第3页
MasterCAM9后处理的修改1_第4页
MasterCAM9后处理的修改1_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页MasterCAM9后处理的修改2019年10月25日星期四11:42

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:Mcam9CommonEditorsPfe

PFE32.EXE)打开FANUC.PST文件(路径:C:Mcam9MillPostsMPFAN.PST)

选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择Mpfan.PST文件,系统弹出如下图所示编辑器。

单击按钮,系统弹出查找对话框,输入“G49”,如下图所示:

单击按钮,查找结果所在行为:

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”,单击按钮,查找结果所在行为:

force_wcs:no#ForceWCSoutputateverytoolchange?

将no改为yes,修改结果为:

force_wcs:yes#ForceWCSoutputateverytoolchange?

输出的NC文件修改前对应位置指令为:

N106G0G90X16.Y-14.5A0.S2200M3

修改后变为:

N106G0G90G54X16.Y-14.5A0.S2200M3

前一方法为强制输出固定指令代码,如需使用G55~G59指令时,有所不便。多刀路同时输出时,只在整个程序中出现一次G54指令。后一方法同其他后处理文件产生G54指令的原理相同,多刀路同时输出时,每次换刀都会出现G54指令,也可根据参数自动转换成G55~G59指令。

输出三轴加工中心程序的FANUC后处理文件为MP_EZ.PST,输出4轴加工中心程序的三菱控制器后处理文件为MP520AM.PST。

3、删除第四轴数据“A0.”,以适应三轴加工中心:

单击按钮,系统弹出查找对话框,输入“RotaryAxis”,单击按钮,查找结果所在行为:

164.EnableRotaryAxisbutton?y

将其修改为:

164.EnableRotaryAxisbutton?n

修改后第四轴数据不再出现。

4、删除刀具号、换刀指令、回参考点指令,适应无刀库的数控铣机床:

单击按钮,系统弹出查找对话框,输入“M6”,单击按钮,查找结果所在行为:

ifstagetool>=zero,pbld,n,*t,"M6",e

将其修改为:

ifstagetool>=zero,e#pbld,n,*t,"M6",

另一个换刀的位置所在行为:

pbld,n,*t,"M6",e

将其删除或改为注释行:

#pbld,n,*t,"M6",e

修改后换刀指令行不再出现,通常修改第一个出现“M6”指令的位置即可。

单击按钮,系统弹出查找对话框,输入“*sg28ref”,单击按钮,查找结果所在行为:

pbld,n,sgabsinc,sgcode,*sg28ref,"Z0.",scoolant,e

pbld,n,*sg28ref,"X0.","Y0.",protretinc,e

将其修改为:

pbld,n,scoolant,e

#pbld,n,*sg28ref,"X0.","Y0.",protretinc,e

输出的NC文件修改前对应位置指令为:

N116G91G28Z0.M9

修改后变为:

N116M9

PST文件中另有两个类似位置,如使用G92指令确定工件坐标,可对其适当修改。加工结束后,机床各轴不回参考点,便于手动换刀时节省时间。

5、删除NC文件的程序名、注释行:

单击按钮,系统弹出查找对话框,输入“%”,单击按钮,查找结果所在行为:

"%",e

*progno,e

"(PROGRAMNAME-",progname,")",e

"(DATE=DD-MM-YY-",date,"TIME=HH:MM-",time,")",e

将其删除或改为注释行:

"%",e

#*progno,e

#"(PROGRAMNAME-",progname,")",e

#"(DATE=DD-MM-YY-",date,"TIME=HH:MM-",time,")",

输出的NC文件修改前对应位置指令为:

O0010

(PROGRAMNAME-A2)

(DATE=DD-MM-YY-25-12-04TIME=HH:MM-10:45)

修改后以上指令行不再出现。

单击按钮,系统弹出查找对话框,输入“pstrtool”,单击按钮,查找结果所在行为:

"(",pstrtool,*tnote,*toffnote,*tlngnote,*tldia,")",e

将其删除或改为注释行:

#"(",pstrtool,*tnote,*toffnote,*tlngnote,*tldia,")",e

输出的NC文件修改前对应位置指令为:

(D16R8.0TOOL-2DIA.OFF.-0LEN.-0DIA.-16.)

修改后以上指令行不再出现。此注释行指明当前刀路所使用的刀具参数,可用于加工前核对加工单,建议保留。法兰克及三菱控制器可以接受注释内容。

6、取消行号:

单击按钮,系统弹出查找对话框,输入“omitseq”,单击按钮,查找结果所在行为:

omitseq:no#Omitsequenceno.

将其修改为:

omitseq:yes#Omitsequenceno.

修改后行号不再出现。

7、调整下刀点坐标值位置:

单击按钮,系统弹出查找对话框,输入“g43”,单击按钮,查找结果所在行为:

pcan1,pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,

pfcout,*speed,*spindle,pgear,strcantext,e

pbld,n,"G43",*tlngno,pfzout,scoolant,next_tool,e

将其修改为:

pcan1,pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,e

pbld,n,*sgcode,pfzout,e

pbld,n,*speed,*spindle,pgear,strcantext,e

pbld,n,"G43",*tlngno,scoolant,next_tool,e

输出的NC文件修改前对应位置指令为:

G0G90G54X16.Y-14.5S2200M3

G43H0Z20.M8

修改后变为:

G0G90G54X16.Y-14.5

G0Z20.

S2200M3

G43H0M8

新的指令顺序使下刀点(安全高度)x、y、z坐标值同其他指令分开,易于在断刀时修改。G43指令在PST文件中有两个位置,如仅使用G54指令时,修改第一个出现“G43”的位置即可。

8、输出普通及啄式钻孔循环指令:

单击按钮,系统弹出查找对话框,输入“usecandrill”,单击按钮,查找结果相关行为:

usecandrill:no#Usecannedcyclefordrill

usecanpeck:no#UsecannedcycleforPeck

将其修改为:

usecandrill:yes#Usecannedcyclefordrill

usecanpeck:yes#UsecannedcycleforPeckMastercam系统配置的是适应单一类型控制系统的通用后置处理,该后置处理提供了一种功能数据库模型,用户根据数控机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数控机床的专用后置处理程序。

Mastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削加工参数、NC程序格式、辅助工艺指令,设置了接口功能参数等,其结构由八个部分组成:

1.注解

程序每一列前有“#”符号表示该列为不影响程序执行的文字注解。如:

#mi2-Absolute,orIncrementalpositioning

0=absolute

1=incremental

表示mi2定义编程时数值给定方式,若mi=0为绝对值编程,mi=1为增量值编程。

在这一部分里,定义了数控系统编程的所有准备功能G代码格式和辅助功能M代码格式。

2.程序纠错

程序中可以插入文字提示来帮助纠错,并显示在屏幕上。如:

#Errormessages(错误信息)

psuberror#Arcoutputnotallowed

"ERROR-WRONGAXISUSEDINAXISSUBSTITUTION",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+coordinatesettingattoolchange

ifmil>1,pwcs_g54

表示用pwcs单节指代#G54+在换刀时坐标设定值,mil定义为工件坐标系(G54~G59)

7.预先定义的单节

使用者可按照数控程序规定的格式将一个或多个NC代码作有组织的排列,编排成一条程序段。

8.系统问答

后置处理软件提出了五组问题,供使用者回答,可按照注解文字、赋值变量、字符串等内容,根据使用的机床、数控系统进行回答。设计后置处理文件,一般是按照NC程序的结构模块来进行。根据NC程序的功能,后置处理文件分成六个模块如下:

1.文件头

文件头部分设定程序名称和编号,此外,SINUMERIK810D系统还必须指定NC程序存放路径,并按照以下格式输出:

“%_N_(程序名及编号)_(路径)”。

NC程序可存放在主程序、子程序和工作程序目录下,扩展名分别为:MPF、SPF、WPD,一般放在工作程序目录下。因此经修改的Pst文件格式为:

Pheader#Startoffile

"%_N_",progname,"_WPD"(程序名、存放目录)

2.程序起始

在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿、主轴转速控制、冷却液控制等,并可显示编程者、编程日期、时间等注解。

修改后的有刀具号Pst文件开头格式如下:

#Startofnon-zerotoolnumber

pspindle(主轴转速计算)

pcom_movbtl(移动设备)

ptoolcomment(刀具参数注解)

pbld,n,*sgcode,*sgplane,"G40","G80",*sgabsinc

(快进、XY加工平面、取消刀补、取消固定循环、绝对方式编程)

ifmil<=one,pg92_rtrnz,pg92_rtrn,pg92_g92(返回参考点)

pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,*spindle,pgear,pcan1

(快进至某位置、坐标系编置、主轴转速等)

pbld,n,pfzout,*tlngno,scoolant,[ifstagetool=one,*next_tool]

(安全高度、刀长补偿、开冷却液)

pcom_movea(加工过程)

3.刀具交换

刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具长度补偿、安全设定、主轴转速控制。

Pst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:

Ptlchg#Toolchange

ptoolcomment(新刀参数注解)

comment(插入注解)

ifstagetool<>two,pbld,n,*t,e(判断、选刀)

n,"M6"(换刀)

pindex(输出地址)

pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,pfcout,*speed,*spindle,pgear,pcan1

(快进至某位置、坐标系偏置、主轴转速等)

pbld,n,pfzout,*tlngno,"M7",[ifstagetool=one,*next_tool]

(安全高度、刀长补偿号、开冷却液)

pcom_movea(加工过程)

4.加工过程

这一过程是快速移动、直线插补、圆弧插补、刀具半径补偿等基本加工动作。

对于几乎所有系统,这些加工动作的程序指令基本相同。只是注意SINUMERIK810D系统的刀具长度补偿值由字母D后加两位数字调用,不需要G43/G44指令;而半径补偿值则由G41/G42调用,不需要再接地址代码。用G40取消刀具长度和刀具半径补偿。

5.切削循环

Mastercam软件提供了6种内定的孔加工固定循环方式:一般钻削(Drill/Cbore)、深孔啄钻(PeckDrill)、断屑钻(ChipBreak)、右攻丝(Tap)、精镗孔(Bore#1)、粗镗孔(Bore#2),通过杂项选项(Misc#1/Misc#2)可设定左攻丝、背镗孔、盲孔镗孔、盲孔铰孔等循环,并采用G73~G89代码来表示。

如对于深孔钻削固定循环,Mastercam采用的格式为:G83X_Y_Z_R_Q_F;而SINUMERIK810D系统用CYCLE83指代深孔钻削循环,其NC程序要求给出循环加工所有参数,输出格式为:

CYCLE83(RTP,RFP,SDIS,DP,DPR,FDEP,FDPR,DAM,DTB,DTS,FRF,VARI)

在pst文件中需按SINUMERIK810D系统格式进行定义、修改和编写。

6.程序结尾

程序结尾一般情况下是取消刀补、关冷却液、主轴停止、执行回参考点,程序停止等动作。下面是修改后的pst程序结尾:

Ptoolend_t#Endoftoolpath,toolchange

pbld,n,sccomp,"M5",*scoolant,e(取消刀补、主轴停止、关冷却液)

pbld,n,*sg74,"Z1=0.X1=0.Y1=0.",e(返回参考点)

ifmi2=one,pbld,n,*sg74,"X1=0.","Y1=0.",protretinc,e

else,protretabs(程序结束)

#POST名称

:wgkG54

#类型

:MILL

#机床名称

:GENERICFANUC

#控制器名称

:GENERICFANUC

#描述

:GENERICFANUC3AXISMILLPOST

#AssociatedPost

:NONE

#车/铣复合

:NO

#4-axis/Axissubs.

:NO

#五轴

:NO

#子程序支持

:NO

#自动换刀

:NO

#工作坐标系

:G54

#Executable

:MP8.00

#

#

#

#这个POST支持FANUC控制器普通三轴铣床的的G代码输出,

#不支持自动换刀,有最大圆弧报警

#它来源于MP-EZ.PST

#是针对MastercamMillV8的特征而设计的

#

##

#修改日志:

#

#ProgrammersNote:

#CNC05/01/00

-

Initialpostsetup,jce

#

2019-10-11

-

去掉自动换刀,xxx

#

2019-10-12

-

增加中文注释,xxx

#

2019-10-21

-

增加最大圆弧警告,xxx

#

2019-11-05

-

修改坐标系为G54,xxx

#

#特征:

#

#

#

#下列Misc.(杂项)必须使用整数:

#

#mi2-绝对或增量坐标attoplevel

#

0=绝对

#

1=增量

#

#mi3-选择G28或G30来执行参考点回归.

#

0=G28,1=G30

#

#Cannedtext:

#

在轮廓点里插入"cantext".以允许/禁止下列Mastercam里许可的功能,

#

EnteringcantextonacontourpointfromwithinMastercamallowsthe

#

followingfunctionstoenable/disable.

#

Cantext值:

#

1=Stop=输出"M00"停止码

#

2=Ostop=

输出"M01"选择停止码

#

3=Bldon=在NC单节打开单节删除码(\)

#

4=bLdoff=在NC单节关闭单节删除码(\)

#

#

#钻孔:

#在这个POST里支持所有的钻孔方法.

#

#附加注意事项:

#1)G54callsaregeneratedwheretheworkoffsetentryof0=G54,

#

1=G55,etc.

#2)由NCI变量"met_tool"决定是否使用米制

#

#3)以增量方式从换刀起始位置计算运动量.

#

起始位置通常定义为所有换刀时刀具所处的最后位置

#

Incrementalmodecalculatesmotionfromhomepositionattoolchanges.

#

Thehomepositionisusedtodefinethelastpositionofthetool

#

foralltoolchanges.

#4)变量'absinc'现已被预先定义,设定mi2(杂项整数)以定义

#

绝对/增量程序输出.

#

#

#DebuggingandFactorySetProgramSwitches

调试和加工设置程序切换

#

m_one

:-1

#定义常数

zero

:0

#定义常数

one

:1

#定义常数

two

:2

#定义常数

three

:3

#定义常数

four

:4

#定义常数

five

:5

#定义常数

c9k

:9999

#定义常数

fastmode

:1

#Posting速度最佳化

bug1

:2

#0=不显示,1=普通列表框,2=编辑器

bug2

:-30

#Appendpostlinelabels,non-zeroiscolumnposition?

bug3

:0

#Appendwhatlineno.toeachNCline?

bug4

:1

#AppendNCIlineno.toeachNCline?

whatno

:yes

#不执行whatlinebranches(分枝)?(leaveasyes)

get_1004

:1

#Findgcode1004withgetnextop?

rpd_typ_v7

:0

#UseVersion7stylecontourflags/processing?

strtool_v7

:2

#UseVersion7+toolname?

tlchng_aft

:2

#Delaycalltotoolchangeuntilmoveline

cant_tlchng:1

#忽视cantext入口onmovewithtlchng_aft

newglobal

:1

#全局变量错误检测

getnextop

:0

#建立下一个变量表

#

#

一般输出设置

#

sub_level

:1

#允许自动子程序支持

breakarcs

:no

#在各象限分割圆弧

arcoutput

:0

#0=IJK,1=R不带符号,2=R(超过180度时带负号)

arctype

:2

#圆弧中心1=abs,2=St-Ctr,3=Ctr-St,4=unsignedinc.

arccheck

:1

#检测小圆弧,转化为直线

atol

:.01

#arccheck=2时的角度公差

ltol

:.002

#arccheck=1时的长度公差

vtol

:.0001

#系统公差

maxfeedpm

:500

#进给速度极限(英寸/分钟)

ltol_m

:.05

#arccheck=1时的长度公差,米制

vtol_m

:.0025

#系统公差,米制

maxfeedpm_m:10000

#进给速度极限毫米/分钟

force_wcs

:yes

#每次换刀时强制输出WCS

spaces

:1

#各指令之间插入的空格数

omitseq

:no

#省略序号

seqmax

:9999

#最大序号

stagetool

:0

#0=无预先备刀,1=预备刀具

use_gear

:0

#输出齿轮交换代码,0=no,1=yes

max_speed

:6000

#最大主轴转速

min_speed

:1

#最小主轴转速

nobrk

:no

#Omitbreakupofx,y&zrapidmoves

progname

:1

#使用大写字母表示程序名

max_arc

:50000

#机床允许的最大圆弧半径

#

#

旋转轴设定

#

vmc

:1

#0=卧式,1=立式#

#

允许钻孔固定循环功能

#

usecandrill:yes

#使用普通钻孔固定循环

usecanpeck

:yes

#使用啄式钻孔固定循环

usecanchip

:yes

#使用断屑钻孔固定循环

usecantap

:yes

#使用攻螺纹固定循环

usecanbore1:yes

#使用镗孔固定循环1

usecanbore2:yes

#使用镗孔固定循环2

usecanmisc1:yes

#使用杂项固定循环1

usecanmisc2:yes

#使用杂项固定循环2

#

#通用自定义变量初始化(不能改变!)

#

xia

:0

#FormatedabsolutevalueforXincrementalcalculations

yia

:0

#FormatedabsolutevalueforYincrementalcalculations

zia

:0

#FormatedabsolutevalueforZincrementalcalculations

bld

:0

#单节删除激活

result

:0

#Returnvalueforfunctions

sav_spc

:0

#Savespaces

sav_gcode

:0

#Gcodesaved

sav_absinc

:0

#Absolute/IncrementalSavedValue

sav_coolant:0

#Coolantsaved

toolchng

:1

#Onatoolchangeflag

spdir2

:1

#Copyforsafespindledirectioncalculation

#Drillvariables

drlgsel

:-1

#DrillSelectInitialize

drillref

:0

#Selectdrillreference

peckacel

:0

#Fractionalpercenttoreducepeck2whenusecan..:no

drlgcode

:0

#SaveGcodeindrill

sav_dgcode

:0

#Drillgcodesaved

#

#格式列表-n=nonmodal,l=leading,t=trailing,i=inc,d=delta

#

#

#定义英制/米制坐标格式列表

fs21

0.70.6

#小数,absolute,7place,defaultforinitialize(

fs22

0.4l1.3

#小数,absolute,4/3place(x,y,z)

fs23

0.4l1.3d

#小数,delta,4/3place

(i,j,k)

#Commonformatstatements

fs24

1010

#整数,无前缀

fs25

2020l

#整数,强制两位前缀

fs26

3030l

#整数,强制三位前缀

fs27

4040l

#整数,强制四位前缀

fs29

0.10.1

#小数,absolute,1place

fs210

0.20.2

#小数,absolute,2place

fs211

0.30.3

#小数,absolute,3place

fs212

0.40.4

#小数,absolute,4place

fs213

0.50.5

#小数,absolute,5place

fs214

0.30.3d

#小数,delta,3place

fs215

0.20.1

#小数,absolute,2/1place

fs216

1010n

#整数,强制输出

#输出加工类型字符串定义

#

#字符串-字符串标签必须由's'开头,它们没有预先指派

#

#Selectoperationnote

sop00

"NULL"

#Stringdefinition

sop01

"CONTOUR"

#

"

"

sop02

"CONTOUR"

#

"

"

sop03

"DRILLCYCLE"

#

"

"

sop04

"OCKET"

#

"

"

sop05

"RULED"

#

"

"

sop06

"2D-SWEPT.."

#

"

"

sop07

"3D-SWEPT.."

#

"

"

sop08

"REVOLVED.."

#

"

"

sop09

"LOFT"

#

"

"

sop10

"COONS"

#

"

"

sop11

"TRIM"

#

"

"

sop12

"FLOWLINE.."

#

"

"

sop13

"SURFACE_FINISH"

#

"

"

sop14

"SURFACE_ROUGH"

#

"

"

sop15

"OINT"

#

"

"

sop16

"DRILL-5AX."

sop17

"CURVE-5AX."

sop18

"SWARF-5AX."

sop19

"flatMILL"

sop20

"op20?"

sopnote

#Targetstring

fstrsel

sop00opcodesopnote

#

#

NC输出的字符串和字符串选择定义

##Addressstringdefinitions

位址串定义

strm

"M"

strn

"N"

stro

"O"

strp

""

srad

"R"

srminus

"R-"

sblank

#Cantext字符串定义(spacesmustbepaddedhere)

sm00

"M00"

sm01

"M01"

strtextno

strcantext

#

#

错误信息

#

saxiswarn

"

WARNING-THERADOFARCISTOOLARGE"

#

#一般的G和M代码串选择表

GeneralGandMCodeStringselecttables

#

#运动G代码选择

sg00

G00

#快速定位

sg01

G01

#直线进给

sg02

G02

#圆弧插补CW

sg03

G03

#圆弧插补CCW

sg04

G04

#暂停

sgcode

#Targetforstring

fstrselsg00gcodesgcode

#

#选择工作平面G字串

sg17

G17

#XY平面代码

sg19

G19

#YZ平面代码

sg18

G18

#XZ平面代码

sgplane

#Targetstring

fstrselsg17planesgplane

#

#选择英制/米制字串

sg20

G20

#英制代码

sg21

G21

#米制代码

smetric

#Targetstring

fstrselsg20met_toolsmetric

#

#选择参考点回归字串

sg28

G28

#第一参考点回归

sg30

G30

#第二参考点回归

sg28ref

#Targetstring

fstrselsg28mi3sg28ref

#

#切削补偿G字串选择

scc0

G40

#切削补偿取消

scc1

G41

#切削左补偿

scc2

G42

#切削右补偿

sccomp

#Targetforstring

fstrselscc0cc_possccomp

#

#钻孔固定循环字符串选择

sg81

G81

#钻孔

-无暂停

sg81d

G82

#钻孔

-有暂停

sg83

G83

#啄式钻孔

-无暂停

sg83d

G83

#啄式钻孔

-有暂停

sg73

G73

#断屑

-无暂停

sg73d

G73

#断屑

-有暂停

sg84

G84

#攻螺纹

-右手

sg84d

G74

#攻螺纹

-左手

sg85

G85

#镗孔#1

-无暂停

sg85d

G89

#镗孔#1

-有暂停

sg86

G86

#镗孔#2

-无暂停

sg86d

G86

#镗孔#2

-有暂停

sgm1

G76

#misc#1

-无暂停

sgm1d

G76

#misc#1

-有暂停

sgm2

G81

#misc#2

-无暂停

sgm2d

G82

#misc#2

-有暂停

sgdrill

#Targetforstring

fstrselsg81drlgselsgdrill

#

#选择增量或绝对G字符串

sg90

G90

#绝对代码

sg91

G91

#增量代码

sgabsinc

#Targetstring

fstrselsg90absincsgabsinc

#

#钻孔固定循环参考高度

sg98

G98

#Z轴回到起始高度

sg99

G99

#Z轴回到参考高度

sgdrlref

#Targetforstring

fstrselsg98drillrefsgdrlref

#DrillcycleGstringselect

#

#Generatestringforspindle

sm04

M04

#主轴反转

sm05

M05

#主轴停止

sm03

M03

#主轴正转

spindle

#Targetforstring

fstrselsm04spdir2spindle

#

#冷却M字符串选择

sm09

M09

#冷却液Off

sm08

M08

#冷却液喷射

sm08_1

M08

#冷却液喷雾

sm08_2

M08

#CoolantTool

scoolant

#Targetforstring

fstrselsm09coolantscoolant

#

#定义齿轮选择代码

flktbl

1

3

#Lookuptabledefinition-tableno.-no.entries

40

0

#底速齿轮档

41

400

#中速齿轮档

42

2250

#高速齿轮档

#

#

刀具交换/NC输出变量格式

#

fmt

T

4

t

#刀具号

fmt

T

4

first_tool

#第一把使用的刀具

fmt

T

4

next_tool

#下一把使用的刀具

fmt

D

4

tloffno

#直径偏移号

fmt

H

4

tlngno

#长度偏移号

fmt

G

4

g_wcs

#WCSGaddress

fmt

P

4

p_wcs

#WCSPaddress

fmt

S

4

speed

#主轴转速

fmt

M

4

gear

#Gearrange

#

fmt

N

4

n

#序号

fmt

X

2

xabs

#X坐标输出

fmt

Y

2

yabs

#Y坐标输出

fmt

Z

2

zabs

#Z坐标输出

fmt

X

3

xinc

#X坐标输出

fmt

Y

3

yinc

#Y坐标输出

fmt

Z

3

zinc

#Z坐标输出

fmt

I

3

i

#x轴方向上的圆弧中心描述

fmt

J

3

j

#y轴方向上的圆弧中心描述

fmt

K

3

k

#z轴方向上的圆弧中心描述

fmt

R

2

arcrad

#圆弧半径

fmt

F

15

feed

#进给率

fmt

P

11

dwell

#暂停

fmt

M

5

cantext

#Cannedtext

#

#Movecomment(pound)tooutputcolonwithprogramnumbers

fmt

O

7

progno

#Programnumber

#fmt":"7

progno

#Programnumber

#

fmt

Q

2

peck1

#Firstpeckincrement(positive)

fmt

Q

2

shftdrl

#Fineboretoolshift

fmt

R

2

refht_a

#Referenceheight

fmt

R

2

refht_i

#Referenceheight

#

fmt"TOOL:"

4

tnote

#注释格式

fmt"DIA.OFF:"4

toffnote

#注释格式

fmt"LEN.:"

4

tlngnote

#注释格式

fmt"DIA.:"

1

tldia

#注释格式

#

#ToolComment/ManualEntrySection

刀具注释/手工输入部分

#

ptoolcomment

#Commentfortool

tnote=t

toffnote=tloffno

tlngnote=tlngno

"(",*tnote,*tldia,

*sopnote,")",e

pstrtool

#Commentfortool

ifstrtool<>sblank,

[

strtool=ucase(strtool)

*strtool,""

]

pcomment

#Commentfrommanualentry(mustcallpcomment2ifbooleans)

pcomment2

pcomment2

#Commentfrommanualentry

scomm=ucase(scomm)

ifgcode=1007,"(",scomm,")"

else,"(",scomm,")",e

#

#文件起始和刀具交换设置

#

psof0

#Startoftoolzero

psof

psof

#Startofnon-zerotoolnumber

toolchng=one

ifntools=one,

[

#skipsingletooloutputs,stagetoolmustbeon

stagetool=m_one

!next_tool

]

"%",e

*progno,e

"(PROGRAMNAME-",progname,")",e

"(DATE=Day-Month-Year-",date,"TIME=Hr:Min-",time,")",e

ptoolcomment

pbld,n,*sgcode,*sgplane,"G40","G49","G80","G54",*sgabsinc,*smetric,e

sav_absinc=absinc

pcom_moveb

absinc=zero

pcan1,pbld,n,*sgcode,*sgabsinc,pwcs,pfxout,pfyout,*zr,

*speed,*spindle,pgear,strcantext,e

pe_inc_calc

ps_inc_calc

absinc=sav_absinc

pbld,n,sgabsinc,epretract

#刀具路径末尾,换刀

sav_absinc=absinc

absinc=one

sav_coolant=coolant

coolant=zero

#cc_posisresetinthetoolchangehere

cc_pos=zero

gcode=zero

pbld,n,sccomp,*sm05,e

absinc=sav_absinc

coolant=sav_coolant

peof0

#Endoftoolzero

peof

peof

#Endofnon-zerotool

pretract

comment

#Removepoundcharactertooutputfirsttoolwithstagedtools

#

#ifstagetool=one,pbld,n,*first_tool,e

n,"M30",e

"%",e

pwcs

#G54+coordinatesettingattoolchange

ifworkofs<>prv_workofs|(force_wcs&toolchng),

[

ifworkofs<6,

[

g_wcs=workofs+54

*g_wcs

]

else,

[

p_wcs=workofs-five

"G54.1",*p_wcs

]

]

!workofs

pgear

#Findspindlegearfromlookuptable

ifuse_gear=one,

[

gear=frange(one,speed)

*gear

]

#换刀设置

pspindle

#主轴转速计算forRPM

speed=abs(ss)

ifmaxss=zero|maxss>max_speed,maxss=max_speed

ifspeed>max_speed,speed=maxss

ifspeed<min_speed,speed=min_speed

spdir2=fsg3(spdir)

pq

#Setuppostbasedonswitchsettings

ifstagetool=one,bldnxtool=one

ifarctype=one|arctype=four,

[

result=newfs(two,i)

result=newfs(two,j)

result=newfs(two,k)

]

else,

[

result=newfs(three,i)

result=newfs(three,j)

result=newfs(three,k)

]

pheader

#文件开始前调用

ifmet_tool=one,#米制常量和变量调整

[

ltol=ltol_m

vtol=vtol_m

maxfeedpm=maxfeedpm_m

]

ptoolend

#刀具路径末尾,读取新刀具资料之前

!speed,!spdir2

ptlchg1002

#Callatactualtoolchange,endlastpathhere

pspindle

ifgcode=1000,

[

#Nulltoolchange

]

else,

[

#ToolchangeandStartoffile

ifgcode=1002,

[

#Actualtoolchange

pretract

]

ifstagetool=one,prv_next_tool=m_one

prv_xia=vequ(xh)

prv_feed=c9k

]

#

#MotionNCoutput

运动NC输出

#

#绝对方式输出的变量为xabs,yabs,zabs.

#增量方式输出的变量为xinc,yinc,zinc.

#

prapidout

#输出直线运动的NC指令-快速

pcan1,pbld,n,sgplane,`sgcode,sgabsinc,pccdia,

pxout,pyout,pzout,strcantext,scoolant,e

plinout

#输出直线运动的NC指令-进给

pcan1,pbld,n,sgplane,`sgcode,sgabsinc,pccdia,

pxout,pyout,pzout,feed,strcantext,scoolant,e

pcirout

#输出圆弧插补的NC指令

ifarcrad>=max_arc,result=mprint(saxiswarn)

pcan1,pbld,n,sgplane,sgcode,sgabsinc,pccdia,

pxout,pyout,pzout,parc,feed,strcantext,scoolant,e

pcom_moveb

#Commonmotionpreparationroutines,before

pxyzcout

ps_inc_calc

pncoutput

#Movementoutput

pcom_moveb

comment

pcan

ifgcode=zero,prapidout

ifgcode=one,plinout

ifgcode>one&gcode<four,pcirout

pcom_movea

pcom_movea

#Commonmotionpreparationroutines,after

pcan2

pe_inc_calc

pdwl_spd

#CallfromNCIgcode4

pspindle

comment

ifprv_spdir2<>spdir2,pbld,n,*sm05,e

ifprv_speed<>speed|prv_spdir2<>spdir2,

pbld,n,*speed,*spindle,pgear,e

pcan

iffmtrnd(dwell),pcan1,pbld,n,*sgcode,*dwell,strcantext,e

else,pcan1,pbld,n,strcantext,e

pcan2

prapid

#输出直线运动的NC指令-快速

pncoutput

pzrapid

#输出直线运动的NC指令-快速Zonly

pncoutput

plin

#输出直线运动的NC指令-进给

pncoutput

pz

#输出直线运动的NC指令-进给Zonly

pncoutput

pmx

#输出NCI向量的NC指令

pncoutput

pcir

#输出圆弧插补的NC指令

pncoutput

#

#Motionoutputcomponents

运动输出组成

#

pbld

#Cannedtext-单节删除

ifbld,'/'

pfbld

#强制-单节删除

"/"

pccdia

#切削补偿

#ForceDxx#

ifprv_cc_pos<>cc_pos&cc_pos,prv_tloffno=c9k

sccomp

ifcc_pos,tloffno

pfxout

#ForceXaxisoutput

ifabsinc=zero,*xabs,!xinc

else,*xinc,!xabs

pxout

#Xoutput

ifabsinc=zero,xabs,!xinc

else,xinc,!xabs

pfyout

#ForceYaxisoutput

ifabsinc=zero,*yabs,!yinc

else,*yinc,!yabs

pyout

#Youtput

ifabsinc=zero,yabs,!yinc

else,yinc,!yabs

pfzout

#ForceZaxisoutput

ifabsinc=zero,*zabs,!zinc

else,*zinc,!zabs

pzout

#Zoutput

ifabsinc=zero,zabs,!zinc

else,zinc,!zabs

parc

#选择圆弧输出格式

ifarcoutput=zero,

[

#圆弧输出为IJK

i,j,k

]

else,

[

#圆弧输出为R

ifabs(sweep)<=180|arcoutput=one,result=nwadrs(srad,arcrad)

else,result=nwadrs(srminus,arcrad)

*arcrad

]

#

#Drilling

钻孔

#

pdrlcommonb

#CannedDrillCyclecommoncall,before

ifgcode=81,

[

result=newfs(two,zinc)

ifdrillcyc=three,drlgsel=fsg1(-ss)+drillcyc*two

else,drlgsel=fsg2(dwell)+drillcyc*two

ifinitht<>refht,drillref=zero

else,drillref=one

prv_refht_a=c9k

prv_refht_i=c9k

]

z=depth

prv_zia=initht

feed=fr_pos

prv_dwell=zero

@dwell

pcom_m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论