《2022年PowerMILL后处理修改教程 .pdf》由会员分享,可在线阅读,更多相关《2022年PowerMILL后处理修改教程 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PowerMILL 后处理修改教程本教程是偶在实际使用中的PowerMILL后处理文件修改知识的积累,其中有部分修改案例来源于帮助文件,在此仅以文字和图片的形式把他记录下来与初学者共同分享。By mymould (风影爱人)一、完整的后处理文件介绍一个完整的后处理文件通常有:定义字符段、定义字符格式段、定义键值段、定义指令值段、变量定义、程序格式段等部分组成。下面我们先来看一个比较完整的后处理文件,并把它分为数段,把需要修改的地方做个必要的解释:machine fanucom 后处理文件头= 第一部分是定义字符段= define word TN address letter = TOOL TY
2、PE :- 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 定义返回字的宽度
3、,如上 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 si
4、gn = none not permanent not modal metric formats leading zeros = false trailing zeros = true decimal point = false 控制公制尺寸的前导零、后导零,小数点decimal places = 0 imperial formats 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - leading zeros = false
5、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 YZ 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
6、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
7、定义 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 hol
8、e 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 u
9、sed 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 = 逆圆插补名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - dwell = G6 4 = 暂停、准确停止xy plane = G
10、3 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 =
11、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 =
12、背镗循环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 = 选择停
13、止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 =
14、冷却液关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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
15、 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 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
16、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、
17、在下一段中和坐标移动一起输出。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)的输出方式,此
18、变量共有二个选项0:在遇到主轴关指令时不输出S;1:在遇到主轴关指令时输出S0。integer 12 = 1 = 定义 M 代码的输出方式, 此变量共有二个选项 0:在遇到主轴相关指令时不输出M;1:在遇到主轴相关指令时输出M。tool reset coordinates = 2 = 定义刀具复位后 (M06 后)的坐标处理方式,有 1、2、3、4 四个选项,请注意这四个选项的刀具补偿的区别:1 、2、3 、4、cycle output = 1 = 定义循环指令(G80G89)的输出方式,此名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
19、 - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 变量共有两个选项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
20、 = 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 max
21、imum 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
22、:不输出。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 方向。sp
23、indle 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:为主轴头式;
24、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 ra
25、pid style = false knot vector type = none units = input = 定义单位, input=ouput;metric ;imperial coordinates = absolute = 定义坐标单位,absolute ;incremental azimuth axis units = degrees = 定义方位轴单位名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - azimut
26、h 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 l
27、ength = 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 ) = 定义方位轴参数, 前三个零为分别定义每个轴的旋转中心;后三个零为定义方位轴的坐标,
28、依次为 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 ) = 定义线性轴范围r
29、otary 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 ;
30、EM =C N ; MS =C ; TN ToolType ; EM =C N ; MS =C ; TD ToolRadiusToolNum ; EM =C N ; MS =C ; TR ToolRadiusToolNum ; EM =C N ; compensation off ; G6 49 ; xy plane ; G4 80 ; G3 54 #N ; G2 91 ; G6 28 ; X 0 ; Y0 ; X =C ; Y =Cend define define block tape end N ; G5 91 ; G6 28 ; Z Zcoord ; Z =C N ; H 0 ; G6
31、 49 #N ; G6 28 ; X 0 ; Y0 ; 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
32、 - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - N ; G5 91 ; G6 28 ; Z 0 ; Z =C N ; H 0 ; G6 49 N ; G6 28 ; X 0 ; Y0 ; 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
33、 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 def
34、ine 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
35、 =C N ; H 0 ; G6 49 #N ; G6 28 ; X 0 ; Y0 ; 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
36、End 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 下了,有个屁用,说了等于没说,让人家菜鸟怎么看得懂. 还不如这个,对于后处理格式,一般的用户有三个层次的需求:一、powermill自带的后处理中有适合自己机床要求的,不过要修改、增删些代码。二、没有适合的,需要改写后处理。三、机床的代码格式完全与普通G 代码格式不同,需建全新的后处理。本文只针对1、2 种需求来进行讲解,至于第三种则是高级篇的范畴了(哈哈,其实我也不知道
37、,还没做过呢)现在开始准备工作:1、以不同的控制器试着处理几个G 代码文件出来,然后和自己机床的代码进行比较,选一个最接近自己的。2、打开 ductpostdp-index.html,准备有问题就看帮助。3、 运行:ductpost -w 控制器类型 控制器类型 .opt ,从而生成OPT 文件,这个选最接近你机床的控制器。如:ductpost -w hurco hurco.opt 。 这时就可以用文本编辑器来打开这个opt 文件了:1、程序头、程序尾的改写:这个在以下的定义里面:define block tape start * end define define block tape en
38、d * 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 ,另外行号的起始、增量、最大都可以定义。如果不想要
39、行号,可修改为以下值: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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - N100( MSG,
40、 TOOL COORDINATES: TIP ET) N110( MSG, LOAD TOOL ET) 上面的信息,可修改为你需要的,具体参见帮助。也可选择不输出,如:message output = false 4、圆弧的输出格式:这个需要讲一下,输出R 的就不讲了,专讲I 、J、K 的输出。大致有三大类:a、I、J 输出为圆心的绝对坐标值。b、I、J 输出为相对坐标值,具体值为:圆心坐标值-圆弧始点坐标(常用)c、I、J 输出为相对坐标值,具体值为:圆弧始点坐标- 圆心坐标值所以这个就要看你机床格式来具体设置了,修改以下值为你所需:incremental centre = true (相对
41、,反之false绝对)相对有两种,所以:scale factor = 1 或-1 另外有些机床不能输出360度的圆弧,这时需要将其分为几段输出:full circle = false 5、换刀的格式:如:define block tool change first N ; OP ; change tool ; T ToolNum N ; G48 N ; G1 0 ; Z FromZ end define 里面可自己添加你的机床换刀时所需的代码,如打开刀具长度补偿。6、快速运动、直线运动、圆弧运动的代码:参见:define block move circle N ; G1 ; G2 ; G3 ;
42、 X ; Y ; Z ; I ; J ; K ; F ; D end define define block move linear N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; ; T ; S ; M1 ; M2 end define define block move rapid N ; G1 ; G2 ; G3 ; G5 ; G6 ; X ; Y ; Z ; T ; S ; M1 ; M2 end define 你也可在帮助文件的指引下,修改上面的代码,如:不想要每次输出G17之类,可以删掉G3 。 。 。当然修改前要了解清楚该代码是做什么的,另外注意
43、备份,随时恢复。7、多轴:powermill这点做的非常好,如4 轴的几种方式、5 轴的几种方式都有代码可参考。如:在X 轴加一个圆盘A,只需添加、修改以下几行:Fourth rotary table axis :- ( A. rotating about X. ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - define format ( A ) decimal point = true decimal places =
44、 3 end define word order = ( + A ) define keys azimuth axis not used elevation axis = A end define spindle elevation rotation = false # Default elevation units = degrees elevation axis direction = positive azimuth axis parameters = ( 0. 0. 0. 0. 0. 0. ) elevation axis parameters = ( 0. 0. 0. 1. 0. 0. ) define block move rapid N ; G1 ; G2 ; G3 ; G6 ; X ; Y ; Z ; A ; H ; M1 ; M2 end define define block move linear N ; G1 ; G2 ; X ; Y ; Z ; A ; F ; M1 ; M2 end define名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -