数控编程之MasterCAM文件的后处理.docx

上传人:b****5 文档编号:11930625 上传时间:2023-04-16 格式:DOCX 页数:17 大小:20.98KB
下载 相关 举报
数控编程之MasterCAM文件的后处理.docx_第1页
第1页 / 共17页
数控编程之MasterCAM文件的后处理.docx_第2页
第2页 / 共17页
数控编程之MasterCAM文件的后处理.docx_第3页
第3页 / 共17页
数控编程之MasterCAM文件的后处理.docx_第4页
第4页 / 共17页
数控编程之MasterCAM文件的后处理.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数控编程之MasterCAM文件的后处理.docx

《数控编程之MasterCAM文件的后处理.docx》由会员分享,可在线阅读,更多相关《数控编程之MasterCAM文件的后处理.docx(17页珍藏版)》请在冰豆网上搜索。

数控编程之MasterCAM文件的后处理.docx

数控编程之MasterCAM文件的后处理

数控编程之MasterCAM文件的后处理

数控编程之MasterCAM文件的后处理

2009-10-1622:

56:

20|分类:

机械类|举报|字号订阅

 

2.数控自动编程原理

我们在进行数控手工编程时,先是求出组成零件几何图形的基本线圆图素的节点(交点)坐标值,然后按数控程序的格式要求固定地排列起来,再少量地在某些部位嵌入一些加工工艺指令而已。

也就是说只要求出各交点坐标,则转化成数控程序是就相当于填表一样有规则。

自动编程就是利用计算机来计算这些交点,再按规律自动组成数控程序。

对于简单零件图形,由于各交点坐标很容易求出,通常都只需要采用手工编程即可,若用自动编程则感觉不出其优势,但对于复杂零件图形,由于交点坐标手工很难计算,所以往往需要借助于自动编程。

当然,对于简单图形,若需要经常性地进行数学变换,同样需要使用自动编程系统。

数控自动编程从发展的历史来分,可有:

1).数控语言型批处理式自动编程

早期的自动编程都是编程人员根据零件图形及加工工艺要求,采用数控语言,先编写成源程序单,再输入计算机,由专门的编译程序,进行译码、计算和后置处理后,自动生成数控机床所需的加工程序清单,然后通过制成纸带或直接用通讯接口,将加工程序送入到机床CNC装置中。

这其中的数控语言是一套规定好的基本符号和由基本符号描述零件加工程序的规则,它比较接近工厂车间里使用的工艺用语和工艺规程,主要由几何图形定义语句、刀具运动语句和控制语句三种语句组成。

编译程序是根据数控语言的要求,结合生产对象和具体的计算机,由专家应用汇编语言或其它高级语言编好的一套庞大的程序系统。

这种自动编程系统的典型就是APT语言。

APT语言最早于1955年由美国研制成功,经多次修改完善,于70年代发展成APT-Ⅳ,一直沿用至今。

其它如法国的IFAPT、德国的EXAPT、日本的FAPT、HAPT以及我国的ZCK、SKC等都是APT的变形。

这些数控语言有的能处理3~5坐标,有的只能处理2坐标,有车削用的、铣削及点位加工用的等。

这种方式的自动编程系统,由于当时计算机的图形处理能力较差,所以一般都无图形显示,不直观,易出错。

虽然后来增加了一些图形校验功能,但还是要反复地在源程序方式和图形校验方式之间来回切换,并且还需要掌握数控语言,初学者用起来总觉不太方便。

2).人机对话型图形化自动编程

在人机对话式的条件下,编程员按菜单提示的内容反复与计算机对话,陆续回答计算机的提问。

从一开始,对话方式就紧密与图形显示相联,从工件的图形定义,刀具的选择,起刀点的确定,走刀路线的安排直到各种工艺

指令的及时插入,全在对话过程中提交给了计算机,最后得到的是所需的机床数控程序单。

这种自动编程具有图形显示的直观性和及时性,能较方便地进行对话修改,易学且不易出错。

图形化自动编程系统有EZ-CAM、MasterCAM、UGII、PRO/E、CAXA制造工程师等。

由于图形显示的直观性和及时性,图形化自动编程现在已经是数控加工领域应用最广的自动编程方式。

这类软件一般包括几何绘图的CAD部分和加工刀路定义的CAM部分。

然而,就CAM部分来说,刀路定义完成后,怎样针对不同的数控系统来生成相对应的NC程序呢?

那就涉及到后置处理技术。

3.MasterCAM软件及其后置处理技术

3.1MasterCAM软件的数据处理流程

MasterCAM软件由CAD模块绘制图形,存盘后保存为*.MCx(x为版本号,如MC7、MC8、MC9等);进行加工刀路定义后,即可生成相对独立的*.NCI刀路数据文件,该文件存放了关于刀具、工艺参数、加工节点坐标等按照刀路定义顺序产生的一些格式固定的数据;最后需要生成NC程序时,由后置处理模块读取NCI文件中的数据,根据选用的机床数控系统后置处理文件(MP*.PST)的要求,编译组合成适于数控加工机床用的NC程序清单文件*.NC。

当然,MasterCAM中还有存放刀具参数、毛坯及刀具材质、配置系统状态、加工工艺表单等的一些数据格式文件。

3.2MasterCAM软件针对数控系统的后置处理技术

从以上MasterCAM软件的数据处理流程可知,MasterCAM经刀路定义后生成的刀路数据文件NCI是不变的,最后生成NC程序时需要用到不同的后置处理格式文件*.PST,从而生成不同的NC格式程序代码。

系统提供适于各种不同数控系统的后置处理文件,如适于日本FANUC系统的MPFAN.PST,适于美国Dynapth数控系统的Mpdypth.pst,适于德国马豪数控系统的Mpmahoxy.pst、Mpmahoxz.pst,适于mazakm数控系统的Mpmazakm.pst等等。

尽管如此,由于我们所使用到的机床很多功能处理上经机床生产厂家做过各式各样的改变,可能无法直接使用由默认后置处理各式生成的NC程序,因此,研究探索后置处理文件就很有必要。

MasterCAM软件最后NC程序的生成取决于不同的后置处理文件PST,通过探索修改PST文件即可获得我们所需要的适应不同数控系统的NC程序格式。

4.后置处理文件参数项对NC程序输出的影响简述

通过修改后置处理(*PST)文件参数的变量赋值,可控制NC程序输出,以下是控制程序输出单节的内容,我们由此来简单的看一看修改各参数项的影响。

#GeneralOutputSettings基本输出选项设置

#--------------------------------------------------------------------------

sub_level:

1#Enableautomaticsubprogramsupport

breakarcs:

2#Breaka

rcs,0=no,1=quadrants,2=180deg.maxarcs

arcoutput:

1#0=IJK,1=Rnosign,2=Rsignedneg.over180

arctype:

2#Arccenter1=abs,2=St-Ctr,3=Ctr-St,4=unsignedinc.

do_full_arc:

0#Allowfullcircleoutput?

0=no,1=yes

helix_arc:

2#Supporthelixarcoutput,0=no,1=allplanes,2=XYplaneonly

arccheck:

3#Checkforsmallarcs,converttolinear

atol:

.01#Angularitytoleranceforarccheck=2

ltol:

.002#Lengthtoleranceforarccheck=1

vtol:

.0001#Systemtolerance

maxfeedpm:

500#Limitforfeedininch/min

ltol_m:

.05#Lengthtoleranceforarccheck=1,metric

vtol_m:

.0025#Systemtolerance,metric

maxfeedpm_m:

10000#Limitforfeedinmm/min

force_wcs:

yes#ForceWCSoutputateverytoolchange?

spaces:

0#Numberofspacestoaddbetweenfields

omitseq:

no#Omitsequencenumbers?

seqmax:

9999#Max.sequencenumber

stagetool:

0#0=Donotpre-stagetools,1=Stagetools

use_gear:

0#Outputgearselectioncode,0=no,1=no

max_speed:

10000#Maximumspindlespeed

min_speed:

50#Minimumspindlespeed

nobrk:

no#Omitbreakupofx,y&zrapidmoves

progname:

1#Useuppercaseforprogramname(sprogname)

xflip:

no#ReverseXaxisorientation-eap1/17/03

yflip:

no#ReverseYaxisorientation-eap1/17/03

zflip:

no#ReverseZaxisorientation-eap1/17/03

#---------------------------------------------------------------------

以breakarcs为例:

当breakarcs=0时,不打断圆弧,以整圆形式输出;当baeakarcs=1时,将圆弧划为4等分,分4象限的形式输出:

当breakarcs=2时,按180度打断圆弧,分2部分输出。

如图5所示外形铣削,当baeakarcs=1时,其程序输出为:

%

O1234

N100G21

N102G0G17G40G49G80G90

(10.FLATENDMILLTOOL-1DIA.OFF.-1LEN.-1DIA.-10.)

N104T1M6

N106G0G90G54X-65.Y-45.A0.S2000M3

N108G43H1Z10.M8

N110Z5.

N112G1Z-2.F200.

N114X-55.F500.

N116X40.

N118G3X55.Y-30.R15.

N120G1Y15.505

N122G3X75.Y40.R25.

N124X50.Y65.R25.

N126X25.505Y45.R25.

N128G1X-30.

N130Y40.

N132G2X-50.Y20.R20.

N134G1X-55.

N136Y-45.

N138Y-55.

N140Z3.F10000.

N142G0Z10.

N144M5

N146G91G28Z0.M9

N148G28X0.Y0.A0.

N150M30

%

当breakarcs=2时,程序输出如下:

%

O1234

N100G21

N102G0G17G40G49G80G90

(10.FLATENDMILLTOOL-1DIA.OFF.-1LEN.-1DIA.-10.)

N104T1M6

N106G0G90G54X-65.Y-45.A0.S2000M3

N108G43H1Z10.M8

N110Z5.

N112G1Z-2.F200.

N114X-55.F500.

N116X40.

N118G3X55.Y-30.R15.

N120G1Y15.505

N122G3X45.Y64.495R25.

N124X25.505Y45.R25.

N126G1X-30.

N128Y40.

N130G2X-50.Y20.R20.

N132G1X-55.

N134Y-45.

N136Y-55.

N138Z3.F10000.

N140G0Z10.

N142M5

N144G91G28Z0.M9

N146G28X0.Y0.A0.

N148M30

%

5.后置处理文件的改编

5.1南通XH713A—FANUC-0i系统的后置处理

南通XH713A立

式加工中心采用斗笠式刀库,和机械手换刀不同,它无法预先进行选刀操作,其选刀和自动换刀过程密不可分,必须先将主轴上的刀具装回到原刀袋中,才可以往下进行选刀。

换刀时主轴应移动到第二Z参考点的位置,卸刀时主轴则提升到第一Z参考点的高度。

换刀过程中还需要控制刀库座盘的整体移动,动作相当复杂,因此机床厂家对其所用的FANUC-0i系统进行了适当的改造,根据换刀动作的要求,编写了一个O9000的子程序,要求用户在编写自动换刀的程序时,采用M98P9000的程序格式,且换刀前应让机床Z轴处于第二参考点的位置上。

另外,机床开启冷却液是使用的M7指令,而非M8指令。

其他方面基本采用FANUC的标准程序形式。

针对该机床的特点,我们在改写MPFAN.PST文件时就需要将所有可能生成“TxxM6”的指令改为生成“TxxM98P9000”的指令,将生成“M8”的指令改为生成“M7”的指令输出,将换刀前自动回第一参考点的“G28”的指令改为生成回第二参考点“G30”的指令输出。

针对M8改M7,可改动字符串定义单节的定义,将sm08、sm08_1、sm08_2变量都用“M7”这一字符串进行赋值定义,即将如下定义段

fstrselsm04spdir2spindle

#--------------------------------------------------------------------------

#CoolantMcodeselection

sm09M9#CoolantOff

sm08M8#CoolantFlood

sm08_1M8#CoolantMist

sm08_2M8#CoolantTool

scoolant#Targetforstring

fstrselsm09coolantscoolant

#--------------------------------------------------------------------------

改为:

fstrselsm04spdir2spindle

#-------------------------------------------

#CoolantMcodeselection

sm09M9#CoolantOff

sm08M7#CoolantFlood

sm08_1M7#CoolantMist

sm08_2M7#CoolantTool

scoolant#Targetforstring

fstrselsm09coolantscoolant

#-------------------------------------------

如果要兼顾到可能会用到M8的情形,可改动其中一个如sm08_1为M7,这样在刀路定义时选择开启冷却液的第三项“喷雾”,即可。

针对换刀程序格式输出,可直接将程序格式预定义单节中所有“M6”改为“M98P9000”,将所有“G28”改为“G30”即可。

#------------------------------------------------------------

#StartofFileandToolchangeSetup

#---------------------------------------------------------

psof0#Startoffilefortoolzero

psof

psof#Startoffilefornon-zerotoolnumber

pcuttype

toolchng=one

ifntools=one,

[

#skipsingletooloutputs,stagetoolmustbeon

stagetool=m_one

!

next_tool

]

"%",e

*progno,e

"(PROGRAMNAME-",sprogname,")",

e

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

MM-",time,")",e

pbld,n,*smetric,e

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

sav_absinc=absinc

ifmi1<=one,#Workcoordinatesystem

[

absinc=one

pfbld,n,sgabsinc,*sg28ref,"Z0.",e

pfbld,n,*sg28ref,"X0.","Y0.",e

pfbld,n,"G92",*xh,*yh,*zh,e

absinc=sav_absinc

]

pcom_moveb

c_mmlt#Multipletoolsubprogramcall

ptoolcomment

comment

pcan

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

pindex

ifmi1>one,absinc=zero

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

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

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

absinc=sav_absinc

pcom_movea

toolchng=zero

c_msng#Singletoolsubprogramcall

ptlchg0#CallfromNCInulltoolchange(toolnumberrepeats)

pcuttype

pcom_moveb

c_mmlt#Multipletoolsubprogramcall

comment

pcan

result=newfs(15,feed)#Resettheoutputformatfor'feed'

pbld,n,sgplane,e

pspindchng

pbld,n,scoolant,e

ifmi1>one&workofs<>prv_workofs,

[

sav_absinc=absinc

absinc=zero

pbld,n,sgabsinc,pwcs,pfxout,pfyout,pfzout,pfcout,e

pe_inc_calc

ps_inc_calc

absinc=sav_absinc

]

ifcuttype=zero,ppos_cax_lin

ifgcode=one,plinout

else,prapidout

pcom_movea

c_msng#Singletoolsubprogramcall

ptlchg#Toolchange

pcuttype

toolchng=one

ifmi1=one,#Workcoordinatesystem

[

pfbld,n,*sg28ref,"X0.","Y0.",e

pfbld,n,"G92",*xh,*yh,*zh,e

]

pbld,n,"M01",e

pcom_moveb

c_mmlt#Multipletoolsubprogramcall

ptoolcomment

comment

pcan

result=newfs(15,feed)#Resettheoutputformatfor'feed'

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

pindex

sav_absinc=absinc

ifmi1>one,absinc=zero

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

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

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

absinc=sav_absinc

pcom_movea

toolchng=zero

c_msng#Singletoolsubprogramcall

pretract#Endoftoolpath,toolchange

sav_absinc=absinc

absinc=one

sav_coolant=coolant

coolant=zero

#cc_posisresetinthetoolchangehere

cc_pos=zero

gcode=zero

pcan

pbld,n,sccomp,*sm05,psub_end_mny,e

pcan1,pbld,n,sgabsinc,sgcode,*sg28ref,"Z0.",scoolant,s

trcantext,e

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

pcan2

absinc=sav_absinc

coolant=sav_coolant

protretinc#ResettheCaxisrevolutioncounter

iffrc_cinit&rot_on_x,

[

rev=zero

sav_rev=zero

cabs=zero

csav=zero

indx_out=zero

ifindex,e,pindxcalc,pindex

else,*cabs

prvcabs=zero

!

csav,!

cabs

]

peof0#Endoffilefortoolzero

peof

peof#Endoffilefornon-zerotool

pretract

comment

#Removepoundcharactertooutputfirsttoolwithstagedtools

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

n,"M30",e

mergesub

clearsub

mergeaux

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1