青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 14314|回复: 26

PowerMILL后处理修改教程

[复制链接]
发表于 2012-5-6 11:14 | 显示全部楼层 |阅读模式
PowerMILL后处理修改教程.pdf (153.55 KB, 下载次数: 1342)
5 T! x& j1 |/ [1 `
8 k" k3 x8 U; H7 y2 e( q
本教程是偶在实际使用中的PowerMill后处理文件修改知识的积累,其中有部分修改案例来源于帮助文件,在此仅以文字和图片的形式把他记录下来与初学者共同分享。
By mymould(风影爱人)
一、完整的后处理文件介绍
一个完整的后处理文件通常有:定义字符段、定义字符格式段、定义键值段、定义指令值段、变量定义、程序格式段等部分组成。
下面我们先来看一个比较完整的后处理文件,并把它分为数段,把需要修改的地方做个必要的解释:
machine fanucom —————— 后处理文件头
=========================== 第一部分是定义字符段 ==============================
   define word TN
    address letter  = "TOOL TYPE- "
    address width   = 13
    field width     = 25
   end define
具体解释:
   define word TN —————————————— 定义字段;
    address letter  = "TOOL TYPE- " ————— 定义字段的返回值,比如在后处理文件里有“MS =C ; TN ToolType ; EM =C”,而在写程式的时候选用的是端铣刀,那么在CNC程式里就会有(TOOL TYPE- ENDMILL);
    address width   = 13 ——————————— 定义字符宽度,如上"TOOL TYPE- ",从T开始算起一共13位,包括空格;
    field width     = 25 ——————————— 定义返回字的宽度,如上"ENDMILL",如果field width = 2,那"TOOL TYPE- "就返回EN;如果field width = 25,那"TOOL TYPE- "就返回ENDMILL
   end define
========================== 第二段是定义字符的格式 =============================
   define format ( / G6 S T M1 M2 L P D E H O )
    address width              =   1
    field width                =   2
    exponent width             =   0
    scale factor               =   1
    scale divisor              =   1
    tape position              =   0
    print position             =   1
    sign                       = none
    not permanent
    not modal
   metric formats
    leading zeros              = false
    trailing zeros             = true
    decimal point              = false     控制公制尺寸的前导零、后导零,小数点
    decimal places             =   0
   imperial formats
    leading zeros              = false
    trailing zeros             = true
    decimal point              = false     控制英制尺寸的前导零、后导零,小数点
    decimal places             =   0
   end define
    word order = (    OP   N    G1   G2   G3   G4   G5   )
    word order = ( +  G6   G7   X    Y    Z    B    C    )
    word order = ( +  I    J    K    R    D    S    T    )
    word order = ( +  H    M1   M2   MS   msg  EM   Q    )      注册字符
    word order = ( +  Q1   Z2   R2   ID   F    )
    word order = ( +  TN   TD   TR   DY   MT   YR   PM   )
========================== 第三段是定义键值 ===================================
  define keys
    blocknumber                       = N —————— 定义程序段号
    preparatory function              = G1 ——————— 定义准备功能指令
    aux function                      = M1 —————— 定义辅助功能指令
    x feedrate                        not used ————— 定义X进给率指令
    y feedrate                        not used ————— 定义Y进给率指令
    z feedrate                        not used ————— 定义Z进给率指令
    circle angle                      not used  ————— 圆周角度
    x coordinate                      = X   —————— 定义X坐标轴
    y coordinate                      = Y   —————— 定义Y坐标轴
    z coordinate                      = Z   —————— 定义Z坐标轴
    key i                             = I  —————— 定义X轴矢量I
    key j                             = J  —————— 定义Y轴矢量J
    key k                            = K  —————— 定义Z轴矢量K
    feedrate                          = F  —————— 定义进给率指令
    feedrate per revolution           = F   ——————— 定义每转进给率指令
    spindle                           = S —————— 定义主轴指令
    tool number                       = T —————— 定义刀具指令
    cycle dwell                       not used
    dwell                             = X —————  定义暂停时间键值
    tool length                       = H —————— 定义刀具长度补偿指令
    tool radius                       = D —————— 定义刀具半径补偿指令
    drill peck depth                  = Q1 —————— 钻孔的啄钻深度
    drill hole depth                  = Z2 —————— 定义钻孔深度
    clearplane                        = R2 ————— 定义安全平面高度
    message start                     = MS ————— 定义注释的开始符
    message end                       = EM ———— 定义注释的结束符
    opskip                            = OP ———— 定义跳段符号
    radius                            = R ————— 定义半径R
    program id                        = ID ————— 定义程序号
    azimuth axis                      = B —————  在多轴加工中,定义方位轴
    elevation axis                    = C —————   在多轴加工中,定义仰角轴
    3rd rotation axis                 = null —————  在多轴加工中,定义第三旋转轴
    leader                            not used
    x vector                          not used
    y vector                          not used
    z vector                          not used
    error                             not used
  end define
========================== 定义指令值 ========================================
  define codes
    rapid                             =  G1    0 ========== 快速点定位
    linear                            =  G1    1 =========== 直线插补
    circle cw                         =  G1    2 =========== 顺圆插补
    circle ccw                        =  G1    3 ========== 逆圆插补
    dwell                             =  G6    4 ========= 暂停、准确停止
    xy plane                          =  G3   17 =========  XY平面
    zy plane                          =  G3   19 =========  YZ平面
    xz plane                          =  G3   18 =========  ZX平面
    compensation off                  =  G2   40 ========== 取消刀具半径补偿
    compensation on left              =  G2   41 =========== 刀具半径左补偿
    compensation on right             =  G2   42  =========== 刀具半径右补偿
    imperial data                     =  G4   20 ============ 英寸输入
    metric data                       =  G4   21 ============ 毫米输入
    absolute data                     =  G5   90 ============ 指定绝对坐标编程
    incremental data                  =  G5   91 ============ 指定增量坐标编程
    from                              =  G3   54 ========== 制定工作坐标系
    feedrate per minute               not used ================ 每分钟进给
    feedrate per revolution           not used ================= 每转进给
    spindle rpm                       not used
    constant surface speed            not used
    drill                             =  G4   81 =========== 钻孔循环锪镗循环
    break chip                        =  G4   82 =========== 钻孔循环或反镗循环
    deep drill                        =  G4   83 ============ 深孔钻循环
    tap                               =  G4   84 ========== 攻丝循环
    bore 1                            =  G4   85 ========== 镗孔循环
    bore 2                            =  G4   86 ========== 镗孔循环
    bore 3                            =  G4   87 ========== 背镗循环
    bore 4                            =  G4   88 ========== 镗孔循环
    bore 5                            =  G4   89 ========== 镗孔循环
    end of drill                      =  G4   80 ============= 固定循环取消
    macro start                       not used ============ 宏程序模态调用
    macro end                         not used =========== 宏程序模态调用取消
macro call                        not used ============ 宏程序调用
    cycle retract                     =  G6   99 ========== 固定循环返回到R
    tool length offset                =  G3   43 =========== 正向刀具长度补偿
    spline                            not used ========  spline插补方式
    stop                              =  M1    0 ====  程序停止
    opt stop                          =  M1    1 =====  选择停止
    spindle on cw                     =  M1    3 =====  主轴正转
    spindle on ccw                    =  M1    4 =====  主轴逆转
    spindle off                       =  M1    5 =====   主轴停止
    spin coolant on cw                =  M1   13
    spin coolant on ccw               =  M1   14
    spin coolant off                  =  M1    5 ====== 冷却液关
    change tool                      = M1    6 ======  自动换刀
    coolant on mist                   =  M1    7 =====  雾状冷却液
    coolant on                        =  M1    8 ====  冷却液开
    coolant on flood                  =  M1    8 =====  冷却液开(喷出)
    coolant off                       =  M1    9 =====  冷却液关
    clamp on                          not used
    clamp off                         not used
    end of tape                       =  M1    2 =====  程序结束
    end of prog                       =  M1   30 =====  程序结束
    gear range 1                      not used
    gear range 2                      not used
    gear range 3                      not used
    constant contour speed            not used
    constant contour speed 2          not used
    word drill                        not used
    word break chip                   not used
    word deep                         not used
    word tap                          not used
    word bore 1                       not used
    word bore 2                       not used
    word bore 3                       not used
    word bore 4                       not used
    word bore 5                       not used
    coolant on tap                    not used
    rigid tap                         not used ====== 刚性攻丝
    helical drill                     not used
    helical retract drill             not used
  end define
================================ 定义变量 ======================================
  print header               = "Delcam Postprocessor" ================== 定义打印标题
  machine name               = "Fanuc6m          version 1.2" ========= 机器名
  point                      = "." ================================  小数点
  zero                       = "0" ===============================  
  tape headers               =     1 ==============================  纸带标题
  
integer 6 integer 7):定义coolant output(冷却液输出)
integer   6                =     2 ============== 定义冷却液开(M07M08)的输出方式,
此变量共有三个选项——0:在后处理时遇到相关指令时输出;1:在下一段中单独输出;2、在下一段中和坐标移动一起输出。
  integer   7                =     1 ============== 定义冷却液关(M09)的输出方式,此变量共有三个选项——0:在后处理时遇到相关指令时输出;1:在下一段中单独输出;2、在下一段中和坐标移动一起输出。
integer 10integer 11integer 12integer 13):定义spindle output(主轴输出)
integer  10                =     2 ============== 定义主轴开(M03M04)的输出方式,
此变量共有三个选项——0:在后处理时遇到主轴开指令时输出;1:在下一段中单独输出;2、在下一段中和坐标移动一起输出。
  integer  11                =     1 ============= 定义主轴关(M05)的输出方式,此变量共有二个选项——0:在遇到主轴关指令时不输出S1:在遇到主轴关指令时输出S0
  integer  12                =     1 ============= 定义M代码的输出方式,此变量共有二个选项——0:在遇到主轴相关指令时不输出M1:在遇到主轴相关指令时输出M
tool reset coordinates     =     2 =============== 定义刀具复位后(M06后)的坐标处理方式,有1234四个选项,请注意这四个选项的刀具补偿的区别:
1                                                                  2
QQ截图20120506111727.png
3                                                                       4
  
QQ截图20120506111727.png
cycle output            =     1 ================ 定义循环指令(G80~G89)的输出方式,此变量共有两个选项——0:不输出循环移动指令;1、输出循环指令(默认值为G81)。
integer 20integer 26full circle):定义circle output(圆弧输出)
  integer  20                =     1 ============= 定义圆弧(M02M03)的输出坐标,此变量共有两个选项——0:不输出圆弧的XY坐标;1:输出圆弧的XY坐标。
  block start                =     1 =============== 定义程序段的开始段号
  block increment            =     1 =============== 定义程序段号的增量
  split move                 =     0
  integer  26                =     1 ==============  定义圆弧(M02M03)的输出,此变量共有两个选项——0:不输出圆弧指令;1、输出圆弧指令,如果选择0,那么在后处理时遇到有圆弧的地方,系统将这个圆弧打断成若干条直线段输出。
  program id start           =    100 ===============  定义程序起始号
  integer  34                =     3
  integer  35                =     1
  integer  36                =     1
  integer  37                =     2
  rapid feed code            =     0 =============== 共有两个选项——0:在快速移动时不输出进给率;1:在快速移动时输出进给率(需要在快速移动中定义F)。
  maximum block number       =     0
  maximum tape blocks        =     0
  minimum tape blocks        =     0
  segment type               =     0
  counter start              =     0
  counter increment          =     0
  tape split retract distance  =  -999
  multiaxis coordinate transform  = true ====== 定义机床是否支持多轴联动,true:支持;false:不支持
  message output             = false
  block order                = true
  tlo output                 = true ======== 是否正常输出刀具长度(半径)补偿,true:输出;false:不输出。
  tape split on tool change  = false
  full circle                = true ========= true:整圆输出;false:不做整圆输出。
  incremental centre         = true
  go home output             = false
  use partid                 = true ======== 是否使用自定义partidtrue:使用;false:不使用
  use progid                 = true ======== 是否使用自定义progidtrue:使用;false:不使用
  spindle x motion           = false ======== 定义主轴运动方向,trueX方向;falseNOX方向。
  spindle y motion           = false ======== 定义主轴运动方向,trueY方向;falseNOY方向。
  spindle z motion           = true ======== 定义主轴运动方向,trueZ方向;falseNOZ方向。
  spindle w motion           = false ======== 定义主轴运动方向,trueW方向;falseNOW方向。
  spindle azimuth rotation   = false ========== 定义方位轴方式,true:为主轴头式;false:为工作台式。
  spindle elevation rotation  = false ========== 定义仰角轴方式,true:为主轴头式;false:为工作台式。
  linearise multiaxis moves  = true ========== 定义机床是否支持线性多轴联动,true:支持;false:不支持。
  use hole top in cycles     = false
  retract at angular limit   = false
  unwind at tool change      = false
  suppress xy arc            = false
  suppress xz arc            = false
  suppress yz arc            = false
  transform workplane origin  = false
  previous multax rapid style  = false
  knot vector type           = none
  units                      = input ======= 定义单位,input=ouputmetricimperial
  coordinates                = absolute ====== 定义坐标单位,absolute incremental
  azimuth axis units         = degrees ======= 定义方位轴单位
  azimuth axis direction     = positive ======= 定义方位轴用法,相对还是绝对
  elevation axis units       = degrees ======== 定义仰角轴单位
  elevation axis direction   = positive ======== 定义仰角轴用法,相对还是绝对
  spline type                = none
  workplane angles           = none
  option file units          = none
  maximum feedrate           =  9999.0000
  minimum feedrate           =     1.0000
  rapid feedrate             =  9999.0000
  maximum tape length        =     0.0000
  plunge threshold angle     =     0.0000
  maximum segment            =     0.0000
  diameter                   =     1.0000
  withdrawal amount          =    50.0000
  arc radius limit           = 10000.0000
  retraction threshhold angle  =   360.0000
  arc minimum radius         =     0.0000
  azimuth axis parameters    = (      0      0      0      0      0      0 ) ========= 定义方位轴参数,前三个零为分别定义每个轴的旋转中心;后三个零为定义方位轴的坐标,依次为XYZ
  azimuth centre             = (      0      0      0 ) ========================== 定义方位轴圆心参数
  elevation axis parameters  = (      0      0      0      0      0      0 ) ========== 定义仰角轴参数,前三个零为分别定义每个轴的旋转中心;后三个零为定义仰角轴的坐标,依次为XYZ
  elevation centre           = (      0      0      0 ) =========================== 定义仰角轴圆心参数
  pcs origin                 = (      0      0      0      0      0      0 ) ======== 定义旋转轴圆心
  linear axis limits         = ( -99999 999999 -99999 999999 -99999 999999 ) ============== 定义线性轴范围
  rotary axis limits         = ( -99999 999999 -99999 999999    999      1 ) ============ 定义旋转轴范围,前两个零为定义方位轴的旋转范围;中间两个零为定义仰角轴的旋转范围;第五个零定义公差;第六个零定义分辨率。
  move safe angles           = (      0      0      0      0 ) ==================== 定义起始角度
  define block tape start
    "%"
    #ID ProgID
    N   ; G2  91    ; G6  28    ; Z   0     ; Z =C
    N ; MS =C ; PM JobName ; EM =C
    N ; MS =C ; MT Month ; DY Day ; YR Year ; EM =C
    N ; MS =C ; TN ToolType ; EM =C
    N ; MS =C ; TD ToolRadius[ToolNum]  ; EM =C
    N ; MS =C ; TR ToolRadius[ToolNum] ; EM =C
    N ; compensation off ; G6 49    ; xy plane ; G4 80 ; G3 54
    #N   ; G2  91    ; G6  28    ; X   0     ; Y   0     ; X =C      ; Y =C
  end define
  define block tape end
    N   ; G5  91    ; G6  28    ; Z Zcoord     ; Z =C
    N   ; H   0     ; G6  49
    #N   ; G6  28    ; X   0     ; Y   0     ; X =C      ; Y =C
    N   ; M1  30
  end define
  define block go home preamble
  end define
  define block tool change first
    #N   ; OP  ; change tool     ; T ToolNum
    G3  54    ; G5  90   ; G3 =C     ; G5 =C   ; #T NextTool   ;
  end define
  define block tool change
    N   ; G5  91    ; G6  28    ; Z   0     ; Z =C
    N   ; H   0     ; G6  49
    N   ; G6  28    ; X   0     ; Y   0     ; X =C      ; Y =C
    N   ; T ToolNumber    ; change tool
    G5  90    ; G3  54    ; G5 =C     ; G3 =C     ; #T NextTool   ;
  end define
  define block tool change clear
  end define
  define block go home z move
  end define
  define block go home xy move
  end define
  define block move from
  end define
  define block move circle
    N   ; G1  ; G2  ; G3  ; X   ; Y   ; Z   ; I   ; J   ; K   ; F   ; D
  end define
  define block move linear
  end define
  define block move rapid
    N   ; G1  ; G2  ; G3  ; G5  ; G6  ; X   ; Y   ; Z   ; T   ; H   ; S   ;
    M1  ; M2
  end define
  define block move cycle
    N   ; G4  ; G6  ; X   ; Y   ; Z2  ; R2  ; Q   ; Q1  ; F   ; M2
  end define
  define block move tap
    N   ; G6  ; G4  ; X   ; Y   ; Z2  ; R2  ; F   ; M1  ; M2
  end define
  define block tape segment
  end define
  define block tape split start
    "%"
    ID ProgID
  end define
  define block tape split end
    N   ; G1  28    ; G6  91    ; Z   0     ; Z =C
    N   ; H   0     ; G6  49
    #N   ; G6  28    ; X   0     ; Y   0     ; X =C      ; Y =C
    N   ; M1  30
  end define
  define block cycle start
    N   ; S   ; M1
    N   ; G3  ; G5  ; M2
    F =C      ; G4 =C     ; Z2  ; R2  ; Q   ; Q1  ; G6  ;
  end define
  define block cycle end
    N   ; G4  80
  end define
  define block tape split move
  end define
  define block move spline
  end define
End
8 S% u5 i5 }# a
发表于 2012-5-6 11:23 | 显示全部楼层
发错地方# v! B! ]8 _5 y! |7 `
!不错!
回复 支持 反对

使用道具 举报

发表于 2012-5-7 07:36 | 显示全部楼层
学习中  !!!
回复 支持 反对

使用道具 举报

发表于 2012-5-7 14:09 | 显示全部楼层
难得啊,有时间研究下
回复 支持 反对

使用道具 举报

发表于 2012-5-7 19:35 | 显示全部楼层
真心谢谢朋友的分享!
回复 支持 反对

使用道具 举报

发表于 2012-5-7 23:23 | 显示全部楼层
学习中  !!!
回复 支持 反对

使用道具 举报

发表于 2012-5-9 18:39 | 显示全部楼层
请问楼主,怎样设置小数点后的数值呢!如:
2 [" [+ {/ X/ u+ X' V" z8 o; p
5 Q0 \- K5 m5 D) S! R现在是小数点后3位数  [) l7 L+ Y: ^" e( d& @+ x1 E9 K
G0 X-176.53 Y191.503
0 u* S0 m. y, b2 ]2 t' |: hG0 Z-4.5241 \5 ?# _/ q8 }) b5 @. a) P
G1 Z-7.524 F300
; ^) \0 B. E  r9 lG3 G19 Y192.503 Z-8.524 J1. K0 F800
, M: l3 K' v7 Q: P; n; wG1 Y194.146( k+ R" d0 ]6 m" R; g) X; i  k
Y194.247 Z-8.504$ Y1 ?3 Z9 i7 x  ~" }# \
Y194.349 Z-8.493
) L1 e1 w. z# G- Z$ r4 Q4 a. zY194.531 Z-8.496
0 [6 g0 g* ]1 Y8 k  P% yY194.689 Z-8.523
1 x, \' A( F. o( ~* X' P/ F
, i. B0 J' u  i8 p9 R想改成小数点后5位数的.
' C6 P' f$ u4 Q1 l, j- i0 IG0 X-384.20792 Y43.415582 k- E' X' H9 C9 y
G0 Z-1.89558  K* H# j$ d6 \; W: C! n
G1 Z-4.89558 F300
" t! t+ @' o, j# aG1 X-384.19479 Z-5.05694 F800) f3 }0 d- v/ S, y  o2 X) X
G1 X-384.15295 Z-5.2225
8 T3 \" O, ?0 GG1 X-384.08017 Z-5.38462
8 u. B* L# ~: d  a, g- j0 x5 WG1 X-383.97696 Z-5.53475
# w+ ?( j$ M. v: M/ ]- u; m4 uG1 X-383.84708 Z-5.66465& Q) h* o8 @3 b/ B) M  R! S$ L
G1 X-383.69696 Z-5.76784
6 J8 H3 M  l5 f
4 G/ i, z! R: N0 X# ^$ d) h8 }. j2 h. L, I3 v) \+ i0 T1 r

点评

你机器跑的起来吗  发表于 2012-5-25 11:57
回复 支持 反对

使用道具 举报

发表于 2012-5-25 11:56 | 显示全部楼层
想改成小数点后5位数的.
( D: C, F: \" C# [/ \9 S4 v$ m2 DG0 X-384.20792 Y43.41558
7 b& r4 T* y: F% Q5 |( h) }G0 Z-1.89558
8 o- t7 @1 F* t1 UG1 Z-4.89558 F300
2 U6 g4 g) z: B, ZG1 X-384.19479 Z-5.05694 F800$ F7 Q8 I, k- k% F
G1 X-384.15295 Z-5.2225- ^0 E' n6 S, _3 @% e+ w; {! l  R" q
G1 X-384.08017 Z-5.384629 R0 |! N4 `9 b% b
G1 X-383.97696 Z-5.53475
1 t, B9 G: P/ r' CG1 X-383.84708 Z-5.66465  f9 k, B6 T* m5 U. q- a9 T
G1 X-383.69696 Z-5.767849 @3 D  I) ^6 ^  }; r
# {/ l' q" B0 B! k- H7 e! i8 x6 s
你机器跑的起来吗
回复 支持 反对

使用道具 举报

发表于 2012-5-25 11:57 | 显示全部楼层
luckystarqing 发表于 2012-5-9 18:39 , I% A8 N- r: Q6 |# n) |, J1 H
请问楼主,怎样设置小数点后的数值呢!如:
/ j) K) ^+ o* r5 F5 U1 i' ^
! w, d# M# n3 O  Q! z8 y现在是小数点后3位数

3 m/ `+ Q* f# h) J& V你机器跑的起来吗
回复 支持 反对

使用道具 举报

发表于 2012-5-26 11:06 | 显示全部楼层
你知道小日本的机床精度吗?我们用小数点后五位已经跑了半年了,专做高精度或特殊花纹及高亮面的一些东西不知道了吧!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-4-27 05:24 , Processed in 0.070498 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表