模具论坛

 找回密码
 注册

扫一扫,微信登录

QQ登录

只需一步,快速开始

搜索
热搜: 冲压 注塑 求助
    回车查看更多
    论坛可能已存在您要发布的主题帖 关闭
      查看: 2949|回复: 2

      [求助] 如何修改MasterCAM的后处理pst文件

      [复制链接]
      发表于 2009-11-14 21:06:36 | 显示全部楼层 |阅读模式
      如何修改现有的后处理文件
      发表于 2009-11-16 11:15:18 | 显示全部楼层
      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
      "error-wrong axis used in axis substitution", e
      如果展开图形卷成旋转轴时,轴替换出错,则在程序中会出现上面引号中的错误提示。
      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
      " %_n_", progname, "_wpd" (程序名、存放目录)
      2. 程序起始
      在程序开始,要完成安全设定、刀具交换、工件坐标系的设定、刀具长度补偿、主轴转速控制、冷却液控制等,并可显示编程者、编程日期、时间等注解。
      修改后的有刀具号pst文件开头格式如下:
      # start of file for non-zero tool number
      ......
      pspindle (主轴转速计算)
      pcom_movbtl (移动设备)
      ptoolcomment (刀具参数注解)
      ......
      pbld, n, *sgcode, *sgplane, "g40", "g80", *sgabsinc
      (快进、xy加工平面、取消刀补、取消固定循环、绝对方式编程)
      if mil <=one, pg92_rtrnz, pg92_rtrn, pg92_g92 (返回参考点)
      ......
      pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, pcan1
      (快进至某位置、坐标系编置、主轴转速等)
      pbld, n, pfzout, *tlngno, scoolant, [ if stagetool=one, *next_tool]
      (安全高度、刀长补偿、开冷却液)
      pcom_movea (加工过程)
      3. 刀具交换
      刀具交换执行前,须完成返回参考点、主轴停止动作,然后换刀,接着完成刀具长度补偿、安全设定、主轴转速控制。
      pst文件中用自定义单节ptlchg指代换刀过程,编辑修改后的程序如下:
      ptlchg # tool change
      ......
      ptoolcomment (新刀参数注解)
      comment (插入注解)
      if stagetool <> two, pbld, n, *t, e (判断、选刀)
      n, "m6" (换刀)
      pindex (输出地址)
      pbld, n, *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, *speed, *spindle, pgear, pcan1
      (快进至某位置、坐标系偏置、主轴转速等)
      pbld, n, pfzout, *tlngno, "m7", [if stagetool=one, *next_tool]
      (安全高度、刀长补偿号、开冷却液)
      pcom_movea (加工过程)
      4. 加工过程
      这一过程是快速移动、直线插补、圆弧插补、刀具半径补偿等基本加工动作。
      对于几乎所有系统,这些加工动作的程序指令基本相同。只是注意sinumerik 810d系统的刀具长度补偿值由字母d后加两位数字调用,不需要g43/g44指令;而半径补偿值则由g41/g42调用,不需要再接地址代码。用g40取消刀具长度和刀具半径补偿。
      5. 切削循环
      mastercam软件提供了6种内定的孔加工固定循环方式:一般钻削(drill/cbore)、深孔啄钻(peck drill)、断屑钻(chip break)、右攻丝(tap)、精镗孔(bore#1)、粗镗孔(bore #2),通过杂项选项(misc #1/misc #2)可设定左攻丝、背镗孔、盲孔镗孔、盲孔铰孔等循环,并采用g73~g89代码来表示。
      如对于深孔钻削固定循环,mastercam采用的格式为:g83 x_y_z_r_q_f;而sinumerik 810d系统用cycle83指代深孔钻削循环,其nc程序要求给出循环加工所有参数,输出格式为:
      cycle83(rtp,rfp,sdis,dp,dpr,fdep,fdpr,dam,dtb,dts,frf,vari)
      在pst文件中需按sinumerik 810d系统格式进行定义、修改和编写。
      6. 程序结尾
      程序结尾一般情况下是取消刀补、关冷却液、主轴停止、执行回参考点,程序停止等动作。



      st程序结尾:
      ptoolend_t #end of tool path, toolchange
      ......
      pbld, n, sccomp, "m5", *scoolant, e (取消刀补、主轴停止、关冷却液)
      pbld, n, *sg74, "z1=0. x1=0. y1=0.", e (返回参考点)
      if mi2=one, pbld, n, *sg74, "x1=0.", "y1=0.", protretinc, e
      else, protretabs (程序结束)


      # 附加注意事项:
      # 1) G54 calls are generated where the work offset entry of 0 = G54,
      # 1 = G55, etc.
      # 2) 由NCI变量"met_tool"决定是否使用米制
      #
      # 3) 以增量方式从换刀起始位置计算运动量.
      # 起始位置通常定义为所有换刀时刀具所处的最后位置
      # Incremental mode calculates motion from home position at toolchanges.
      # The home position is used to define the last position of the tool
      # for all toolchanges.
      # 4) 变量 'absinc' 现已被预先定义, 设定 mi2 (杂项整数)以定义
      # 绝对/增量程序输出.

      # Debugging and Factory Set Program Switches 调试和加工设置程序切换
      m_one : -1 #定义常数
      zero : 0 #定义常数
      one : 1 #定义常数
      two : 2 #定义常数
      three : 3 #定义常数
      four : 4 #定义常数
      five : 5 #定义常数
      c9k : 9999 #定义常数

      fastmode : 1 #Posting 速度最佳化
      bug1 : 2 #0=不显示, 1=普通列表框, 2=编辑器
      bug2 : -30 #Append postline labels, non-zero is column position?
      bug3 : 0 #Append whatline no. to each NC line?
      bug4 : 1 #Append NCI line no. to each NC line?
      whatno : yes #不执行 whatline branches(分枝)? (leave as yes)

      get_1004 : 1 #Find gcode 1004 with getnextop?
      rpd_typ_v7 : 0 #Use Version 7 style contour flags/processing?
      strtool_v7 : 2 #Use Version 7+ toolname?
      tlchng_aft : 2 #Delay call to toolchange until move line
      cant_tlchng : 1 #忽视 cantext 入口 on move with tlchng_aft
      newglobal : 1 #全局变量错误检测
      getnextop : 0 #建立下一个变量表

      # 一般输出设置
      sub_level : 1 #允许自动子程序支持
      breakarcs : no #在各象限分割圆弧
      arcoutput : 0 #0= IJK,1= R不带符号,2= R (超过180度时带负号)
      arctype : 2 #圆弧中心 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
      arccheck : 1 #检测小圆弧,转化为直线
      atol : .01 #arccheck=2时的角度公差
      ltol : .002 #arccheck=1时的长度公差
      vtol : .0001 #系统公差
      maxfeedpm : 500 #进给速度极限 (英寸/分钟)
      ltol_m : .05 #arccheck=1时的长度公差,米制
      vtol_m : .0025 #系统公差,米制
      maxfeedpm_m : 10000 #进给速度极限 毫米/分钟
      force_wcs : yes #每次换刀时强制输出WCS
      spaces : 1 #各指令之间插入的空格数
      omitseq : no #省略序号
      seqmax : 9999 #最大序号
      stagetool : 0 #0 = 无预先备刀, 1 = 预备刀具
      use_gear : 0 #输出齿轮交换代码,0=no,1=yes
      max_speed : 6000 #最大主轴转速
      min_speed : 1 #最小主轴转速
      nobrk : no #Omit breakup of x, y & z rapid moves
      progname : 1 #使用大写字母表示程序名
      max_arc : 50000 #机床允许的最大圆弧半径

      # 旋转轴设定
      vmc : 1 # 0 = 卧式 , 1 = 立式

      # 允许钻孔固定循环功能
      usecandrill : yes #使用普通钻孔固定循环
      usecanpeck : yes #使用啄式钻孔固定循环
      usecanchip : yes #使用断屑钻孔固定循环
      usecantap : yes #使用攻螺纹固定循环
      usecanbore1 : yes #使用镗孔固定循环1
      usecanbore2 : yes #使用镗孔固定循环2
      usecanmisc1 : yes #使用杂项固定循环1
      usecanmisc2 : yes #使用杂项固定循环2

      评分

      1

      查看全部评分

      发表于 2009-11-17 19:19:34 | 显示全部楼层
      不错,值得新手学习。
      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      关闭

      招聘信息 上一条 /5 下一条

      关闭

      求职信息 上一条 /5 下一条

      关闭

      技术求助 上一条 /5 下一条

      QQ|小黑屋|手机版|模具论坛 ( 浙ICP备15037217号 )

      GMT+8, 2025-7-28 05:28

      Powered by Discuz! X3.4

      © 2001-2013 Comsenz Inc.

      快速回复
      返回顶部
      返回列表
       
      客服电话:0577-61318188
      模具论坛交流群:
      模具论坛交流群
      工作时间:
      08:30-17:30