powermill后处理修改精华帖

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

m a c h i n e f a n u c o m——————后处理文件头definewordTN----------------------------定义字段;
addressletter="TOOLTYPE:-"-----定义字段的返回值
addresswidth=13定义字符宽度
fieldwidth=25定义返回字的宽度
enddefine结束定义
defineformat(/G6STM1M2LPDEHO)第二段是定义字符的格式
addresswidth=定义字符宽度
addresswidth=定义字符宽度
fieldwidth=2-------------定义返回字的宽度
exponentwidth=0----------指数的宽度
scalefactor=-比例因子:值乘以1
scaledivisor=比例因子:值被1除
tapeposition=字前留一个空格
printposition=打印位置
sign=none-----用于不需要G代码和进给率
sign=ifnegative仅标识负坐标
sign=always如果需要+/-号
notpermanent--------不需要行号
notmodal------------仅当改变时需要重复的字为modal。

(模态)。

通常G代码和X,Y和Z为坐标为modal,
但圆心通常使用的I,J,K代码通常不是,因此它们为notmodal.
metricformats---------------公制
leadingzeros=false---------前导0
trailingzeros=true----------后导0
decimalpoint=false------不需要小数点
decimalplaces=2--------小数点后2
imperialformats-------------英制
wordorder=====================语序
wordorder=(OPNG1G2G3G4G5)
wordorder=(+G6G7XYZBC)
wordorder=(+IJKRDST)
wordorder=(+HM1M2MSmsgEMQ)
wordorder=(+Q1Z2R2IDF)
wordorder=(+TNTDTRDYMTYRPM)
definekeys第三段是定义键值
blocknumber=N—————定义程序段号
preparatoryfunction=G1——定义准备功能指令
auxfunction=M-定义辅助功能指令
xfeedratenotused----------定义X进给率指令
yfeedratenotused----------定义Y进给率指令
zfeedratenotused——------定义Z进给率指令
circleanglenotused————圆周角度
xcoordinate=X—————----定义X坐标轴ycoordinate=Y—————----定义Y坐标轴zcoordinate=Z—————---定义Z坐标轴
keyi=I—————----------定义X轴矢量I键
keyj=J—————----------定义Y轴矢量J
keyk=K—————----------定义Z轴矢量K键
feedrate=F—————-------定义进给率指令feedrateperrevolution=F---定义每转进给率指令spindle=S——————-----定义主轴指令
toolnumber=T——————--定义刀具指令cycledwellnotused-----------不使用循环停留
dwell=X—————----------定义暂停时间键值toollength=H——----------定义刀具长度补偿指令toolradius=D——----------定义刀具半径补偿指令drillpeckdepth=Q1————钻孔的啄钻深度drillholedepth=Z2————-定义钻孔深度
clearplane=R2———--------定义安全平面高度messagestart=MS——-------定义注释的开始符messageend=EM——---------定义注释的结束符
opskip=OP————---------定义跳段符号
radius=R—————--------定义半径R键
programid=ID—————---定义程序号
azimuthaxis=B-------------在多轴加工中,定义方位轴elevationaxis=C——-------在多轴加工中,定义仰角轴
3rdrotationaxis=null-----在多轴加工中,定义第三旋转轴leadernotused----------------领导不使用xvectornotused--------------X矢量不使用yvectornotused--------------Y矢量不使用zvectornotused--------------Z矢量不使用
errornotused-----------------错误不使用
enddefine
definecodes----------------------定义指令值
rapid=G10=====------------------快速点定位
linear=G11=====-----------------直线插补
circlecw=G12=====-------------顺圆插补
circleccw=G13=====------------逆圆插补
dwell=G64===-------------------暂停、准确停止
xyplane=G317======-------------XY平面
zyplane=G319=====-------------YZ平面
xzplane=G318=====-------------ZX平面compensationoff=G240==------取消刀具半径补偿compensationonleft=G241====刀具半径左补偿compensationonright=G242===刀具半径右补偿imperialdata=G420=====---------英寸输入
metricdata=G421=======----------毫米输入
absolutedata=G590====-----------指定绝对坐标编程incrementaldata=G591====--------指定增量坐标编程
from=G354=====-------------------制定工作坐标系feedrateperminutenotused======每分钟进给feedrateperrevolutinotused=====每转进给spindlerpmnotused--------------每分钟转速constantsurfacespeednotused------恒定的表面速度
drill=G481====-------------------钻孔循环锪镗循环breakchip=G482===---------------钻孔循环或反镗循环deepdrill=G483======-----------深孔钻循环
tap=G484=======------------------攻丝循环
bore1=G485=======---------------镗孔循环
bore2=G486======---------------镗孔循环
bore3=G487======----------------背镗循环
bore4=G488======----------------镗孔循环
bore5=G489======----------------镗孔循环
endofdrill=G480======----------固定循环取消macrostartnotused=======---------宏程序模态调用macroendnotused=====-------------宏程序模态调用取消macrocallnotused========---------宏程序调用cycleretract=G699==------------固定循环返回到R点toollengthoffset=G343====-----正向刀具长度补偿splinenotused========-------------spline插补方式
stop=M10====---------------------程序停止
optstop=M11=====----------------选择停止
spindleoncw=M13=====-----------主轴正转
spindleonccw=M14=====----------主轴逆转
spindleoff=M15=====-------------主轴停止spincoolantoncw=-----------------M113
spincoolantonccw=----------------M114
spincoolantoff=M15====--------冷却液关
changetool=M16=====------------自动换刀
coolantonmist=M17===----------雾状冷却液
coolanton=M18====---------------冷却液开
coolantonflood=M18=------------冷却液开(喷出)coolantoff=M19=====-------------冷却液关clamponnotused-------------------主轴锁紧clampoffnotused--------------------主轴锁紧不使用endoftape=M12=====-------------程序结束
endofprog=M130=====------------程序结束
gearrange1notused----------------变速范围1不使用gearrange2notused----------------变速范围2不使用gearrange3notused----------------变速范围3不使用constantcontourspeednotused-----持续的轮廓速度不使用constantcontourspeed2notused----持续的轮廓速度2不使用
worddrillnotused------------------钻孔指令不使用
wordbreakchipnotused------------不使用断屑
worddeepnotused------------------孔深不使用
wordtapnotused------------------冷却水不使用
wordbore1notused---------------孔1不使用
wordbore2notused
wordbore3notused
wordbore4notused
wordbore5notused
coolantontapnotused-------------冷却液不使用
rigidtapnotused======-----------刚性攻丝
helicaldrillnotused------------螺旋钻孔
helicalretractdrillnotused------螺旋钻孔不使用
enddefine
===========================定义变量
Printheader="DelcamPostprocessor"====定义打印标题
machinename=""===机器名
point==================================小数点
zero="0"=============================零
tapeheaders=1=======================纸带标题
integer6=2=========================定义冷却液开(M07、M08)的输出方式,此变量共有三个选项——
0:在后处理时遇到相关指令时输出;
1:在下一段中单独输出;
2:在下一段中和坐标移动一起输出。

integer7=1=========================定义冷却液关(M09)的输出方式,
此变量共有三个选项)的输出方式,此变量共有三个选项——
0:在后处理时遇到相关指令时输出;
1:在下一段中单独输出;
2:在下一段中和坐标移动一起输出。

integer10=2=========================定义主轴开(M03、M04,)的输出方式,此变量共有三个选项——
0:在后处理时遇到主轴开指令时输出;
1:在下一段中单独输出;
2:在下一段中和坐标移动一起输出。

integer11=1=======================(定义主轴关(M05)的输出方式
此变量共有二个选项——
0:在遇到主轴关指令时不输出S;
1:在遇到主轴关指令时输出S0。

integer12=1=======================定义M代码的输出方式,
此变量共有二个选项代码的输出方式
0:在遇到主轴相关指令时不输出M;
1:在遇到主轴相关指令时输出M
integer13=0NOlinkwithspindleMcodetocoolant
主轴冷却液没有链接代码
=1OutputcoolantwithspindleMcode
主轴M码输出的冷却液
toolresetcoordinates=2============定义刀具复位后(M06后)的坐标处理方式,有1、2、3、4
cycleoutput=1====================定义循环指令(定义循环指令(G80~G89)的输出方式,
此变量共有两个选项——
0:不输出循环移动指令;
1:输出循环指令(默认值为G81)
integer20=1====================定义圆弧(M02、M03)的输出坐标
此变量共有两个选项——
0:不输出圆弧的X、Y坐标;
1:输出圆弧的X、Y坐标。

blockstart=1================定义程序段的开始段号
blockincrement=1===============定义程序段号的增量
splitmove======0=================分体式移动
integer26=1=================(定义圆弧(M02、M03)的输出,
此变量共有两个选项——
0:不输出圆弧指令;
1:输出圆弧指令,如果选择、输出圆弧指令,如果选择0,那么在后处理时遇到有圆弧的地方,系统将这个圆弧打断成若干条直线段输出。

programidstart=100============定义程序起始号
integer34=3整数
integer35=1
integer36=1
integer37=2
rapidfeedcode=0=============共有两个选项
0:在快速移动时不输出进给率;
1:在快速移动时输出进给率(需要在快速移动中定义F)。

maximumblocknumber=0----------最大的块数量
maximumtapeblocks=0-----------最大的磁带位置
minimumtapeblocks=0-----------最小的快位置
segmenttype=0------------节段型
counterstart=0------------计数器开始
counterincrement=0------------计数器增量
tapesplitretractdistance=-999带分裂的距离
multiaxiscoordinatetransform=true======定义机床是否支持多轴联动,
true:支持
false:不支持
messageoutput=false-------===============信息输出
blockorder=true
tlooutput=true=========================是否正常输出刀具长度(半径)补偿,true:输出
false:不输出
tapesplitontoolchange=false---=======刀具改变时程序是否分割
fullcircle=true===========================整圆输出
true;:整圆输出;
false:不做整圆输出。

incrementalcentre=true
gohomeoutput=false-------复位输出
usepartid=true=========================是否使用自定义partid
true:使用
false:不使用
useprogid==================================true
spindlexmotion=false===========rapidstyle===========定义主轴运动方向,true:X方向;false:NOX
spindleymotion=false=====================knot=定义主轴运动方向,true:y方向;false:NOy
spindlezmotion=false======================定义主轴运动方向,true:z方向;false:NOz
spindlewmotion=false======================定义主轴运动方向,true:w方向;false:NOw
spindleazimuthrotation=false==============定义方位轴方式,true:为主轴头式;false:为工作台式
spindleelevationrotation=false============定义仰角轴方式,true:为主轴头式;false:为工作台式
linearisemultiaxismoves=true==============定义机床是否支持线性多轴联动,true:支持;false:不支持
useholetopincycles=false================在循环使用孔
retractatangularlimit=false=============retract角的限制
unwindattoolchange=false================解除换刀
suppressxyarc=false-------==============禁用XY圆弧
suppressxzarc=false======================
suppressyzarc=false======================
transformworkplaneorigin=false===========变换工作平面的原点previousmultaxrapidstyle=false===========以前的multax快速样式
knotvectortype=none============不使用向量类型
units=input=============================定义单位,
input=ouput;==============================输入=输出
metric;===================================公制
imperial====================================英制
coordinates=absolute==================定义坐标单位,
absolute=================================绝对编程
incremental===============================增量编程
azimuthaxisunits=degrees=============定义方位轴单位
azimuthaxisdirection=positive=======定义方位轴用法,相对还是绝对elevationaxisunits=degrees=========定义仰角轴单位
elevationaxisdirection=positive=====定义仰角轴用法,相对还是绝对
splinetype=none========================齿条类型
workplaneangles=none===================工作平面角
optionfileunits=none==================选择文件单位maximumfeedrate===============最大进给速度g01
minimumfeedrate==================最低进给速度
rapidfeedrate=================快速进给g00
maximumtapelength===============磁带最大长度plungethresholdangle============投入的临界角
maximumsegment===================最大段
diameter==========================直径
withdrawalamount================退出距离
arcradiuslimit==============圆弧半径的限制retractionthreshholdangle=====收缩临界角
arcminimumradius================圆弧的最小半径azimuthaxisparameters=(000000)==============定义方位轴参数
前三个零为分别定义每个轴的旋转中心;
后三个零为定义方位轴的坐标,依次为为X、Y、Z
azimuthcentre=(000)===============================定义方位轴圆心参数elevationaxisparameters=(000000)==========定义仰角轴参数,
前三个零为分别定义每个轴的旋转中心;
后三个零为定义仰角轴的坐标,依次为X、Y、Z
elevationcentre=(000)=======================定义仰角轴圆心参数pcsorigin=(000000)========================定义旋转轴圆心linearaxislimits=(-999)==============定义线性轴范围
rotaryaxislimits=(-9999991)=====================定义旋转轴范围
前两个零为定义方位轴的旋转范围;
中间两个零为定义仰角轴的旋转范围;
第五个零定义公差;
第六个零定义分辨率。

movesafeangles=(0000)====================定义起始角度
11:快速运动、直线运动、圆弧运动的代码:
defineblockmovecircle-------------------------快速运动
N;G1;G2;G3;X;Y;Z;I;J;K;F;D
enddefine
defineblockmovelinear------------------------直线运动
N;G1;G2;G3;G5;G6;X;Y;Z;;T;S;M1;M2
enddefine
defineblockmoverapid-------------------------圆弧运动的代码
N;G1;G2;G3;G5;G6;X;Y;Z;T;S;M1;M2
enddefine
12:圆弧的输出格式:
大致有三大类:
a、I、J输出为圆心的绝对坐标值
b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)
c、I、J输出为相对坐标值,具体值为:圆弧始点坐标-圆心坐标值
所以这个就要看你机床格式来具体设置了,修改以下值为你所需:incrementalcentre增量中心=true(相对,反之false绝对)
相对有两种,所以:
scalefactor尺度因子=1或-1
另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:fullcircle全圆=false
13:换刀的格式:
defineblocktoolchangefirst
N;OP;changetool;TToolNum
N;"G48"
N;G10;ZFromZ
enddefine
里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。

10:钻孔
钻孔结束后回到安全平面还是参考平面(示例炜Fanuc系统)cycleretract=G698安全平面
cycleretract=G699参考点
对于有自动换刀系统的机床,在程序的头部,换刀之前最好加上G90
如对于钻孔循环,没必要在每个钻孔循环指令例如G81之后加上G98/G99 ycleretractnotused
对于这两个模态指令只需要在程序的头部加上即可。

去掉钻孔循环结束时后面的M9和M59,只须将下面的定义defineblockcycleend
if(cycledwell=0)
N;G480;M29;M359
endif
if(cycledwell>0)
N;G405=C;"P0"
endif
enddefine
改为
defineblockcycleend
if(cycledwell=0)
N;G480
endif
if(cycledwell>0)
N;G405=C;"P0"
endif
enddefine
有的机床当程序结束时执行G49或者H00时(前提是不再有Z座
标),机床不运动(补偿刀长),而有的机床会运动补偿刀长到上一
个Z座标处,这和机床参数的设定有关;因此建议,在程序的结尾不
要执行G49或者H00
9:十进制输出
加入integer51=n到到opt文件
integer51=(n)小数输出格式
=1小于1的数字被输出为.xxxx(例如:.871)
大于1的数字被输出为xxxx.(例如:34.)
=2小于1的数字被输出为(例如:
大于1的数字被输出为xxxx.(例如:34.)
=3小于1的数字被输出为.xxxx(例如:.871)
大于1的数字被输出为(例如:
=4小于1的数字被输出为(例如:
大于1的数字被输出为(例如:
=5与与3相同
=6小于1的数字被输出为.xxxx(例如:.871)
大于1的数字被输出为xxxx(例如:34)
注意:此设置会影响所有十进制输出格式
8:行程极限
轴向移动行程限制由下面的命令行控制(缺省值):
linearaxislimits=第一对数据控制X的正负极限行程,第二对控制Y,第三对控制Z。

如果这些行程限制被超越,警告信息将被打印出来,后置过程中将出现。

如果这些行程限制被超越,警告信息将被打印出来,后置过
程中将出现“X太小(太大)超越了负极限行程(正极限行程)
在某某区”,然后继续输出真实值。

轴向转动行程限制由下面的命令行控制(缺省值):
rotaryaxislimits=(-9999991)
第一对数据控制方位角的正负极限行程,第二对数据控制俯仰角
的正负极限行程,最后一对数据反应了执行角度变化允许移动的
次数和角度公差。

以4轴加工为例
rotaryaxislimits=如果旋转极限被超越,刀具将缩回到预先远离工作曲面的高度,
然后转轴复位,增量执行旋转角度,直到在限定次数内完成所需
的角度旋转。

如果是5轴的案例
rotaryaxislimits=在某些环境中行程限制被超越是可能的,但只是从方位角和俯仰
角中选一个进行调配却是不可能的,警告信息提示后后置过程将
被终止。

7:信息输出
信息输出设置是个二进位选项,默认值是有信息输出,如果不需
要,直接添加
messageoutput信息输出=false。

相关文档
最新文档