白竹 发表于 2024-9-27 19:09:43

Mastercam多坐标后处理分享。

第一次修改后处理。不懂的地方还很多,不便之处请多多包涵。可以说是后处理方面是小白。市场找不到合适自己的,只能动手了。
       平时做产品用到的一个工作台安装工装,一次装夹加工多个产品的环境。
官方默认的多坐标后处理是G54--G59,用完这组G代码后用 G54 P1,G54 P2.....
这个看机床有些设备直接可以用G54 P1... 这边的设备 是可以直接G54 P1 我就修改了一下G54这边的后处理。看机床,不是所有都是这样的。pwcs   #G54+ coordinate setting at toolchange
      if mi1$ > one,
      [
      sav_frc_wcs = force_wcs
      if sub_level$ > 0, force_wcs = zero
      if workofs$ <> prv_workofs$ | (force_wcs & toolchng),
          [
          if workofs$ < 100,
            [
          p_wcs = workofs$ + 1
            "G54", *p_wcs
      force_wcs = sav_frc_wcs
      !workofs$
      ]
有个小bug (出现的数字1-8看图)   出程序后处理的时候 全部出1-8,G54P1 有二次出现。只出刀路转换那个 输出少一个坐标(应该是系统默认了第一个(1-7)也算一个)
单一坐标输出应该不影响使用的,多坐标输出,假如需要6个坐标,那么设置7个坐标,只出刀路转换的坐标。前面(1-7)的不出。
本文仅供学习参考,如若上机实践,一经出现问题本人概不负责。请根据实际情况来做。祝各位事业进步。



memoni 发表于 2024-10-2 12:33:38

想上几个上几个,你上48个都行

N1 ( 6.0 倒角刀 | T2 | D2 | H2 | φ6. )
( MAX_Z = 10.MIN_Z = -1. )

( CMF-6.0 )
T2 M6
#1=54
#2=54
WHILE[#1LE#2]DO1
G0 G17 G90 G#1 X0. Y35.003 S2800 M3
M8
G43 H2 Z10.
G98 G81 Z-1. R.5 F200.
Y-35.003
G80
G91 Z30.
G17 G40 G80 G90
#1=#1+1
END1
M9
M5
S50
G91 G28 Z0.
M1

N2 ( 3.4 钻头 | T13 | D13 | H13 | φ3.4 )
( MAX_Z = 10.MIN_Z = -10. )

( DR-3.4 )
T13 M6
#1=54
#2=54
WHILE[#1LE#2]DO1
G0 G90 G#1 X0. Y-35.003 S2200 M3
M8
G43 H13 Z10.
G98 G83 Z-10. R.5 Q2. F300.
Y35.003
G80
G91 Z30.
G17 G40 G80 G90
#1=#1+1
END1
M9
M5
S50
G91 G28 Z0.
M1

riym 发表于 2024-9-29 09:15:31

兄弟,你把这下面的加到你的后处理,开启多工位就OK了{:lol:}



#-------------------------------------------------------------------------------------------------
Multi_coordinates : 0    # 开启多工位,多坐标选择?(利用宏代码循环指令多工位多坐标系加工,最多48个)
                         # 0 = 关闭多工位,多坐标
                         # 1 = 开启多工位,多坐标(数量小于7个使用标准坐标系G5N,大于6个使用附加坐标系G54.1 PN)
                         #                     (开启时在对话框输入数量小于2个或直接回车 = 软件设置的坐标系)
#-------------------------------------------------------------------------------------------------


#-------------------------------------------------------------------------------------------------
fmt"P"4   dwellda      #G54.1坐标系P代码
coordinate         : 0
le_number          : 0
sav_spc1         : 0
hzbscbj            : 0
fmt "LE" 4le_number

pcoordinate
   if sjyxbj = 1238 & sydgx = 2589 & sfzmdl = 1579,
   [
    if Multi_coordinates = 1,
      [
      if hzbscbj = 0, q1, hzbscbj = 1
      if coordinate > 1 & coordinate < 7,
          [
          sav_spc1 = spaces$
          spaces$ = 0
          le_number = coordinate + 53
          pbld, "#1=54", e$
          pbld, "WHILE[#1", *le_number,"]", "DO1", e$
          spaces$ = sav_spc1
          ]
       else,
         if coordinate > 6,
          [
          if coordinate > 48, coordinate = 48
          sav_spc1 = spaces$
          spaces$ = 0
          le_number = coordinate
          pbld, "#2=1", e$
          pbld, "WHILE[#2", *le_number,"]", "DO1", e$
          spaces$ = sav_spc1
          ]
      ]
      ]


fq 1 coordinate "请输入坐标数量后按回车键确认!大于6个使用G54.1PN坐标系,输入数量小于 2 或直接回车确认等于软件默认坐标系(支持6个标准和48个附加坐标系)"

pcoordinate1
   if sjyxbj = 1238 & sydgx = 2589 & sfzmdl = 1579,
   [
    if Multi_coordinates = 1,
      [
      if coordinate > 1 & coordinate < 7,
          [
          sav_spc1 = spaces$
          spaces$ = 0
          pbld, "#1=#1+1", e$
          pbld, "END1", e$
          spaces$ = sav_spc1
          ]
       else,
         if coordinate > 6,
          [
          sav_spc1 = spaces$
          spaces$ = 0
          pbld, "#2=#2+1", e$
          pbld, "END1", e$
          spaces$ = sav_spc1
          ]
      ]
      ]

pwcss
   if sjyxbj = 1238 & sydgx = 2589 & sfzmdl = 1579,
   [
      ,
      ,
      ,
   ]
#-------------------------------------------------------------------------------------------------
pkdghsc
   if sjyxbj = 1238 & sydgx = 2589 & sfzmdl = 1579,
   [
      if Empty_knife = 1,
         [
          if coordinatea = 1, pbld, szbhl, e$
          if coordinatea = 2, pbld, sghla, e$
          pbld, , *sgcode, *sgabsinc, "G54", pfxout, pfyout, pfcout,
          ,
          ,
          pgear, , strcantext, e$
          if Length_Compensation = 1, pbld, sg43, *tlngno$, pfzout, , , e$
          if Length_Compensation = 2, pbld, *sgcode, pfzout, , , e$
         ]
       else,
         [
          pbld, sgabsinc, pwcs, pfxout, pfyout, pfzout, pfcout, e$
         ]
      ]
###################################################################################################

yin5816 发表于 2024-9-28 07:49:24

消灭零回复

75921872 发表于 2024-9-28 08:38:13

原后处理不需要按照你那么改,本身坐标系参数里0-5表示G54-G59,6-53表示G54.1 P1-G54.1 P48,代码里,只需要把G54.1 P_WCS,改成G54 P_WCS就够了

白竹 发表于 2024-9-28 09:33:44

75921872 发表于 2024-9-28 08:38
原后处理不需要按照你那么改,本身坐标系参数里0-5表示G54-G59,6-53表示G54.1 P1-G54.1 P48,代码里,只需 ...

这边的机台 默认坐标G54 P1。不过知道怎么改就好了。

chunlin0105 发表于 2024-9-29 11:36:34

谢谢大佬分享!!!

chunlin0105 发表于 2024-9-30 09:34:12

感谢分享!

制造狂魔 发表于 2024-10-8 17:17:32

收藏了,感谢楼主无私分享

sujunwu 发表于 2024-10-9 07:10:37

riym 发表于 2024-9-29 09:15
兄弟,你把这下面的加到你的后处理,开启多工位就OK了




你好,请问你这个代码添加到数车后处理里面可以吗?实现一个长轴可以加工多个相同零件
页: [1] 2 3
查看完整版本: Mastercam多坐标后处理分享。