
关于后处理.docx
15页关于后处理 Mastercam后置处理文件及设定方法详解Mastercam后置处理文件及设定方法详解 Mastercam系统配置的是适应单一类型限制系统的通用后置处理,该后置处理供应了一种功能数据库模型,用户依据数控机床和数控系统的详细状况,可以对其数据库进展修改和编译,定制出适应某一数控机床的专用后置处理程序 Mastercam系统后置处理文件的扩展名为PST,称为PST文件,它定义了切削加工参数、NC程序格式、协助工艺指令,设置了接口功能参数等,其构造由八个局部组成: 1. 注解 程序每一列前有“#”符号表示该列为不影响程序执行的文字注解如: # mi2-Absolute, or Incremental positioning 0=absolute 1=incremental 表示mi2定义编程时数值给定方式,假设mi=0为肯定值编程,mi=1为增量值编程 在这一局部里,定义了数控系统编程的全部打算功能G代码格式和协助功能M代码格式 2. 程序纠错 程序中可以插入文字提示来协助纠错,并显示在屏幕上如: # Error messages 〔错误信息〕 psuberror # Arc output not allowed \ 假如绽开图形卷成旋转轴时,轴替换出错,那么在程序中会出现上面引号中的错误提示。
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+ coordinate setting at toolchange if mil >1, pwcs_g54 表示用pwcs单节指代#G54+在换刀时坐标设定值,mil定义为工件坐标系〔G54~G59〕 7. 预先定义的单节 运用者可遵照数控程序规定的格式将一个或多个NC代码作有组织的排列,编排成一条程序段。
8. 系统问答 后置处理软件提出了五组问题,供运用者答复,可遵照注解文字、赋值变量、字符串等内容,根据运用的机床、数控系统进展答复 设计后置处理文件,一般是遵照NC程序的构造模块来进展依据NC程序的功能,后置处理文件分成六个模块如下: 1. 文件头 文件头局部设定程序名称和编号,此外,SINUMERIK 810D系统还必需指定NC程序存放路径,并遵照以下格式输出: “%_N_〔程序名及编号〕_〔路径〕” NC程序可存放在主程序、子程序和工作程序书目下,扩展名分别为:MPF、SPF、WPD,一般放在工作程序书目下因此经修改的Pst文件格式为: Pheader # Start of file \〔程序名、存放书目〕 2. 程序起始 在程序起先,要完成平安设定、刀具交换、工件坐标系的设定、刀具长度补偿、主轴转速限制、冷却液限制等,并可显示编程者、编程日期、时间等注解 修改后的有刀具号Pst文件开头格式如下: # Start of file for non-zero tool number ...... pspindle 〔主轴转速计算〕 pcom_movbtl 〔移动设备〕 ptoolcomment 〔刀具参数注解〕 ...... pbld, n, *sgcode, *sgplane, \ 〔快进、XY加工平面、取消刀补、取消固定循环、肯定方式编程〕 if mil max_speed, maxss = max_speed if speed > max_speed, speed = maxss if speed = max_arc, result = mprint(saxiswarn) pcan1, pbld, n, sgplane, sgcode, sgabsinc, pccdia, pxout, pyout, pzout, parc, feed, strcantext, scoolant, e pcom_moveb #Common motion preparation routines, before pxyzcout ps_inc_calc pncoutput #Movement output pcom_moveb comment pcan if gcode = zero, prapidout if gcode = one, plinout if gcode > one & gcode zero, [ if cant_pos1 = zero, pcant_1 if cant_pos2 = zero, pcant_2 if cant_pos3 = zero, pcant_3 if cant_pos4 = zero, pcant_4 if cant_pos5 = zero, pcant_5 if cant_pos6 = zero, pcant_6 if cant_pos7 = zero, pcant_7 if cant_pos8 = zero, pcant_8 if cant_pos9 = zero, pcant_9 if cant_pos10 = zero, pcant_10 pbld, n, strcantext, e strcantext = sblank ] pcan1 #Canned text - with move strcantext = sblank if cant_no > zero, [ if cant_pos1 = one, pcant_1 if cant_pos2 = one, pcant_2 if cant_pos3 = one, pcant_3 if cant_pos4 = one, pcant_4 if cant_pos5 = one, pcant_5 if cant_pos6 = one, pcant_6 if cant_pos7 = one, pcant_7 if cant_pos8 = one, pcant_8 if cant_pos9 = one, pcant_9 if cant_pos10 = one, pcant_10 ] if cstop, strcantext = strcantext + sm00 if cgstop, strcantext = strcantext + sm01 #Output of strcantext occurs at the end of the output line pcan2 #Canned text - after output call strcantext = sblank if cant_no > zero, [ if cant_pos1 = two, pcant_1 if cant_pos2 = two, pcant_2 if cant_pos3 = two, pcant_3 if cant_pos4 = two, pcant_4 if cant_pos5 = two, pcant_5 if cant_pos6 = two, pcant_6 if cant_pos7 = two, pcant_7 if cant_pos8 = two, pcant_8 if cant_pos9 = two, pcant_9 if cant_pos10 = two, pcant_10 pbld, n, strcantext, e strcantext = sblank ] pcant_1 #Canned text - output call cantext = cant_val1 pcant_out pcant_2 #Canned text - output call cantext = cant_val2 pcant_out pcant_3 #Canned text - output call cantext = cant_val3 pcant_out pcant_4 #Canned text - output call cantext = cant_val4 pcant_out pcant_5 #Canned text - output call cantext = cant_val5 pcant_out pcant_6 #Canned text - output call cantext = cant_val6 pcant_out pcant_7 #Canned text - output call cantext = cant_val7 pcant_out 。












