Cimatron E 自编3轴POST源码.docx

上传人:b****1 文档编号:10403773 上传时间:2023-05-25 格式:DOCX 页数:21 大小:18.25KB
下载 相关 举报
Cimatron E 自编3轴POST源码.docx_第1页
第1页 / 共21页
Cimatron E 自编3轴POST源码.docx_第2页
第2页 / 共21页
Cimatron E 自编3轴POST源码.docx_第3页
第3页 / 共21页
Cimatron E 自编3轴POST源码.docx_第4页
第4页 / 共21页
Cimatron E 自编3轴POST源码.docx_第5页
第5页 / 共21页
Cimatron E 自编3轴POST源码.docx_第6页
第6页 / 共21页
Cimatron E 自编3轴POST源码.docx_第7页
第7页 / 共21页
Cimatron E 自编3轴POST源码.docx_第8页
第8页 / 共21页
Cimatron E 自编3轴POST源码.docx_第9页
第9页 / 共21页
Cimatron E 自编3轴POST源码.docx_第10页
第10页 / 共21页
Cimatron E 自编3轴POST源码.docx_第11页
第11页 / 共21页
Cimatron E 自编3轴POST源码.docx_第12页
第12页 / 共21页
Cimatron E 自编3轴POST源码.docx_第13页
第13页 / 共21页
Cimatron E 自编3轴POST源码.docx_第14页
第14页 / 共21页
Cimatron E 自编3轴POST源码.docx_第15页
第15页 / 共21页
Cimatron E 自编3轴POST源码.docx_第16页
第16页 / 共21页
Cimatron E 自编3轴POST源码.docx_第17页
第17页 / 共21页
Cimatron E 自编3轴POST源码.docx_第18页
第18页 / 共21页
Cimatron E 自编3轴POST源码.docx_第19页
第19页 / 共21页
Cimatron E 自编3轴POST源码.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Cimatron E 自编3轴POST源码.docx

《Cimatron E 自编3轴POST源码.docx》由会员分享,可在线阅读,更多相关《Cimatron E 自编3轴POST源码.docx(21页珍藏版)》请在冰点文库上搜索。

Cimatron E 自编3轴POST源码.docx

CimatronE自编3轴POST源码

*DEMO3axesPostProcessorforFANUC

*CIMATRON90VER9.0

*Lastupdate:

23-FEB-1998

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

*defineprivatevariables:

FORMAT(SEQUENCING)SeqSubSeqCNTRL_NUMNURBS_DEGcountfirstdeg;

FORMAT(TOOL)CutterCompFirstToolLastTool;

FORMAT(DWELL)CurDwell;

FORMAT(COORDINATES)XoldYoldZoldDXcenterDYcenterDZcenter;

FORMAT(COORDINATES)ZinitClearDepthCNTRL_XCNTRL_YCNTRL_ZKNOT_;

FORMAT(COORDINATES)XhomeYhomeZhome;

FORMAT(COORDINATES)XfirstOriginYfirstOriginZfirstOrigin;

FORMAT(USER_1)CurrSubNum;

FORMAT(coordinates)ORIGOLDIORIGOLDJORIGOLDK;

*defineprivateflags:

FORMAT(USER_2)FlagSubFlagSeqFlagSpin;

FORMAT(USER_2)FirstOriginChangeFlagErrorFlagrotmac;

*defineprivateconstants:

FORMAT(USER_2)YESNO;

*changetheformatofexistingvariables:

FORMAT(USER_1)SUB_NUMBER;

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

*INTERACTION(USER_1)"主程序号"MainNum=100;

INTERACTION(USER_3)"机床坐标设置"MACSYS=54;

INTERACTION(CHARACTER)"是否输出换刀"CHtool="N";

INTERACTION(TOOL)"刀径补偿增量"DiaComp=1;

INTERACTION(CHARACTER)"是否输出子程序"Sub="N";

INTERACTION(USER_1)"子程序号"StartSubNum=1000;

INTERACTION(USER_1)"换刀程序号"ChangeTool=8000;

INTERACTION(CHARACTER)"是否输出行号"NumYN="N";

INTERACTION(SEQUENCING)"行号起始"SeqStart=10;

INTERACTION(SEQUENCING)"行号增量"SeqIncr=1;

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

NON_MODALALL_VAR;

MODALX_CURPOSY_CURPOSZ_CURPOS;

MODALLIN_MOVCIRC_MOVMCH_FEEDSPIN_SPEEDSPIN_DIRMCH_COOLMCH_DWELL;

MODALCUTCOM_ONCUTCOM_OFF;

MODALCYC_DEPTHCYC_PECKCYC_DWELLCYC_RETRCYC_CLEARDepthClearNURBS_MOV;

IDENTICALX_CURPOSX_ENDPT;

IDENTICALY_CURPOSY_ENDPT;

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

NEW_LINE_IS$;

IF_SET(FlagSeq_EQ_NO)

OUTPUT\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;

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

BEGINNINGOFTAPE:

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_OFFNO_SUBROUT;

ELSE

SET_ONNO_SUBROUT;

END_IF;

*-----Unitmatrix(MUSTbeinputinthisorder!

!

!

ROT_MAT1=1.0;ROT_MAT2=0.0;ROT_MAT3=0.0;

ROT_MAT4=0.0;ROT_MAT5=1.0;ROT_MAT6=0.0;

ROT_MAT7=0.0;ROT_MAT8=0.0;ROT_MAT9=1.0;

*-----shiftalldataaccordingtotheMCHINEZEROindicatedbythe

*userinthePOSTPRinteraction

TRANS_MATX=0-X_MACH;

TRANS_MATY=0-Y_MACH;

TRANS_MATZ=0-Z_MACH;

*-----shifttheHOMEaccordingtotheMCHINEZEROindicatedbythe

*userinthePOSTPRinteraction

Xhome=X_HOME-X_MACH;

Yhome=Y_HOME-Y_MACH;

Zhome=Z_HOME-Z_MACH;

*-----toollocationisHOME

Xold=X_HOME;

Yold=Y_HOME;

Zold=Z_HOME;

*-----For1stORIGINCHANGE

FirstOriginChange=YES;

MCH_FEED=9999;

*-----output

*主程序号

*IF_SET(FlagSeq_EQ_YES)

*OUTPUT"%"\J"0"MainNum;

*ELSE

*OUTPUT"%"\J"0"MainNum;

*END_IF;

OUTPUT$"%";

*--Forthefirstoriginchange

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

flagrotmac=no;

BEGINNINGOFPROC:

KEEPPROC_NAME;

SET_ONMCH_COOL;

FlagSub=NO;

SubSeq=SeqStart;

CurDwell=0.0;

ENDOFTAPE:

IF_SET(FirstTool_NE_LastTool)

IF_SET(CHtool_EQ_"Y")

OUTPUT$"T"NEXT_TOOL;

*OUTPUT$"T"NEXT_TOOL"M98P"ChangeTool;

END_IF;

END_IF;

OUTPUT$"M09";

OUTPUT$"M05";

OUTPUT$"G91G28Z0";

OUTPUT$"M30";

ENDOFFILE:

IF_SET(FlagSeq_EQ_YES)

OUTPUT\J"%";

ELSE

OUTPUT\J"%";

END_IF;

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

FEED:

KEEPMCH_FEED;

SPIN:

KEEPSPIN_SPEED;

COOLANT:

KEEPMCH_COOL;

DWELL:

KEEPMCH_DWELL;

MillDWELL:

KEEPDWELL_TIME;

CurDwell=DWELL_TIME;

CUTTERCOMPENSATION:

KEEPCUTCOM_ON;

CUTTERCOMPENSATION:

COFF:

KEEPCUTCOM_OFF;

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

TOOLCHANGE:

FIRST:

*第一把刀

SET_ONSPIN_SPEEDSPIN_DIR;

*-----savefirsttoolnumber

FirstTool=CURR_TOOL;

LastTool=CURR_TOOL;

*-----toolcuttercompensationregisternumber

CutterComp=CURR_TOOL+DiaComp;

*-----assuming1sttoolisinthespindle,thereisnoneed

*fortoolchange)

*程序头换刀

IF_SET(CHtool_EQ_"y")CHtool="Y";END_IF;

IF_SET(CHtool_EQ_"Y")

OUTPUT$"T"CURR_TOOL;

END_IF;

*输出自定义刀具名

*OUTPUT$"("CURR_NAME")";

*输出系统刀具名(集合一起的)

OUTPUT$"("CURR_NAME"D="diameter_"R="tool_rad")";

*输出刀轨名(简化)

OUTPUT$"("TP_NAME")";

*输出时间

*OUTPUT$"("DATE_SYY"-"DATE_SMM"-"DATE_SDD")";

OUTPUT$"("DATE_SYY"-"DATE_SMM"-"DATE_SDD""TIME_SHH":

"TIME_SMM":

"TIME_SSS")";

*输出文件名

*OUTPUT$"("part_name")";

IF_SET(CHtool_EQ_"Y")

OUTPUT$"M06";

*-----morethenonetoolinthisrunofthePostProcessor

IF_SET(NEXT_TOOL_NE_CURR_TOOL)

OUTPUT$"T"NEXT_TOOL;

END_IF;

END_IF;

*-----standardtoolchangecommands.(assuming1sttoolisin

OUTPUT$"G17G40G49G80"\J"G91G28Z0"\J"G90G00G"MACSYS;

*OUTPUT$"G90G80G00G17G40";

IF_SET(CHtool_EQ_"Y")

OUTPUT$"G43H"CURR_TOOL;

END_IF;

TOOLCHANGE:

*下一把刀

SET_ONSPIN_SPEEDSPIN_DIR;

*-----toolcuttercompensationregisternumber

CutterComp=CURR_TOOL+DiaComp;

*-----toolchangecommand(byusinganinternaltoolchange

*subroutine)

*OUTPUT$"T"CURR_TOOL"M98P"ChangeTool;

IF_SET(CHtool_EQ_"Y")

OUTPUT$"M05"\J"M09";

OUTPUT$"T"CURR_TOOL;

END_IF;

*输出自定义刀具名

*OUTPUT$"("CURR_NAME")";

*输出系统刀具名(集合一起的)

OUTPUT$"("CURR_NAME"D="diameter_"R="tool_rad")";

IF_SET(CHtool_EQ_"Y")

OUTPUT$"M06";

OUTPUT$"T"NEXT_TOOL;

END_IF;

*-----standardtoolchangecommands.(assuming1sttoolisin

OUTPUT$"G17G40G49G80G"MACSYS;

*OUTPUT$"G90G80G00G17G40";

IF_SET(CHtool_EQ_"Y")

OUTPUT$"G43H"CURR_TOOL;

END_IF;

TOOLCHANGE:

LAST:

*最后一把刀

SET_ONSPIN_SPEEDSPIN_DIR;

*-----savelasttoolnumber

LastTool=CURR_TOOL;

*-----toolcuttercompensationregisternumber

CutterComp=CURR_TOOL+DiaComp;

IF_SET(CHtool_EQ_"Y")

OUTPUT$"M05"\J"M09";

OUTPUT$"T"CURR_TOOL;

END_IF;

*输出自定义刀具名

*OUTPUT$"("CURR_NAME")";

*输出系统刀具名(集合一起的)

OUTPUT$"("CURR_NAME"D="diameter_"R="tool_rad")";

IF_SET(CHtool_EQ_"Y")

*OUTPUT$"T"CURR_TOOL"M98P"ChangeTool;可循换刀子程序

OUTPUT$"M06";

*-----thelasttoolisthesameasthefirsttool

IF_SET(NEXT_TOOL_NE_CURR_TOOL)

OUTPUT$"T"NEXT_TOOL;

END_IF;

END_IF;

*-----standardtoolchangecommands.(assuming1sttoolisin

OUTPUT$"G17G40G49G80G"MACSYS;

*OUTPUT$"G90G80G00G17G40";

IF_SET(CHtool_EQ_"Y")

OUTPUT$"G43H"CURR_TOOL;

END_IF;

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

LINEARMOTION:

FAST:

FlagSpin=NO;

IF_SET(SPIN_SPEED)FlagSpin=YES;END_IF;

IF_SET(SPIN_DIR)FlagSpin=YES;END_IF;

IF_SET(FlagSpin_EQ_YES)

SET_ONSPIN_SPEEDSPIN_DIR;

OUTPUT$"S"SPIN_SPEED""SPIN_DIR;

if_SET(CurDwell_NE_0.0)

OUTPUT$"G04P"CurDwell;

CurDwell=0.0;

END_IF;

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;

OUTPUT$;

;

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

IF_SET(MCH_COOL)OUTPUT""MCH_COOL;END_IF;

SET_ONCIRC_MOVNURBS_MOV;

Xold=X_CURPOS;

Yold=Y_CURPOS;

Zold=Z_CURPOS;

LINEARMOTION:

FlagSpin=NO;

IF_SET(SPIN_SPEED)FlagSpin=YES;END_IF;

IF_SET(SPIN_DIR)FlagSpin=YES;END_IF;

IF_SET(FlagSpin_EQ_YES)

SET_ONSPIN_SPEEDSPIN_DIR;

OUTPUT$"S"SPIN_SPEED""SPIN_DIR;

if_SET(CurDwell_NE_0.0)

OUTPUT$"G04P"CurDwell;

CurDwell=0.0;

END_IF;

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_ONCIRC_MOVNURBS_MOV;

Xold=X_CURPOS;

Yold=Y_CURPOS;

Zold=Z_CURPOS;

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

CIRCULARMOTION:

FlagSpin=NO;

IF_SET(SPIN_SPEED)FlagSpin=YES;END_IF;

IF_SET(SPIN_DIR)FlagSpin=YES;END_IF;

IF_SET(FlagSpin_EQ_YES)

SET_ONSPIN_SPEEDSPIN_DIR;

OUTPUT$"S"SPIN_SPEED""SPIN_DIR;

if_SET(CurDwell_NE_0.0)

OUTPUT$"G04P"CurDwell;

CurDwell=0.0;

END_IF;

END_IF;

DXcenter=X_CENTER-Xold;

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

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2