青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 5389|回复: 13

UG/POST后处理综述

[复制链接]
发表于 2007-8-12 23:24 | 显示全部楼层 |阅读模式
   本文简明扼要地介绍了ug/Post后处理器的基本概念,组成及内容,目的是使广大读者从全局上对UG/Post有所了解和认识,文章深入浅出,实用性强,是一篇不可多得的普及力作。# C0 i9 ?% ^( l; S
一、后处理简述5 H) w/ T* D4 J& N, r! Z
    无论是哪种CAM软件,其主要用途都是生成在机床上加工零件的刀具轨迹(简称刀轨)。一般来说,不能直接传输CAM软件内部产生的刀轨到机床上进行加工,因为各种类型的机床在物理结构和控制系统方面可能不同,由此而对NC程序中指令和格式的要求也可能不同。因此,刀轨数据必须经过处理以适应每种机床及其控制系统的特定要求。这种处理,在大多数CAM软件中叫做“后处理”。后处理的结果是使刀轨数据变成机床能够识别的刀轨数据,即NC代码。
+ K$ o- W" G' e5 F* G    可见,后处理必须具备两个要素:刀轨——CAM内部产生的刀轨;后处理器——是一个包含机床及其控制系统信息的处理程序。4 U. J0 V+ o/ t+ R- {3 h
    UG系统提供了一般性的后处理器程序——UG/Post,它使用UG内部刀轨数据作为输入,经后处理后输出机床能够识别的NC代码。UG/Post有很强的用户化能力,它能适应从非常简单到任意复杂的机床及其控制系统的后处理。
& e: V: C) |7 [& s+ g2 ~二、UG/Post组成结构
, z% l* L7 P* H: N5 ]) M    提到UG/Post后处理器,不得不简单的介绍一下MOM(Manufacturing Output Manager),即加工输出管理器。MOM是UG提供的一种事件驱动工具,UG/CAM模块的输出均由它来管理,其作用是从存储在UG/CAM内的数据中提取数据来生成输出。UG/Post就是这种工具的一个具体运用。MOM是UG/post后处理器的核心,UG/post使用MOM来启动解释程序,向解释程序提供功能和数据,并加载事件处理器(Event Handler)和定义文件(Definition File)。
4 h4 @  }$ b" [$ a; R0 K/ u7 Z& _    除MOM外,UG/post主要由事件生成器、事件处理器、定义文件和输出文件等四个元素组成。一旦启动UG/POST后处理器来处理UG内部刀轨,其工作过程大至如下:事件生成器从头至尾扫描整个UG刀具轨迹数据,提取出每一个事件及其相关参数信息,并把它们传递给MOM去处理;然后,MOM传送每一事件及其相关参数给用户预先开发好的事件处理器,并由事件处理器根据本身的内容来决定对每一事件如何进行处理;接着事件处理器返回数据给MOM作为其输出,MOM读取定义文件的内容来决定输出数据如何进行格式化;最后,MOM把格式化好的输出数据写入指定的输出文件中。图1描述了这些概念及内容。
/ J8 V/ v5 f. }7 ^+ W

. z+ _% c" K- o+ {. Z8 L. v
) t1 s9 l# b# R图1 UG/post的工作过程示意图
三、UG/Post的组成元素( L  O, p- {. X6 P. k# z4 e
    下面进一步介绍组成UG/Post的四个基本元素。' u* x$ Z1 |: m8 j
1.事件生成器
6 N( |' k5 {$ d5 r2 o2 x& v    事件生成器是UG提供的一个程序,它从UG文件(Part)中提取刀轨数据,并把它们作为事件和参数传送给MOM。每一特定事件在机床运行时将导致一些特别的机床动作,存储在与这个事件相关的参数中的信息用来进一步确定这些特别的机床动作。比如,一个“Linear-Move”事件将导致机床驱动刀具沿直线移动,而具体移动到的位置则由存储在与此事件相关的参数X、Y、Z中的数值来进一步确定。在这个例子中,事件生成器将触发“Linear-Move”事件,并且将代表终点位置的数据装入相应的参数X、Y、Z,然后这些信息传送到MOM去处理。  \( C, V5 z% `$ {5 A' E0 b( s0 d
    UG/Post的事件很多,分为五大类:设置事件(Setup-event)、机床控制事件(Machine Control event)、运动事件(Move event)、固定循环事件(Cycle event)、用户定义事件(User Defined event)等。有关事件及其相关参数的详细描述,可参见UG的帮助文档。
7 A" u4 P& N& Z2 O. }2 [    在进行后处理时,事件生成器生成各事件有一定的顺序,并且这个顺序是固定的,不能改变。其生成顺序大致如下:
# r9 d! B* N& V( i% j" o3 qStart of Program
5 y4 r& x1 d, G( X8 @) v/ FStart Post UDE's attached to the program
, f+ h6 }' c# O3 m' [7 l# cStart of Group+ o4 ]2 g8 t; O; o
Start Post UDE's attached to the group0 f+ [' A8 |" s/ B  I
Machine Mode
7 L6 B9 s; m) \Start of Path9 m* c4 R! k, ?0 l$ V& T0 E( }
Start Post UDE's attached to the operation" w. i% g( ^2 Y5 L/ r; J) m
First Tool (Tool Change,No Tool Change)0 t; M! E" L1 C1 I" \
Load Tool
$ o- M" a8 M: k; l) c& g: i" C* B0 BMSYS
2 n5 b6 B; e" J! q* J* `2 j# d4 DInitial Move (Initial Move,First Move)
9 \0 Q5 ?! x! A% l& XTool Path
2 F, H% k# P( F, P4 t+ ^& `- ?End Post UDE's attached to the operation
* W6 [: b5 M" t; MEnd of Path: \  z* f6 E8 Z0 e$ h
End Post UDE's attached to the group
) ~8 g) |* {2 e8 H* xEnd of group
: e1 g: x" m) \7 f$ {End Post UDE's attached to the program
: L5 R, a' `  B9 S/ z: @6 aEnd of program
" H  C' f' S5 u  H! B$ {( j& V) H
2.事件处理器
- E% Y2 g# E  D- F  n9 f    事件处理器是为特定机床及其控制系统开发的一套程序。每个事件的处理函数必须包含一系列指令去处理用户希望UG/Post处理的事件,这些指令将定义刀轨数据如何被处理,以及每个事件在机床上如何被执行。
1 Y8 X# h1 w. d    用来定义事件处理器指令的计算机语言是TCL(Tool command language)。TCL是一种解释型的计算机语言,以其小巧、灵活、功能强大、易于扩展、易于集成而闻名。当UG/Post进行后处理时,TCL语言的解释器充当了UG/Post的转换器。
! v' O3 t: R! H) i5 w* v  ?    对于用户希望UG/Post去处理的每个事件,必须有一个TCL过程与之对应。事件生成器触发一个事件时,MOM将调用与之对应的TCL过程去处理该事件,并把与此事件相关的参数作为全局(Global)变量传送给处理它的TCL过程。如果不希望事件处理器去处理某个特别的事件,在事件处理器中不要包含处理该事件的TCL过程或使该事件的TCL过程为空即可。另外,处理事件的TCL过程名必须与事件生成器触发的事件名统一。比如,处理Tool change(换刀)事件的TCL过程名必须是MOM_tool_change。' V( m# C' d! G. n
3.定义文件
% _8 c7 S& B7 e2 J$ o/ G    定义文件主要包含与特定机床相关的静态信息。因为机床的多样性,至少每类机床需要一个定义文件。大多数NC机床使用地址(Address)这一概念来描述控制机床的各个参数。比如,X地址用来存储机床移动时终点的X坐标值。NC程序中的每个命令行通过改变地址的值来达到改变机床状态的目的,而机床加工工件的过程实际上就是一系列机床状态发生改变的过程。UG/Post实现了一定的机制,使用定义文件中的信息来格式化NC指令。正如事件处理器一样,UG/Post的这种机制本质上也是由TCL语言来实现的,只不过是TCL语言核心的扩展。定义文件包含下列内容:
! W" e( E1 B6 `4 {% S    (1)一般的机床信息,如机床是铣床还是车床,是三轴还是五轴等;
6 D# b* M3 D  B! M    (2)机床支持的地址,如X、Y、Z、A、B、C、T、M等;
7 @; \4 G9 v5 c7 Z( ^0 d    (3)每个地址的属性,如格式、最大值、最小值等;
  h: {9 O* s( q6 }. D' f    (4)模块,它们描述多个地址如何组合在一起来完成一个机床动作。比如,命令G01 X[Xval] Y[Yval] Z[Zval]完成一个直线移动。
; ]% k- t1 i- |# x4.输出文件% h& ^: J1 l: x' g- o" q
    在UG/post执行时,即后处理时,用户指定一个文件来存储后处理生成的NC指令,这个指定的文件就是输出文件。输出文件的内容由事件处理器来控制,而输出文件中NC指令的格式由定义文件来控制。6 G4 U: ~1 M7 ]/ [; M
有了包含NC指令的输出文件后,这个文件就可以传送到机床上进行加工了。
5 M/ H- A( W2 e6 @4 t
四、UG/Post的开发方法: d0 z3 o' G0 l$ z  Y8 g9 B. \( Y
    UG/Post的开发,其核心是TCL语言的运用。如前所述,TCL是一种解释型的计算机语言,由John K. Ousterhout于加洲大学伯克利分校开发成功,目前由SUN微系统公司提供支持和维护。TCL是一款自由软件,并且它可支持Unigraphics NX当前支持的所有平台。虽然本质上都是使用TCL语言,但具体实现上却有两种途经:PostBuilder和手工编程
3 Z- `. n+ k+ P1 H4 h2 v0 }    PostBuilder是UG系统为用户提供的后处理器开发工具。使用它用户只需要根据自己机床的特点,在GUI环境下进行一系列的设置即可完成后处理器的开发。值得一提是,使用PostBuilder不仅生成事件处理器文件(*.tcl)、定义文件(*.def),还生成一个特别的文件(*.pui)。这个文件是专供PostBuilder使用的,记录着关闭PostBuilder时的配置,对后处理器来说,这个文件是多余的。关于PostBuilder的更多信息可参见UG帮助文档。5 |8 R# N$ Q0 L8 y
    手工开发后处理器,就是直接用TCL语言编写事件处理器文件(*.tcl)和定义文件(*.def)。这要求用户具有TCL语言的基本知识,同时,还要了解UG对TCL语言的扩展部分。虽然手工开发后处理器对用户技能要求较高,但手工开发灵活、方便,开发的后处理器精炼、易懂、执行效率高。
' L3 F, a6 F3 i8 P五、UG/Post的安装及使用! D8 ?) W, n) ?0 ?. H/ Y$ z3 p
    一旦用户结合自己的机床特性,使用TCL开发好了后处理器,接下来就要考虑如何向UG系统安装它,以及如何在UG系统中使用它了。
! C7 y3 c4 U; B8 C( w% J6 J1.安装后处理% y9 h0 B% p) Q' H" |5 |: ~
    为了使一个后处理程序能够在UG中进行使用,必须在后处理配置文件中注册、安装它。UG系统默认的后处理配置文件及其在注册表中的位置为${UGII_BASE_DIR}\MACH\ resource\postprocessor\template.dat。该文件中,“#”开始的行为注释行,其他每一行为一个后处理器注册项,其格式为:
) X% J( _, ?; G* x2 K0 `    后处理器名,包含路径的事件处理器文件,包含路径的定义文件# i6 n" C" P. n
    例如,MILL_3_AXI S,${UGII_CAM_POST_DIR}mill3ax.tcl, ${UGII_CAM_POST_DIR}mill3ax.def。+ w# n) \, {8 P+ f6 e+ ^% v! J
2.使用后处理
: u1 q" |* D' Y5 ~: Y    当后处理器安装好后就可以使用了,具体的做法如下:打开已经做好加工操作(Operation)的UG文件,选取一个或多个加工操作,点击“Manufacturing Operations”工具条上“UG/POST postprocess”图标(见图2),出现如图3所示的对话框,在对话框中选取特定机床的后处理器以及输入输出文件的名称,点击Ok或Apply即可生成输出文件。/ p$ ?0 m3 L9 ^8 k! |3 l

" S+ v3 G# G5 x/ x* n) d; a& q8 x, w0 C  q) x1 h' i+ z! ^& ]( T3 Q
图2 Manufacturing Operations的部分工具条

( M( g: S- I/ R! _1 q
# q0 h* C+ {6 E图3 后处理对话框
六、结束语
9 ^' M% o* S+ m    UG后处理是UG/CAM应用的关键技术之一,随UG系统提供的后处理器一般不能适应各企业的机床多样性,因此学习、开发和维护UG后处理器是各UG/CAM用户必须注意的环节。
  D+ @# I! y& _: Q, d; C5 W% j    至于UG/Post后处理器的细节请参见相关资料:有关事件生成器所生成的事件和定义文件中如何定义NC代码格式的部分请参阅UG的帮助文档;有关PostBuilder的部分请参阅PostBuilder的帮助文档;有关TCL语言的部分请参阅关于TCL语言的书籍;有关TCL语言对UG/CAM的扩展部分请参阅UG的帮助文档。

评分

参与人数 1流量 +3 G币 +2 收起 理由
李双虎 + 3 + 2 技术文章,希望继续上传

查看全部评分

发表于 2007-10-7 11:29 | 显示全部楼层
顶上.
发表于 2008-1-6 16:44 | 显示全部楼层
不错。。。很好!
发表于 2008-1-6 19:33 | 显示全部楼层
dddddd
发表于 2008-1-7 16:03 | 显示全部楼层

详细

说明具体,长见识了
发表于 2008-1-12 10:13 | 显示全部楼层

cvfdv

fgfdfgdfgfd
发表于 2008-8-16 20:24 | 显示全部楼层
程序名跟操作名一致
发表于 2009-4-28 16:14 | 显示全部楼层
dddddd
回复 支持 反对

使用道具 举报

发表于 2009-4-29 08:54 | 显示全部楼层
恩 看過之後. c# V4 Y& B# s; s
對後處理的一些來龍去脈有一點釐清# ]- b- |$ h+ b1 a
好文一篇  謝謝分享唷
回复 支持 反对

使用道具 举报

发表于 2009-9-6 23:19 | 显示全部楼层
可惜我不会制作后处理。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 02:17 , Processed in 0.059528 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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