Mastercam后处理成批处理方法详解

众所周知,mastercam是不能够做到像其他软件一样按照操作或是按照组批处理程序。这也是目前mastercam的一大缺点。那么我们有办法解决这个问题吗?
这个问题我曾经咨询过mastercam美国后处理开发小组的人,他们的回复令我大跌眼镜。不可以,但是可以开发插件。这不是废话吗?
难道mastercam真的不能够做到批处理吗?
仔细分析一下,这个有几种结果。
1.开发插件,可以做到,已经开发处理好几种相关的外挂。
2.对每个操作或是组进行不同文件名的分配,可以达到批处理的效果。
3.利用机器的自带功能。可以做到。但只有部分机器可以。
目前市面上的数控机器不是都有自动分段/断开功能。当机器在传输程序时,读到程序有M30时,机器会自动把程序分开,并重新生成一个新的程序,再继续传输,直到下一个M30.
那么在这个过程中我们必须要保证程序号(Oxxxx)是唯一的,否则就会替换前面已经有的程序。

至于这个方法可能不是所有的机器都能够识别和做到,最好大家都去试一下,写一个简单的程序,到机器上传输一下就知道会不会自动分开。这个我早在2000年时在brother和howa机器上实现过,能够成功断开。faunc系统应该有没有问题的。没有试验过。

如就像下面这样的程序:


%
O1235(D522-79255-200A)
(DATE=DD-MM-YY - 15-06-11 TIME=HH:MM - 14:09)
G0G17G40G49G80G90
T1M6(T1-3.00 DIA 4FL 90 DEGREE FACEMILL R.03;LOC;.50 OOH;2.00)
G0G90G55X-17.4843Y-.2524A0.S9000M3
G43H1Z1.5M8
Z1.1
G1Z1.0143F200.
X16.6213
Y-1.6428
X-16.5843
Y-3.0332
X16.6213
Y-4.4236
X-17.4843
G0Z1.5
M5
G28G91Z0.0
G28G91X0.0Y0.0
M1
M30==============》此处必须有M30
%

%
O1236(D522-79255-200A)
(DATE=DD-MM-YY - 15-06-11 TIME=HH:MM - 14:09)
M01
T2M6(T2-2.00 DIA 4FL FACEMILL R.03;LOC;.375 OOH;2.00)
G0G90G55X-9.9917Y-2.1592A0.S9000M3
G43H2Z1.5
Z1.1143
G1X-10.0496Z1.1132F150.
X-8.539Z1.0869
X-10.0496Z1.0605
X-8.539Z1.0341
X-10.0496Z1.0078
X-8.539Z.9814
G0Z1.5
M5
G28G91Z0.0
G28G91X0.0Y0.0
M1
M30
%

今天我给大家的一种新的利用mastercam后处理进行修改成批处理的方法。也就是第三种方法.
这个方法其实很简单,关键就是不要让程序号(Oxxxx)重复,否则在传输过程将会出现替换的问题.

首先分析一下。批处理,就是同一个刀具的程序生成在一个程序里面,不同的刀具生成不同的程序号,不同程序,同时还要保证每个程序的完整性
完整性就是必须有程序头和程序尾等。。。

下面跟着我一步一步的往下做吧。后处理基于mastercamX5 MPFan.pst文件进行修改的。请勿用其他的后处理,主要是所调用的代码是基于这个后处理,不然又会有很多人说代码不对。

1.查找pheader$在上面增加以下代码


pheader1         #Call before start of other toolchange By http://postp.net
     pheader$

2.查找*progno$在其上面加入以下代码


progno$ = t$ + 1234

上面的代码意思是把程序名命名为当前的刀号+1234

3.查找ptlchg$在下面增加以下代码。


pheader1
pbld, *smetric, e$
pbld, *sgcode, *sgplane, scc0, sg49, sg80, *sgabsinc, e$



4.查找pretract 在块的结尾添加以下代码


pretract_1        #End of tool path, toolchange
      sav_absinc = absinc$
      absinc$ = one
      sav_coolant = coolant$
      coolant$ = zero

#      if nextop$ = 1003, #Uncomment this line to leave coolant on until eof unless
        [                 #  explicitely turned off through a canned text edit
        if all_cool_off,
          [
          #all coolant off with a single off code here
          if coolant_on, pbld, sall_cool_off, e$
          coolant_on = zero
          ]
        else,
          [
          local_int = zero
          coolantx = zero
          while local_int < 20 & coolant_on > 0,
            [
            coolantx = and(2^local_int, coolant_on)
            local_int = local_int + one
            if coolantx > zero,
              [
              coolantx = local_int
              pbld, scoolantx, e$
              ]
            coolantx = zero
            ]
          coolant_on = zero
          ]
        ]
      #cc_pos is reset in the toolchange here
      cc_pos$ = zero
      gcode$ = zero
      pbld, sccomp, *sm05, psub_end_mny, e$
      #pbld, sgabsinc, sgcode, *sg28ref, "Z0.", scoolant, e$
      #if nextop$ = 1003 | tlchg_home, pbld, *sg28ref, "X0.", "Y0.", protretinc, e$
      #else, pbld, protretinc, e$
      absinc$ = sav_absinc
      coolant$ = sav_coolant
      pbld, *sg28ref,"G91", "Z0.0", e$
      pbld, *sg28ref,"G91", "X0.0", "Y0.0", e$
      pbld , "M1" , e$
      pbld,  "M30", e$
      mergesub$
      clearsub$
      mergeaux$
      clearaux$
      "%", e$


5.查找peof$并修改为尾部信息如下


peof$            #End of file for non-zero tool
      pretract
      comment$
      pbld, *sg28ref,"G91", "Z0.0", e$
      pbld, *sg28ref,"G91", "X0.0", "Y0.0", e$
      pbld , "M1" , e$
      pbld,  "M30", e$
      mergesub$
      clearsub$
      mergeaux$
      clearaux$
      "%", e$


6.最后ptlchg1002$块,并修改其块下面的代码pretract
改为


pretract_1

大功告成。。


提示,以上代码在mastercamX4和X5两个版本完全通过,没有出现任何错误提示。程序经验证完整无缺。由此可见mastercamX版本以上的都是没有问题。相对于mastercamV8---V9.1这些版本是一样的,

只是代码有一点点不同。可以参考我的降级后处理的方法,进行相关的代码降级处理即可。
同时请勿修改任何一个代码。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空