PowerMILL后处理制作教程
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 ============== 定义冷却液开(M07、M08)的输出方式,
此变量共有三个选项——0:在后处理时遇到相关指令时输出;1:在下一段中单独输出;2、在下一段中和坐标移动一起输出。
integer 7 = 1 ============== 定义冷却液关(M09)的输出方式,此变量共有三个选项
——0:在后处理时遇到相关指令时输出;1:在下一段中单独输出;2、在下一段中和坐标移动一起输出。
(integer 10、integer 11、integer 12、integer 13):定义spindle output(主轴输出)
integer 10 = 2 ============== 定义主轴开(M03、M04)的输出方式,
此变量共有三个选项——0:在后处理时遇到主轴开指令时输出;1:在下一段中单独输出;
2、在下一段中和坐标移动一起输出。
integer 11 = 1 ============= 定义主轴关(M05)的输出方式,此变量共有二个选项——0:在遇到主轴关指令时不输出S;1:在遇到主轴关指令时输出S0。
integer 12 = 1 ============= 定义M代码的输出方式,此变量共有二个选项——0:在遇到主轴相关指令时不输出M;1:在遇到主轴相关指令时输出M。
tool reset coordinates = 2 =============== 定义刀具复位后(M06后)的坐标处理方式,有1、2、3、4四个选项,请注意这四个选项的刀具补偿的区别:
cycle output = 1 ================ 定义循环指令(G80~G89)的输出方式,此变量共有两个选项——0:不输出循环移动指令;1、输出循环指令(默认值为G81)。
(integer 20、integer 26、full circle):定义circle output(圆弧输出)
integer 20 = 1 ============= 定义圆弧(M02、M03)的输出坐标,此变量共有两个选项——0:不输出圆弧的X、Y坐标;1:输出圆弧的X、Y坐标。
block start = 1 =============== 定义程序段的开始段号
block increment = 1 =============== 定义程序段号的增量
split move = 0
integer 26 = 1 ============== 定义圆弧(M02、M03)的输出,此变量共有两个选项——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 ======== 是否使用自定义partid,true:使用;false:不使用
use progid = true ======== 是否使用自定义progid,true:使用;false:不使用
spindle x motion = false ======== 定义主轴运动方向,true:X方向;false:NOX方向。spindle y motion = false ======== 定义主轴运动方向,true:Y方向;false:NOY方向。spindle z motion = true ======== 定义主轴运动方向,true:Z方向;false:NOZ方向。spindle w motion = false ======== 定义主轴运动方向,true:W方向;false:NOW方向。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=ouput;metric;imperial
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 ) ========= 定义方位轴参数,前三个零为分别定义每个轴的旋转中心;后三个零为定义方位轴的坐标,依次为X、Y、Z。
azimuth centre = ( 0 0 0 ) ========================== 定义方位轴圆心参数
elevation axis parameters = ( 0 0 0 0 0 0 ) ========== 定义仰角轴参数,前三个零为分别定义每个轴的旋转中心;后三个零为定义仰角轴的坐标,依次为X、Y、Z。
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
一、完整的后处理文件介绍 一个完整的后处理文件通常有:定义字符段、定义字符格式段、定义键值段、定义指令值段、变量定义、程序格式段等部分组成。 下面我们先来看一个比较完整的后处理文件,并把它分为数段,把需要修改的地方做个必要的解释: 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
PowerMILL的后处理应用技巧 1引言 PowerMILL是一种专业的数控加工自动编程软件,由英国Delcam公司研制开发。从PowerMILL的使用来看,PowerMILL可以说是世界上功能最强大、加工策略最丰富的数控加工编程软件系统之一,同时也是CAM软件技术最具代表性的、增长率最快的加工软件。它实现了CAM系统与CAD系统的分离,可以更充分发挥CAM和CAD各系统的优势,可在网络下完成一体化集成,所以更能适应工程化的要求。其广泛应用于航空航天、汽车、船舶、家电以及模具等行业,尤其对各种塑料模、压铸模、橡胶膜、锻模、冲压模等具有明显的优势. 软件的数控自动编程主要是软件经过刀位等自动计算产生加工刀具路径文件,但刀路文件并不是数控程序。需要从加工刀具路径文件中提取相关的加工信息,并根据指定数控机床的特点及要求进行分析、判断和处理,最终形成数控机床能直接识别的数控程序,这就是数控加工的后置处理。本文针对PowerMILL自动编程软件后处理方面的技巧进行探讨。 2 PowerMILL后处理使用技巧 在PowerMILL生成刀具路径后,提供了两种后处理方法:NC程序和PM-Post后处理. 2.1 NC程序 NC程序模块存在于PowerMILL浏览器中,如图1所示,没有工具栏也没有快捷图标,只能通过"NC程序"菜单和NC程序对象菜单进行参数设置。NC程序生成的主要步骤如下: (1)右键单击产生的每个刀具路径,在弹出的菜单、中选择"产生独立的NC程序";或者右键单击PowerMILL浏览器中的"NC程序",在弹出的菜单路径,在弹出的菜单中选择"增加到NC程序"选项。
(2)右键单击生成的每个NC程序,在弹出的菜单中选择"写人";或者右键单击Poirer112ILL浏览器中的"NC程序",在弹出的菜单中选择"全部写人"选项。 2.2 PM-Post后处理 PM-Post是Delcam提供的专用后处理模块,其后处理操作步骤如下: (1)在PowerMILL的"选项"中将NC程序输出文件类型改成"刀位",输出后缀名为cut 的刀具路径文件。 (2)启动PM-Post进人PostProcessor模块,如图2所示,分别添加NC程序格式选项文件Option files和第一步产生的刀具路径文件CLDATA Gles. (3)右键单击某个刀具路径文件,在弹出的菜单中选择Process选项,实现该刀具路径文件的NC程序的输出。 可以看出,NC程序方法简单,当程序后处理设置为固定无需改动时,只需要选择相应的后处理选项文件,即可快速生成所需的NC程序代码。这种方法适用于单位设备固定统一,软件后处理对应性较强的情况。PM-Post方法不但可以生成所需的NC程序,还可以通过PM-Post中的Editor模块对NC程序格式选项文件进行设置,有利于生成更加简洁高效的NC程序代码。这种方法比较适合单位设备的种类型号较多,且自动数控编程由工艺组统一负责,然后再根据设备分配情况生成NC加工程序等场合。 3 PowerMILL后处理设置技巧 早期的PowerMILL后处理程序DuctPost以及其它数控编程软件提供的后处理程序大部分都是基于纯文本文档,用户可通过文本编辑器修改这些文件。该文件结构主要有注释、定义变量类型、定义使用格式、常量赋值、定义问题、字符串列表、自定义单节及系统问题等部分。最新的PowerMILL后处理程序PM-Post基于图形窗口和对话框,使后处理选项文件的设置变得直观、明了。 PM-Post的格式选项文件的修改在Editor模块中进行,如图3所示。 下面以Fanuc系统为例,给出常用后处理设置的方法: 为保留系统自带的Fanuc后处理文件,我们在修改前先将该文件另存为Fanuc
p o w e r m i l l后处理编 写(5轴)
5轴主轴头选项文件设置 ( Up dated 31/01/2001 )以下链接给出的是一个5轴主轴头范例图示 :- ( 主轴头回转轴 ) 第4旋转轴和第5旋转轴要求 下面是多轴旋转加工需在选项文件中定义的内容。:- ( 范例中定义了三个主旋转轴, A , B , 和 C ,但实际应用中多旋转轴加工系统仅会使用其中两个。 ) define format ( A B C ) ## 内建源文件中可能已经定义 metric formats leading zeros = false trailing zeros = true decimal point = true decimal places = 3 imperial formats leading zeros = false trailing zeros = true decimal point = true decimal places = 4 end define word order = ( + A B C ) ## 仅当内建字排序列表中间没有时需要
block order = true ## 不考虑内建排序列表,使用"define block xxx. " 排序 define keys azimuth axis = C## 第4旋转轴通常为方位角 ( 立柱回转 ) elevation axis = B## 第5回转轴通常为仰角 ( 主轴回转 ) end define ## " A, 和 /或B, 和 /或C " 均需插入到Rapid 快进和Linear 线性程序段中,其和对齐轴相关。 ( 范例图示,B绕Y旋转,C绕Z旋转) define block move rapid N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; B ; C ; S ; H ; M1 ; M2 end define define block move linear N ; G1 ; G2 ; X ; Y ; Z ; B ; C ; F ; M1 ; M2 end define 旋转轴参数设置 以下参数需包含在旋转轴选项中。 spindle azimuth rotation = true ## 旋转工作台缺省为 false spindle elevation rotation = true ## 旋转工作台缺省为false
PowerMILL 後處理 對於後處理格式,一般的用戶有三個層次的需求: 一、powermill自帶的後處理中有適合自己機床要求的,不過要修改、增刪些代碼。 二、沒有適合的,需要改寫後處理。 三、機床的代碼格式完全與普通G代碼格式不同,需建全新的後處理。 本文只針對1、2種需求來進行講解,至於第三種則是高級篇的範疇了(哈哈,其實我也不知道,還沒做過呢) 現在開始準備工作: 1、以不同的控制器試著處理幾個G代碼檔出來,然後和自己機床的代碼進行比較,選一個最接近自己的。 2、打開ductpost\dp-index.html,準備有問題就看幫助。 3、運行:ductpost -w [控制器類型] > [控制器類型].opt ,從而生成OPT檔,這個選最接近你機床的控制器。如:ductpost -w hurco > hurco.opt 。這時就可以用文本編輯器來打開這個opt檔了: 1、程式頭、程式尾的改寫: 這個在以下的定義裏面: define block tape start ******************** end define define block tape end ******************* end define 你可以根據自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define define block tape end
N ; "M05" N ; "M30" end define 不過注意這種引號方法優點是簡單明瞭,但控制器只是把它當字元處理,而不能以模態存在,具體可參見其他說明。 2、是否需要N行號? % :0001 N10G28G91X0Y0Z0 N30T1M6 N40G0G90X-25.Y-40.S800 M3 如這上面的N10、N30、N40,另外行號的起始、增量、最大都可以定義。如果不想要行號,可修改為以下值: define format ( N ) not permanent end define 3、是否需要Message? N60( MSG, Toolpath Name: ET) N70( MSG, xyzxyz_cut_1 ET) N80( MSG, Output: ET) N90( MSG, UNITS: MILLIMETRES ET) N100( MSG, TOOL COORDINATES: TIP ET) N110( MSG, LOAD TOOL ET) 上面的資訊,可修改為你需要的,具體參見幫助。也可選擇不輸出,如: message output = false 4、圓弧的輸出格式: 這個需要講一下,輸出R的就不講了,專講I、J、K的輸出。大致有三大類: a、I、J輸出為圓心的絕對座標值。 b、I、J輸出為相對座標值,具體值為:圓心座標值-圓弧始點座標(常用)
p o w e r m i l l后处理修改 精华帖修订版 IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】
m a c h i n e f a n u c o m——————后处理文件头define word TN ---------------------------- 定义字段; address letter = "TOOL TYPE :- " ----- 定义字段的返回值 address width = 13 定义字符宽度 field width = 25 定义返回字的宽度 end define 结束定义 define format ( / G6 S T M1 M2 L P D E H O ) 第二段是定义字符的格式 address width = 1------------ 定义字符宽度 address width = 1------------ 定义字符宽度 field width = 2 ------------- 定义返回字的宽度 exponent width = 0 ---------- 指数的宽度 scale factor = 1 ------------- 比例因子:值乘以 1 scale divisor = 1 ------------ 比例因子:值被 1 除 tape position = 1----------- 字前留一个空格 print position = 1 -----------打印位置
sign = none----- 用于不需要 G代码和进给率 sign = if negative 仅标识负坐标 sign = always 如果需要 + / - 号 not permanent -------- 不需要行号 not modal ------------ 仅当改变时需要重复的字为 modal 。(模态)。通常 G 代码和 X, Y 和 Z 为坐标为 modal, 但圆心通常使用的 I, J, K 代码通常不是,因此它们为 not modal . metric formats --------------- 公制 leading zeros = false --------- 前导 0 trailing zeros = true ----------后导 0 decimal point = false ------ 不需要小数点 decimal places = 2 -------- 小数点后 2 imperial formats ------------- 英制 word order=====================语序 word order = ( OP N G1 G2 G3 G4 G5 ) word order = ( + G6 G7 X Y Z B C )
后处理的实际应用中,经常需要修改或删除的部分主要有几方面:程序头的修改;程序尾的修改;刀具调用的修改;第四轴的开启与关闭;各种注释部分的删除;钻孔循环的定制;行号的设定与省略;新参数的设定等。 (1)程序头的修改。 选中任务树窗口中的"Fanuc OM.pmopt Commands-Start Program"项,在右边图形窗口中,选中程序中不需要的部分,再点击上方的删除图标,可以删除该部分内容;如程序中默认的机床回参考点程序段"G91G28XOYOZO",如在程序启动时不必首先回参考点,可删除该段内容。 (2)程序尾的修改。 在任务树窗口中的"Fanuc OM.pmopt-Commands-Finish Program"项中可以定义程序尾部分的内容。默认的程序尾包含了"G91G28Z0"和"G28XOY0"机床回参考点选项,如不需要也可以删除。 (3)换刀程序段的修改。 选中任务树窗口中的"Fanuc OM.pmopt -Commands-Tool Control-Load First Tool"项,可以通过选中图形窗口中的"M6"项,点击添加"BlockNumber",使T指令和M6指令分行;同样可以使Change Tool项中的T指令和M6指令分行;如采用手动换刀,则NC程序中不需换刀程序,可右键点击"Load First Tool"和"Change Tool",在快捷键中选中"Deactivate,以关闭换刀程序。 (4)第4轴的开启和关闭。 选中任务树窗口中的"Fanuc OM.pmopt-Settings-Machine Kinematics"项,右边图形窗口中"KinematicModel"的选项,默认的"3-Axis"项则关闭第4轴;"4-Axis"项则打开第4轴,第4轴打开后,需对其方向、原点及行程范围等进行设置。 (5)各种注释部分的删除。 程序头部分、换刀部分等都设定了相应的注释,如不需要这些注释,可以进人程序头部分、换刀部分,将其中的注释内容选中删除即可。 (6)钻孔循环指令的定制。 打开任务树窗口中的"Fanuc OM.pmopt-Commands-Drilling Cycles"项,这里定义了各种钻销循环。如其中的"Single Pecking Setup"定义了基本钻削循环G81指令;"Deep Drill Setup"中定义深孔钻削循环G83指令。如要取消,可右键点击该指令,在快捷键中选中"Deactivate",即可取消该项定义。"DrillingCycles"子目录下还有其他钻镬削循环,可根据机床具体情况进行定义或删除。 (7)行号的设定与省略。 点击任务树窗口中的"Fanuc OM.pmopt-Settings-Global Constants"选项,右边图形窗口中"OutputBlock Number,项的"Value"框中的值,默认的为Yes ,显示行号;改为No,则不显示行号;"Block Increment"项为程序行号间距,"Value"值默认的为10,可根据需要修改成适合自己的行号间距。 (8)新参数的设定。 当数控机床的控制系统在PowerMILL自带的后置处理选项文件中没有的时候,就需要重
5轴主轴头选项文件设置 ( Up dated 31/01/2001 )以下链接给出的是一个5轴主轴头范例图示:- ( 主轴头回转轴) 第4旋转轴和第5旋转轴要求 下面是多轴旋转加工需在选项文件中定义的内容。:- ( 范例中定义了三个主旋转轴,A , B , 和C ,但实际应用中多旋转轴加工系统仅会使用其中两个。) define format ( A B C ) ## 内建源文件中可能已经定义 metric formats leading zeros = false trailing zeros = true decimal point = true decimal places = 3 imperial formats leading zeros = false trailing zeros = true decimal point = true decimal places = 4 end define word order = ( + A B C ) ## 仅当内建字排序列表中间没有时需要 block order = true ## 不考虑内建排序列表,使用"define block xxx. " 排序 define keys azimuth axis = C## 第4旋转轴通常为方位角( 立柱回转) elevation axis = B## 第5回转轴通常为仰角( 主轴回转)
end define ## " A, 和/或B, 和/或C " 均需插入到Rapid 快进和Linear 线性程序段中,其和对齐轴相关。( 范例图示,B绕Y旋转,C绕Z旋转) define block move rapid N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; B ; C ; S ; H ; M1 ; M2 end define define block move linear N ; G1 ; G2 ; X ; Y ; Z ; B ; C ; F ; M1 ; M2 end define 旋转轴参数设置 以下参数需包含在旋转轴选项中。 spindle azimuth rotation = true ## 旋转工作台缺省为false spindle elevation rotation = true ## 旋转工作台缺省为false 上面定义了立柱column / 主轴spindle 是回转轴。 azimuth axis parameters = ( 0 0 0 0 0 1) elevation axis parameters = ( 0 0 0 0 10 ) 在此,两个轴的头三位数字都设置为0 0 0,它们通常是为工作台保留。 而主轴方位角spindle azimuth和仰角偏置elevation offsets通过 azimuth和elevation centre参数设置。 azimuth centre= ( 0. 0. 0. ) ## 通常不会在方位角方向出现偏置) elevation centre= ( 0. 0. 180.5) ## Z轴上偏置180.5mm Z 第二组的三个数字定义工作台旋转时旋转轴是绕X轴还是绕Y轴或是绕Z轴旋转。
P o w e r M I L L的后处理应 用技巧 This model paper was revised by the Standardization Office on December 10, 2020
PowerMILL的后处理应用技巧 1引言 PowerMILL是一种专业的数控加工自动编程软件,由英国Delcam公司研制开发。从PowerMILL的使用来看,PowerMILL可以说是世界上功能最强大、加工策略最丰富的数控加工编程软件系统之一,同时也是CAM软件技术最具代表性的、增长率最快的加工软件。它实现了CAM系统与CAD系统的分离,可以更充分发挥CAM和CAD各系统的优势,可在网络下完成一体化集成,所以更能适应工程化的要求。其广泛应用于航空航天、汽车、船舶、家电以及模具等行业,尤其对各种塑料模、压铸模、橡胶膜、锻模、冲压模等具有明显的优势. 软件的数控自动编程主要是软件经过刀位等自动计算产生加工刀具路径文件,但刀路文件并不是数控程序。需要从加工刀具路径文件中提取相关的加工信息,并根据指定数控机床的特点及要求进行分析、判断和处理,最终形成数控机床能直接识别的数控程序,这就是数控加工的后置处理。本文针对PowerMILL自动编程软件后处理方面的技巧进行探讨。 2 PowerMILL后处理使用技巧 在PowerMILL生成刀具路径后,提供了两种后处理方法:NC程序和PM-Post后处理. NC程序 NC程序模块存在于PowerMILL浏览器中,如图1所示,没有工具栏也没有快捷图标,只能通过"NC程序"菜单和NC程序对象菜单进行参数设置。NC程序生成的主要步骤如下: (1)右键单击产生的每个刀具路径,在弹出的菜单、中选择"产生独立的NC程序";或者右键单击PowerMILL浏览器中的"NC程序",在弹出的菜单路径,在弹出的菜单中选择"增加到NC程序"选项。 (2)右键单击生成的每个NC程序,在弹出的菜单中选择"写人";或者右键单击 Poirer112ILL浏览器中的"NC程序",在弹出的菜单中选择"全部写人"选项。
首先说明一下,我虽然关注powermill很久了,不过研究后处理也是最近的事,对其的了解肯定不够全面,因为我用的是cimatron。写这个的目的是为了让更多的人了解PM的后处理配置方法,另一方面也是抛砖引玉,吸引更多高人出来。 对于后处理格式,一般的用户有三个层次的需求: 一、powermill自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 二、没有适合的,需要改写后处理。 三、机床的代码格式完全与普通G代码格式不同,需建全新的后处理。 本文只针对1、2种需求来进行讲解,至于第三种则是高级篇的范畴了(哈哈,其实我也不知道,还没做过呢) 现在开始准备工作: 1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。 2、打开ductpost\dp-index.html,准备有问题就看帮助。 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。这时就可以用文本编辑器来打开这个opt文件了: 1、程序头、程序尾的改写: 这个在以下的定义里面: define block tape start ******************** end define define block tape end ******************* end define 你可以根据自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define
PowerMILL后处理修改 本教程是偶在实际使用中的PowerMILL后处理文件修改知识的积累,其中有部分修改案例来源于帮助文件,在此仅以文字和图片的形式把他记录下来与初学者共同分享。 一、完整的后处理文件介绍 一个完整的后处理文件通常有:定义字符段、定义字符格式段、定义键值段、定义指令值段、变量定义、程序格式段等部分组成。 下面我们先来看一个比较完整的后处理文件,并把它分为数段,把需要修改的地方做个必要的解释: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
PowerMILL 后处理 PowerMILL 后处理 对于后处理格式,一般的用户有三个层次的需求: 一、powermill自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 二、没有适合的,需要改写后处理。 三、机床的代码格式完全与普通G代码格式不同,需建全新的后处理。 本文只针对1、2种需求来进行讲解,至于第三种则是高级篇的范畴了(哈哈,其实我也不知道,还没做过呢) 现在开始准备工作: 1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。 2、打开ductpost\dp-index.html,准备有问题就看帮助。 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。这时就可以用文本编辑器来打开这个opt文件了: 1、程序头、程序尾的改写: 这个在以下的定义里面: define block tape start ******************** end define define block tape end *******************
end define 你可以根据自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define define block tape end N ; "M05" N ; "M30" end define 不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。 2、是否需要N行号, % :0001 N10G28G91X0Y0Z0 N30T1M6 N40G0G90X-25.Y-40.S800 M3 如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: define format ( N ) not permanent end define 3、是否需要Message,
1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进 行比较,选一个最接近自己的。 2、打开ductpost\dp-index.html,准备有问题就看帮助。 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。这时就可以 用文本编辑器来打开这个opt文件了: 1、程序头、程序尾的改写: 这个在以下的定义里面: define block tape start ******************** end define define block tape end ******************* end define 你可以根据自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define define block tape end N ; "M05" N ; "M30" end define 不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不 能以模态存在,具体可参见其它说明。 2、是否需要N行号? % :0001 N10G28G91X0Y0Z0 N30T1M6 N40G0G90X-25.Y-40.S800 M3 如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。 如果不想要行号,可修改为以下值: define format ( N ) not permanent end define 3、是否需要Message? N60( MSG, Toolpath Name: ET) N70( MSG, xyzxyz_cut_1 ET) N80( MSG, Output: ET) N90( MSG, UNITS: MILLIMETRES ET) N100( MSG, TOOL COORDINATES: TIP ET) N110( MSG, LOAD TOOL ET) 上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:
powermill 后处理 对于后处理格式,一般的用户有三个层次的需求: 一、powermill自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 二、没有适合的,需要改写后处理。 三、机床的代码格式完全与普通G代码格式不同,需建全新的后处理。 本文只针对1、2种需求来进行讲解,至于第三种则是高级篇的范畴了(哈哈,其实我也不知道,还没做过呢) 现在开始准备工作: 1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。 2、打开ductpost\dp-index.html,准备有问题就看帮助。 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。这时就可以用文本编辑器来打开这个opt文件了: 1、程序头、程序尾的改写: 这个在以下的定义里面: define block tape start ******************** end define define block tape end ******************* end define 你可以根据自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define
define block tape end N ; "M05" N ; "M30" end define 不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明 2、是否需要N行号? % :0001 N10G28G91X0Y0Z0 N30T1M6 N40G0G90X-25.Y-40.S800 M3 如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: define format ( N ) not permanent end define 3、是否需要Message? N60( MSG, Toolpath Name: ET) N70( MSG, xyzxyz_cut_1 ET) N80( MSG, Output: ET) N90( MSG, UNITS: MILLIMETRES ET) N100( MSG, TOOL COORDINATES: TIP ET) N110( MSG, LOAD TOOL ET) 上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如: message output = false 4、圆弧的输出格式: 这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类:
PowerMILL 后处理 对于后处理格式,一般的用户有三个层次的需求: 一、powermill自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。 二、没有适合的,需要改写后处理。 三、机床的代码格式完全与普通G代码格式不同,需建全新的后处理。 本文只针对1、2种需求来进行讲解,至于第三种则是高级篇的范畴了(哈哈,其实我也不知道,还没做过呢) 现在开始准备工作: 1、以不同的控制器试着处理几个G代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。 2、打开ductpost\dp-index.html,准备有问题就看帮助。 3、运行:ductpost -w [控制器类型] > [控制器类型].opt ,从而生成OPT文件,这个选最接近你机床的控制器。如:ductpost -w hurco > hurco.opt 。这时就可以用文本编辑器来打开这个opt文件了: 1、程序头、程序尾的改写: 这个在以下的定义里面: define block tape start ******************** end define define block tape end ******************* end define 你可以根据自己的需要添加,如: define block tape start "%" N ; "G17G90G80G40G49" end define define block tape end
N ; "M05" N ; "M30" end define 不过注意这种引号方法优点是简单明了,但控制器只是把它当字符处理,而不能以模态存在,具体可参见其它说明。 2、是否需要N行号? % :0001 N10G28G91X0Y0Z0 N30T1M6 N40G0G90X-25.Y-40.S800 M3 如这上面的N10、N30、N40,另外行号的起始、增量、最大都可以定义。如果不想要行号,可修改为以下值: define format ( N ) not permanent end define 3、是否需要Message? N60( MSG, Toolpath Name: ET) N70( MSG, xyzxyz_cut_1 ET) N80( MSG, Output: ET) N90( MSG, UNITS: MILLIMETRES ET) N100( MSG, TOOL COORDINATES: TIP ET) N110( MSG, LOAD TOOL ET) 上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如: message output = false 4、圆弧的输出格式: 这个需要讲一下,输出R的就不讲了,专讲I、J、K的输出。大致有三大类: a、I、J输出为圆心的绝对坐标值。 b、I、J输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)
Powermill三轴后处理说明 Powermill中路径连接方式中有一种“掠过”(Skim)的方式,其原理相当于JDPaint中的局部快速定位路径,与“安全平面”(Safe)的方式不同,Z轴不必抬高到安全平面位置高度处,而是抬高到区域之间的局部安全高度处,如下图所示; 掠过连接方式(Skim) 安全平面连接方式(Safe) 掠过路径段在Powermill系统中的表示方法如下图所示: 在采用Jingdiao.opt后处理文件输出NC路径后,有以下两种情况: (1)在读入到EN3D中进行加工时,如果之前设定了【读取快速定位路径】选项后,此时掠过路径段将按照G01的方式进行走刀,如下图所示。建议此时
采用带速度加工的方式进行实际加工,这样我们在程序中设定的掠过速度才能起作用,当抬刀比较多时,可以明显的提高加工效率。如下图所示: (2)在读入到En3D中进行加工时,如果之前没有设定【读取快速定位路径】选项,路径读入后如下图所示;此时在实际加工中在掠过路径段的起末点处将会额外地各自产生一次抬刀,这样当路径中的掠过路径段比较多时,将产生大量的抬刀路径,有时会明显降低切削加工的效率。 因此,我们在Powermill中输入NC时选择Jingdiao_skim.opt后处理文件来将掠过路径段在输出时直接就转化为G00路径段,这样有两个好处: (1)之前设定了【读取快速定位路径】选项时,如下图所示,如果用户不带程 序中的速度进行实际加工,这样当抬刀比较多时,加工效率将不受影响;
(2)之前未设定【读取快速定位路径】选项时,读入的路径如下图所示,实际 加工时系统在路径子段的期末点自动添加抬刀路径而不会产生过多的抬刀路径; 需要注意的是:采用Jingdiao_skim.opt进行后处理的前提条件是在Powermill的路径速度参数设置值中,需设定掠过速度大于其它的进给速度,否则加工时可能会产生严重的错误。若没有这个习惯,建议采用Jingdiao.opt 后处理文件来输出NC路径,此时选择【读取快速定位路径】选项和带速度加工模式。
powermill后处理修改方法[整理] powermill后处理修改方法 machine fanucom ——————后处理文件头 define word TN ---------------------------- 定义字段; address letter = "TOOL TYPE :- " ----- 定义字段的返回值 address width = 13 定义字符宽度 field width = 25 定义返回字的宽度 end define 结束定义 define format ( / G6 S T M1 M2 L P D E H O ) 第二段是定义字符的格式address width = 1------------ 定义字符宽度 address width = 1------------ 定义字符宽度 field width = 2 ------------- 定义返回字的宽度exponent width = 0 ---------- 指数的宽度 scale factor = 1 ------------- 比例因子: 值乘以 1 scale divisor = 1 ------------ 比例因子:值被 1 除 tape position = 1----------- 字前留一个空格 print position = 1 -----------打印位置 sign = none----- 用于不需要 G代码和进给率 sign = if negative 仅标识负坐标 sign = always 如果需要 + / - 号 not permanent -------- 不需要行号 not modal ------------ 仅当改变时需要重复的字为 modal 。 (模态) 。 通常 G 代码和 X, Y 和 Z 为坐标为 modal, 但圆心通常使用的 I, J, K 代码通常不是,因此它们为 not modal . metric formats --------------- 公制 leading zeros = false --------- 前导 0 trailing zeros = true ----------后导 0 decimal point = false ----
( Up dated 31/01/2001 )以下链接给出的是一个 5 轴主轴头范例图示:-(主轴头回转轴) 第 4 旋转轴和第 5 旋转轴要求 下面是多轴旋转加工需在选项文件中定义的内容。:- (范例中定义了三个主旋转轴, A , B ,和C,但实际应用中多旋转轴加工系统仅会使用其中两个。) define format ( A B C )## 内建源文件中可能已经定义 metric formats leading zeros= false trailing zeros= true decimal point= true decimal places=3 imperial formats leading zeros= false trailing zeros= true decimal point= true decimal places=4 end define word order=( + A B C )## 仅当内建字 排序列表中间没有时需要 block order = true## 不考虑内建排序列表,使用"define block xxx. "排序
define keys azimuth axis=C## 第 4 旋转轴通常为方位 角( 立柱回转 ) elevation axis=B## 第 5 回转轴通常为仰角 (主轴回转) end define ## "A,和/或B,和/或 C "均需插入到Rapid 快进和Linear线性程序段中,其和对齐轴相关。(范例图示, B绕Y 旋转,C 绕Z 旋转 ) define block move rapid N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; B ; C ; S ; H ; M1 ; M2 end define define block move linear N ; G1 ; G2 ; X ; Y ; Z ; B ; C ; F ; M1 ; M2 end define 旋转轴参数设置 以下参数需包含在旋转轴选项中。 spindle azimuth rotation= true## 旋转工作台缺省为false