MasterCAM9后處理的修改_第1頁
MasterCAM9后處理的修改_第2頁
MasterCAM9后處理的修改_第3頁
MasterCAM9后處理的修改_第4頁
MasterCAM9后處理的修改_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

MasterCAM9后處理的修改MasterCAM9后處理的修改//MasterCAM9后處理的修改MasterCAM9后處理的修改2007年10月25日星期四11:42

MasterCAM9后處理的修改

MasterCAM系統(tǒng)缺省的后處理文件為MPFAN.PST,適用于FANUC(發(fā)那科)數(shù)控代碼的控制器。其它類型的控制器需選擇對(duì)應(yīng)的后處理文件。

由于實(shí)際使用需要,用缺省的后處理文件時(shí),輸出的NC文件不能直接用于加工。原因是:

⑴進(jìn)行模具加工時(shí),需從G54~G59的工件坐標(biāo)系指令中指定一個(gè),最常用的是G54。部分控制器使用G92指令確定工件坐標(biāo)系。對(duì)刀時(shí)需定義工件坐標(biāo)原點(diǎn),原點(diǎn)的機(jī)械坐標(biāo)值保存在CNC控制器的G54~G59指令參數(shù)中。CNC控制器執(zhí)行G54~G59指令時(shí),調(diào)出相應(yīng)的參數(shù)用于工件加工。采用系統(tǒng)缺省的后處理文件時(shí),相關(guān)參數(shù)設(shè)置正確的情況下可輸出G55~G59指令,但無法實(shí)現(xiàn)G54指令的自動(dòng)輸出。

⑵FANUC.PST后處理文件針對(duì)的是4軸加工中心,而目前使用量最大的是3軸加工中心,多出了第4軸數(shù)據(jù)“A0.”。

⑶不帶刀庫的數(shù)控銑使用時(shí)要去掉刀具號(hào)、換刀指令、回參考點(diǎn)動(dòng)作。

⑷部分控制器不接受NC文件中的注釋行。

⑸刪除行號(hào)使NC文件進(jìn)一步縮小。

⑹調(diào)整下刀點(diǎn)坐標(biāo)值位置,以便于在斷刀時(shí)對(duì)NC文件進(jìn)行修改。

⑺普通及啄式鉆孔的循環(huán)指令在缺省后處理文件中不能輸出。使用循環(huán)指令時(shí)可大幅提高計(jì)算速度,縮小NC文件長(zhǎng)度。

如果要實(shí)現(xiàn)以上全部要求,需對(duì)NC文件進(jìn)行大量重復(fù)修改,易于出現(xiàn)差錯(cuò),效率低下,因此必須對(duì)PST(后處理)文件進(jìn)行修改。修改方法如下:

1、增加G54指令(方法一):

采用其他后處理文件(如MP_EZ.PST)可正常輸出G54指令。由于FANUC.PST后處理文件廣泛采用,這里仍以此文件為例進(jìn)行所有修改。其他后處理文件內(nèi)容有所不同,修改時(shí)根據(jù)實(shí)際情況調(diào)整。

用MC9自帶的編輯軟件(路徑:C:Mcam9CommonEditorsPfe

PFE32.EXE)打開FANUC.PST文件(路徑:C:Mcam9MillPostsMPFAN.PST)

選擇【File】>【Edit】>【PST】命令,系統(tǒng)彈出讀文件窗口,選擇Mpfan.PST文件,系統(tǒng)彈出如下圖所示編輯器。

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“G49”,如下圖所示:

單擊按鈕,查找結(jié)果所在行為:

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

插入G54指令到當(dāng)前行,將其修改為:

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

輸出的NC文件修改前對(duì)應(yīng)位置指令為:

N102G0G17G40G49G80G90

修改后變?yōu)椋?/p>

N102G0G17G40G49G80G90G54

查找當(dāng)前行的上一行:

pbld,n,*smetric,e

將其整行刪除,或加上“?!背蔀樽⑨屝校?/p>

#pbld,n,*smetric,e

修改后G21指令不再出現(xiàn),某些控制器可不用此指令。注意修改時(shí)保持格式一致。G21指令為選擇公制單位輸入,對(duì)應(yīng)的英制單位輸入指令為G20。

2、增加G54指令(方法二):

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“force_wcs”,單擊按鈕,查找結(jié)果所在行為:

force_wcs:no#ForceWCSoutputateverytoolchange?

將no改為yes,修改結(jié)果為:

force_wcs:yes#ForceWCSoutputateverytoolchange?

輸出的NC文件修改前對(duì)應(yīng)位置指令為:

N106G0G90X16.Y-14.5A0.S2200M3

修改后變?yōu)椋?/p>

N106G0G90G54X16.Y-14.5A0.S2200M3

前一方法為強(qiáng)制輸出固定指令代碼,如需使用G55~G59指令時(shí),有所不便。多刀路同時(shí)輸出時(shí),只在整個(gè)程序中出現(xiàn)一次G54指令。后一方法同其他后處理文件產(chǎn)生G54指令的原理相同,多刀路同時(shí)輸出時(shí),每次換刀都會(huì)出現(xiàn)G54指令,也可根據(jù)參數(shù)自動(dòng)轉(zhuǎn)換成G55~G59指令。

輸出三軸加工中心程序的FANUC后處理文件為MP_EZ.PST,輸出4軸加工中心程序的三菱控制器后處理文件為MP520AM.PST。

3、刪除第四軸數(shù)據(jù)“A0.”,以適應(yīng)三軸加工中心:

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“RotaryAxis”,單擊按鈕,查找結(jié)果所在行為:

164.EnableRotaryAxisbutton?y

將其修改為:

164.EnableRotaryAxisbutton?n

修改后第四軸數(shù)據(jù)不再出現(xiàn)。

4、刪除刀具號(hào)、換刀指令、回參考點(diǎn)指令,適應(yīng)無刀庫的數(shù)控銑機(jī)床:

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“M6”,單擊按鈕,查找結(jié)果所在行為:

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

將其修改為:

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

另一個(gè)換刀的位置所在行為:

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

將其刪除或改為注釋行:

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

修改后換刀指令行不再出現(xiàn),通常修改第一個(gè)出現(xiàn)“M6”指令的位置即可。

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“*sg28ref”,單擊按鈕,查找結(jié)果所在行為:

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文件修改前對(duì)應(yīng)位置指令為:

N116G91G28Z0.M9

修改后變?yōu)椋?/p>

N116M9

PST文件中另有兩個(gè)類似位置,如使用G92指令確定工件坐標(biāo),可對(duì)其適當(dāng)修改。加工結(jié)束后,機(jī)床各軸不回參考點(diǎn),便于手動(dòng)換刀時(shí)節(jié)省時(shí)間。

5、刪除NC文件的程序名、注釋行:

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“%”,單擊按鈕,查找結(jié)果所在行為:

"%",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文件修改前對(duì)應(yīng)位置指令為:

O0010

(PROGRAMNAME-A2)

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

修改后以上指令行不再出現(xiàn)。

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“pstrtool”,單擊按鈕,查找結(jié)果所在行為:

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

將其刪除或改為注釋行:

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

輸出的NC文件修改前對(duì)應(yīng)位置指令為:

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

修改后以上指令行不再出現(xiàn)。此注釋行指明當(dāng)前刀路所使用的刀具參數(shù),可用于加工前核對(duì)加工單,建議保留。法蘭克及三菱控制器可以接受注釋內(nèi)容。

6、取消行號(hào):

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“omitseq”,單擊按鈕,查找結(jié)果所在行為:

omitseq:no#Omitsequenceno.

將其修改為:

omitseq:yes#Omitsequenceno.

修改后行號(hào)不再出現(xiàn)。

7、調(diào)整下刀點(diǎn)坐標(biāo)值位置:

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“g43”,單擊按鈕,查找結(jié)果所在行為:

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文件修改前對(duì)應(yīng)位置指令為:

G0G90G54X16.Y-14.5S2200M3

G43H0Z20.M8

修改后變?yōu)椋?/p>

G0G90G54X16.Y-14.5

G0Z20.

S2200M3

G43H0M8

新的指令順序使下刀點(diǎn)(安全高度)x、y、z坐標(biāo)值同其他指令分開,易于在斷刀時(shí)修改。G43指令在PST文件中有兩個(gè)位置,如僅使用G54指令時(shí),修改第一個(gè)出現(xiàn)“G43”的位置即可。

8、輸出普通及啄式鉆孔循環(huán)指令:

單擊按鈕,系統(tǒng)彈出查找對(duì)話框,輸入“usecandrill”,單擊按鈕,查找結(jié)果相關(guān)行為:

usecandrill:no#Usecannedcyclefordrill

usecanpeck:no#UsecannedcycleforPeck

將其修改為:

usecandrill:yes#Usecannedcyclefordrill

usecanpeck:yes#UsecannedcycleforPeckMastercam系統(tǒng)配置的是適應(yīng)單一類型控制系統(tǒng)的通用后置處理,該后置處理提供了一種功能數(shù)據(jù)庫模型,用戶根據(jù)數(shù)控機(jī)床和數(shù)控系統(tǒng)的具體情況,可以對(duì)其數(shù)據(jù)庫進(jìn)行修改和編譯,定制出適應(yīng)某一數(shù)控機(jī)床的專用后置處理程序。

Mastercam系統(tǒng)后置處理文件的擴(kuò)展名為PST,稱為PST文件,它定義了切削加工參數(shù)、NC程序格式、輔助工藝指令,設(shè)置了接口功能參數(shù)等,其結(jié)構(gòu)由八個(gè)部分組成:

1.注解

程序每一列前有“#”符號(hào)表示該列為不影響程序執(zhí)行的文字注解。如:

#mi2-Absolute,orIncrementalpositioning

0=absolute

1=incremental

表示mi2定義編程時(shí)數(shù)值給定方式,若mi=0為絕對(duì)值編程,mi=1為增量值編程。

在這一部分里,定義了數(shù)控系統(tǒng)編程的所有準(zhǔn)備功能G代碼格式和輔助功能M代碼格式。

2.程序糾錯(cuò)

程序中可以插入文字提示來幫助糾錯(cuò),并顯示在屏幕上。如:

#Errormessages(錯(cuò)誤信息)

psuberror#Arcoutputnotallowed

"ERROR-WRONGAXISUSEDINAXISSUBSTITUTION",e

如果展開圖形卷成旋轉(zhuǎn)軸時(shí),軸替換出錯(cuò),則在程序中會(huì)出現(xiàn)上面引號(hào)中的錯(cuò)誤提示。

3.定義變量的數(shù)據(jù)類型、使用格式和常量賦值

如規(guī)定G代碼和M代碼是不帶小數(shù)點(diǎn)的兩位整數(shù),多軸加工中心的旋轉(zhuǎn)軸的地址代碼是A、B和C,圓弧長(zhǎng)度允許誤差為0.002,系統(tǒng)允許誤差為0.00005,進(jìn)給速度最大值為10m/min等。

4.定義問題

可以根據(jù)機(jī)床加工需要,插入一個(gè)問題給后置處理程序執(zhí)行。

如定義NC程序的目錄,定義啟動(dòng)和退出后置處理程序時(shí)的C-Hook程序名。

5.字符串列表

字符串起始字母為s,可以依照數(shù)值選取字符串,字符串可以由兩個(gè)或更多的字符來組成。

字符串sg17,表示指定XY加工平面,NC程序中出現(xiàn)的是G17,scc1表示刀具半徑左補(bǔ)償,NC程序中出現(xiàn)的是G41,字符串sccomp代表刀具半徑補(bǔ)償建立或取消。

6.自定義單節(jié)

可以讓使用者將一個(gè)或多個(gè)NC碼作有組織的排列。

自定義單可以是公式、變量、特殊字符串等:

pwcs#G54+coordinatesettingattoolchange

ifmil>1,pwcs_g54

表示用pwcs單節(jié)指代#G54+在換刀時(shí)坐標(biāo)設(shè)定值,mil定義為工件坐標(biāo)系(G54~G59)

7.預(yù)先定義的單節(jié)

使用者可按照數(shù)控程序規(guī)定的格式將一個(gè)或多個(gè)NC代碼作有組織的排列,編排成一條程序段。

8.系統(tǒng)問答

后置處理軟件提出了五組問題,供使用者回答,可按照注解文字、賦值變量、字符串等內(nèi)容,根據(jù)使用的機(jī)床、數(shù)控系統(tǒng)進(jìn)行回答。設(shè)計(jì)后置處理文件,一般是按照NC程序的結(jié)構(gòu)模塊來進(jìn)行。根據(jù)NC程序的功能,后置處理文件分成六個(gè)模塊如下:

1.文件頭

文件頭部分設(shè)定程序名稱和編號(hào),此外,SINUMERIK810D系統(tǒng)還必須指定NC程序存放路徑,并按照以下格式輸出:

“%_N_(程序名及編號(hào))_(路徑)”。

NC程序可存放在主程序、子程序和工作程序目錄下,擴(kuò)展名分別為:MPF、SPF、WPD,一般放在工作程序目錄下。因此經(jīng)修改的Pst文件格式為:

Pheader#Startoffile

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

2.程序起始

在程序開始,要完成安全設(shè)定、刀具交換、工件坐標(biāo)系的設(shè)定、刀具長(zhǎng)度補(bǔ)償、主軸轉(zhuǎn)速控制、冷卻液控制等,并可顯示編程者、編程日期、時(shí)間等注解。

修改后的有刀具號(hào)Pst文件開頭格式如下:

#Startofnon-zerotoolnumber

pspindle(主軸轉(zhuǎn)速計(jì)算)

pcom_movbtl(移動(dòng)設(shè)備)

ptoolcomment(刀具參數(shù)注解)

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

(快進(jìn)、XY加工平面、取消刀補(bǔ)、取消固定循環(huán)、絕對(duì)方式編程)

ifmil<=one,pg92_rtrnz,pg92_rtrn,pg92_g92(返回參考點(diǎn))

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

(快進(jìn)至某位置、坐標(biāo)系編置、主軸轉(zhuǎn)速等)

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

(安全高度、刀長(zhǎng)補(bǔ)償、開冷卻液)

pcom_movea(加工過程)

3.刀具交換

刀具交換執(zhí)行前,須完成返回參考點(diǎn)、主軸停止動(dòng)作,然后換刀,接著完成刀具長(zhǎng)度補(bǔ)償、安全設(shè)定、主軸轉(zhuǎn)速控制。

Pst文件中用自定義單節(jié)ptlchg指代換刀過程,編輯修改后的程序如下:

Ptlchg#Toolchange

ptoolcomment(新刀參數(shù)注解)

comment(插入注解)

ifstagetool<>two,pbld,n,*t,e(判斷、選刀)

n,"M6"(換刀)

pindex(輸出地址)

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

(快進(jìn)至某位置、坐標(biāo)系偏置、主軸轉(zhuǎn)速等)

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

(安全高度、刀長(zhǎng)補(bǔ)償號(hào)、開冷卻液)

pcom_movea(加工過程)

4.加工過程

這一過程是快速移動(dòng)、直線插補(bǔ)、圓弧插補(bǔ)、刀具半徑補(bǔ)償?shù)然炯庸?dòng)作。

對(duì)于幾乎所有系統(tǒng),這些加工動(dòng)作的程序指令基本相同。只是注意SINUMERIK810D系統(tǒng)的刀具長(zhǎng)度補(bǔ)償值由字母D后加兩位數(shù)字調(diào)用,不需要G43/G44指令;而半徑補(bǔ)償值則由G41/G42調(diào)用,不需要再接地址代碼。用G40取消刀具長(zhǎng)度和刀具半徑補(bǔ)償。

5.切削循環(huán)

Mastercam軟件提供了6種內(nèi)定的孔加工固定循環(huán)方式:一般鉆削(Drill/Cbore)、深孔啄鉆(PeckDrill)、斷屑鉆(ChipBreak)、右攻絲(Tap)、精鏜孔(Bore#1)、粗鏜孔(Bore#2),通過雜項(xiàng)選項(xiàng)(Misc#1/Misc#2)可設(shè)定左攻絲、背鏜孔、盲孔鏜孔、盲孔鉸孔等循環(huán),并采用G73~G89代碼來表示。

如對(duì)于深孔鉆削固定循環(huán),Mastercam采用的格式為:G83X_Y_Z_R_Q_F;而SINUMERIK810D系統(tǒng)用CYCLE83指代深孔鉆削循環(huán),其NC程序要求給出循環(huán)加工所有參數(shù),輸出格式為:

CYCLE83(RTP,RFP,SDIS,DP,DPR,F(xiàn)DEP,F(xiàn)DPR,DAM,DTB,DTS,F(xiàn)RF,VARI)

在pst文件中需按SINUMERIK810D系統(tǒng)格式進(jìn)行定義、修改和編寫。

6.程序結(jié)尾

程序結(jié)尾一般情況下是取消刀補(bǔ)、關(guān)冷卻液、主軸停止、執(zhí)行回參考點(diǎn),程序停止等動(dòng)作。下面是修改后的pst程序結(jié)尾:

Ptoolend_t#Endoftoolpath,toolchange

pbld,n,sccomp,"M5",*scoolant,e(取消刀補(bǔ)、主軸停止、關(guān)冷卻液)

pbld,n,*sg74,"Z1=0.X1=0.Y1=0.",e(返回參考點(diǎn))

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

else,protretabs(程序結(jié)束)

#POST名稱

:wgkG54

#類型

:MILL

#機(jī)床名稱

:GENERICFANUC

#控制器名稱

:GENERICFANUC

#描述

:GENERICFANUC3AXISMILLPOST

#AssociatedPost

:NONE

#車/銑復(fù)合

:NO

#4-axis/Axissubs.

:NO

#五軸

:NO

#子程序支持

:NO

#自動(dòng)換刀

:NO

#工作坐標(biāo)系

:G54

#Executable

:MP8.00

#

#

#

#這個(gè)POST支持FANUC控制器普通三軸銑床的的G代碼輸出,

#不支持自動(dòng)換刀,有最大圓弧報(bào)警

#它來源于MP-EZ.PST

#是針對(duì)MastercamMillV8的特征而設(shè)計(jì)的

#

##

#修改日志:

#

#ProgrammersNote:

#CNC05/01/00

-

Initialpostsetup,jce

#

2002-10-11

-

去掉自動(dòng)換刀,xxx

#

2002-10-12

-

增加中文注釋,xxx

#

2002-10-21

-

增加最大圓弧警告,xxx

#

2002-11-05

-

修改坐標(biāo)系為G54,xxx

#

#特征:

#

#

#

#下列Misc.(雜項(xiàng))必須使用整數(shù):

#

#mi2-絕對(duì)或增量坐標(biāo)attoplevel

#

0=絕對(duì)

#

1=增量

#

#mi3-選擇G28或G30來執(zhí)行參考點(diǎn)回歸.

#

0=G28,1=G30

#

#Cannedtext:

#

在輪廓點(diǎn)里插入"cantext".以允許/禁止下列Mastercam里許可的功能,

#

EnteringcantextonacontourpointfromwithinMastercamallowsthe

#

followingfunctionstoenable/disable.

#

Cantext值:

#

1=Stop=輸出"M00"停止碼

#

2=Ostop=

輸出"M01"選擇停止碼

#

3=Bldon=在NC單節(jié)打開單節(jié)刪除碼(\)

#

4=bLdoff=在NC單節(jié)關(guān)閉單節(jié)刪除碼(\)

#

#

#鉆孔:

#在這個(gè)POST里支持所有的鉆孔方法.

#

#附加注意事項(xiàng):

#1)G54callsaregeneratedwheretheworkoffsetentryof0=G54,

#

1=G55,etc.

#2)由NCI變量"met_tool"決定是否使用米制

#

#3)以增量方式從換刀起始位置計(jì)算運(yùn)動(dòng)量.

#

起始位置通常定義為所有換刀時(shí)刀具所處的最后位置

#

Incrementalmodecalculatesmotionfromhomepositionattoolchanges.

#

Thehomepositionisusedtodefinethelastpositionofthetool

#

foralltoolchanges.

#4)變量'absinc'現(xiàn)已被預(yù)先定義,設(shè)定mi2(雜項(xiàng)整數(shù))以定義

#

絕對(duì)/增量程序輸出.

#

#

#DebuggingandFactorySetProgramSwitches

調(diào)試和加工設(shè)置程序切換

#

m_one

:-1

#定義常數(shù)

zero

:0

#定義常數(shù)

one

:1

#定義常數(shù)

two

:2

#定義常數(shù)

three

:3

#定義常數(shù)

four

:4

#定義常數(shù)

five

:5

#定義常數(shù)

c9k

:9999

#定義常數(shù)

fastmode

:1

#Posting速度最佳化

bug1

:2

#0=不顯示,1=普通列表框,2=編輯器

bug2

:-30

#Appendpostlinelabels,non-zeroiscolumnposition?

bug3

:0

#Appendwhatlineno.toeachNCline?

bug4

:1

#AppendNCIlineno.toeachNCline?

whatno

:yes

#不執(zhí)行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

#全局變量錯(cuò)誤檢測(cè)

getnextop

:0

#建立下一個(gè)變量表

#

#

一般輸出設(shè)置

#

sub_level

:1

#允許自動(dòng)子程序支持

breakarcs

:no

#在各象限分割圓弧

arcoutput

:0

#0=IJK,1=R不帶符號(hào),2=R(超過180度時(shí)帶負(fù)號(hào))

arctype

:2

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

arccheck

:1

#檢測(cè)小圓弧,轉(zhuǎn)化為直線

atol

:.01

#arccheck=2時(shí)的角度公差

ltol

:.002

#arccheck=1時(shí)的長(zhǎng)度公差

vtol

:.0001

#系統(tǒng)公差

maxfeedpm

:500

#進(jìn)給速度極限(英寸/分鐘)

ltol_m

:.05

#arccheck=1時(shí)的長(zhǎng)度公差,米制

vtol_m

:.0025

#系統(tǒng)公差,米制

maxfeedpm_m:10000

#進(jìn)給速度極限毫米/分鐘

force_wcs

:yes

#每次換刀時(shí)強(qiáng)制輸出WCS

spaces

:1

#各指令之間插入的空格數(shù)

omitseq

:no

#省略序號(hào)

seqmax

:9999

#最大序號(hào)

stagetool

:0

#0=無預(yù)先備刀,1=預(yù)備刀具

use_gear

:0

#輸出齒輪交換代碼,0=no,1=yes

max_speed

:6000

#最大主軸轉(zhuǎn)速

min_speed

:1

#最小主軸轉(zhuǎn)速

nobrk

:no

#Omitbreakupofx,y&zrapidmoves

progname

:1

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

max_arc

:50000

#機(jī)床允許的最大圓弧半徑

#

#

旋轉(zhuǎn)軸設(shè)定

#

vmc

:1

#0=臥式,1=立式#

#

允許鉆孔固定循環(huán)功能

#

usecandrill:yes

#使用普通鉆孔固定循環(huán)

usecanpeck

:yes

#使用啄式鉆孔固定循環(huán)

usecanchip

:yes

#使用斷屑鉆孔固定循環(huán)

usecantap

:yes

#使用攻螺紋固定循環(huán)

usecanbore1:yes

#使用鏜孔固定循環(huán)1

usecanbore2:yes

#使用鏜孔固定循環(huán)2

usecanmisc1:yes

#使用雜項(xiàng)固定循環(huán)1

usecanmisc2:yes

#使用雜項(xiàng)固定循環(huán)2

#

#通用自定義變量初始化(不能改變!)

#

xia

:0

#FormatedabsolutevalueforXincrementalcalculations

yia

:0

#FormatedabsolutevalueforYincrementalcalculations

zia

:0

#FormatedabsolutevalueforZincrementalcalculations

bld

:0

#單節(jié)刪除激活

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

#

#

#定義英制/米制坐標(biāo)格式列表

fs21

0.70.6

#小數(shù),absolute,7place,defaultforinitialize(

fs22

0.4l1.3

#小數(shù),absolute,4/3place(x,y,z)

fs23

0.4l1.3d

#小數(shù),delta,4/3place

(i,j,k)

#Commonformatstatements

fs24

1010

#整數(shù),無前綴

fs25

2020l

#整數(shù),強(qiáng)制兩位前綴

fs26

3030l

#整數(shù),強(qiáng)制三位前綴

fs27

4040l

#整數(shù),強(qiáng)制四位前綴

fs29

0.10.1

#小數(shù),absolute,1place

fs210

0.20.2

#小數(shù),absolute,2place

fs211

0.30.3

#小數(shù),absolute,3place

fs212

0.40.4

#小數(shù),absolute,4place

fs213

0.50.5

#小數(shù),absolute,5place

fs214

0.30.3d

#小數(shù),delta,3place

fs215

0.20.1

#小數(shù),absolute,2/1place

fs216

1010n

#整數(shù),強(qiáng)制輸出

#輸出加工類型字符串定義

#

#字符串-字符串標(biāo)簽必須由's'開頭,它們沒有預(yù)先指派

#

#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

#

#

錯(cuò)誤信息

#

saxiswarn

"

WARNING-THERADOFARCISTOOLARGE"

#

#一般的G和M代碼串選擇表

GeneralGandMCodeStringselecttables

#

#運(yùn)動(dòng)G代碼選擇

sg00

G00

#快速定位

sg01

G01

#直線進(jìn)給

sg02

G02

#圓弧插補(bǔ)CW

sg03

G03

#圓弧插補(bǔ)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

#

#選擇參考點(diǎn)回歸字串

sg28

G28

#第一參考點(diǎn)回歸

sg30

G30

#第二參考點(diǎn)回歸

sg28ref

#Targetstring

fstrselsg28mi3sg28ref

#

#切削補(bǔ)償G字串選擇

scc0

G40

#切削補(bǔ)償取消

scc1

G41

#切削左補(bǔ)償

scc2

G42

#切削右補(bǔ)償

sccomp

#Targetforstring

fstrselscc0cc_possccomp

#

#鉆孔固定循環(huán)字符串選擇

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

#

#選擇增量或絕對(duì)G字符串

sg90

G90

#絕對(duì)代碼

sg91

G91

#增量代碼

sgabsinc

#Targetstring

fstrselsg90absincsgabsinc

#

#鉆孔固定循環(huán)參考高度

sg98

G98

#Z軸回到起始高度

sg99

G99

#Z軸回到參考高度

sgdrlref

#Targetforstring

fstrselsg98drillrefsgdrlref

#DrillcycleGstringselect

#

#Generatestringforspindle

sm04

M04

#主軸反轉(zhuǎn)

sm05

M05

#主軸停止

sm03

M03

#主軸正轉(zhuǎn)

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

#刀具號(hào)

fmt

T

4

first_tool

#第一把使用的刀具

fmt

T

4

next_tool

#下一把使用的刀具

fmt

D

4

tloffno

#直徑偏移號(hào)

fmt

H

4

tlngno

#長(zhǎng)度偏移號(hào)

fmt

G

4

g_wcs

#WCSGaddress

fmt

P

4

p_wcs

#WCSPaddress

fmt

S

4

speed

#主軸轉(zhuǎn)速

fmt

M

4

gear

#Gearrange

#

fmt

N

4

n

#序號(hào)

fmt

X

2

xabs

#X坐標(biāo)輸出

fmt

Y

2

yabs

#Y坐標(biāo)輸出

fmt

Z

2

zabs

#Z坐標(biāo)輸出

fmt

X

3

xinc

#X坐標(biāo)輸出

fmt

Y

3

yinc

#Y坐標(biāo)輸出

fmt

Z

3

zinc

#Z坐標(biāo)輸出

fmt

I

3

i

#x軸方向上的圓弧中心描述

fmt

J

3

j

#y軸方向上的圓弧中心描述

fmt

K

3

k

#z軸方向上的圓弧中心描述

fmt

R

2

arcrad

#圓弧半徑

fmt

F

15

feed

#進(jìn)給率

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

#

#文件起始和刀具交換設(shè)置

#

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

]

#換刀設(shè)置

pspindle

#主軸轉(zhuǎn)速計(jì)算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

#文件開始前調(diào)用

ifmet_tool=one,#米制常量和變量調(diào)整

[

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

運(yùn)動(dòng)NC輸出

#

#絕對(duì)方式輸出的變量為xabs,yabs,zabs.

#增量方式輸出的變量為xinc,yinc,zinc.

#

prapidout

#輸出直線運(yùn)動(dòng)的NC指令-快速

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

pxout,pyout,pzout,strcantext,scoolant,e

plinout

#輸出直線運(yùn)動(dòng)的NC指令-進(jìn)給

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

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

pcirout

#輸出圓弧插補(bǔ)的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

#輸出直線運(yùn)動(dòng)的NC指令-快速

pncoutput

pzrapid

#輸出直線運(yùn)動(dòng)的NC指令-快速Zonly

pncoutput

plin

#輸出直線運(yùn)動(dòng)的NC指令-進(jìn)給

pncoutput

pz

#輸出直線運(yùn)動(dòng)的NC指令-進(jìn)給Zonly

pncoutput

pmx

#輸出NCI向量的NC指令

pncoutput

pcir

#輸出圓弧插補(bǔ)的NC指令

pncoutput

#

#Motionoutputcomponents

運(yùn)動(dòng)輸出組成

#

pbld

#Cannedtext-單節(jié)刪除

ifbld,'/'

pfbld

#強(qiáng)制-單節(jié)刪除

"/"

pccdia

#切削補(bǔ)償

#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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論