当前位置:文档之家› 关于后处理方面的问题(

关于后处理方面的问题(

关于后处理方面的问题(
关于后处理方面的问题(

关于后处理方面的问题(一)

提问: 程序里的刀具号可以去掉吗?(zihai2005)

回答:OUTPUT $ "M06T" CURR_TOOL ;将这个屏蔽,就不会显示刀具号(星球大战)

提问: ciamtron version 12 menu是什么东东啊(午时午刻)

回答:是cimatron 安装后的控制面板,直接在开始菜单里可以打开(haitianyis)

提问: 每次换刀都回机械原点,如何设定。 (午时午刻)

回答:(1) TOOL CHANGE: (sjhxs)

TOOL CHANGE: LAST:

OUTPUT $ " M05 " ; 主轴停止

OUTPUT $ " G91 G28 X0 Y0 Z0 ; 返回机械参考点

OUTPUT $ " M06 T" CURR_TOOL ; 换刀

OUTPUT $ " 程序头内容" ;

.... ..... ....

(2)高速主轴自动暖机(星球大战)

你是用高速主轴吗?开始加工前,主轴暖机吗(换刀后从低速到高速,而不是直接到高速)?你想让你的主轴寿命更长、精度更高吗?如果是,请按照以下方法定制你的后处理:

fanuc系统

*-----主轴暖机程式

if_set (SPIN_SPEED _ge_ 7000) 转速设定在7000-10000时,换刀后主轴以5000的速度运转1

if_set (SPIN_SPEED _le_ 10000) 分钟;

OUTPUT $ "M03 S5000" ;

OUTPUT $ "G04 X60." ;

OUTPUT $ "M05" ;

end_if ;

end_if ;

if_set (SPIN_SPEED _gt_ 10000) 转速设定在10000-15000时,换刀后主轴以5000的速度运转

if_set (SPIN_SPEED _le_ 15000) 1分钟,10000转运行2分钟;

OUTPUT $ "M03 S5000" ;

OUTPUT $ "G04 X60." ;

OUTPUT $ "M05" ;

OUTPUT $ "M03 S10000" ;

OUTPUT $ "G04 X120." ;

OUTPUT $ "M05" ;

end_if ;

end_if ;

if_set (SPIN_SPEED _gt_ 15000) 转速设定超过15000时,换刀后主轴以5000的速度运转

OUTPUT $ "M03 S5000" ; 1分钟,10000转运行2分钟,15000转运转3分钟;

OUTPUT $ "G04 X60." ;

OUTPUT $ "M05" ;

OUTPUT $ "M03 S10000" ;

OUTPUT $ "M05" ;

OUTPUT $ "M03 S15000" ;

OUTPUT $ "G04 X180." ;

OUTPUT $ "M05" ;

end_if ;

时间和转速可以根据自己机台实际情况设定;

如果是hiden系统,要将x改为f

(3)输出行号时,经常会出现行号大于十万造成机床报警,可以将输出行号部分改为:

(eexit)

NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO)

OUTPUT \J ;

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT \J "N" Seq ;

Seq = Seq + SeqIncr ;

IF_SET (Seq _EQ_ 10000 )

Seq = 1;

END_IF;

ELSE

OUTPUT \J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ;

IF_SET (SubSeq _EQ_ 10000 )

SubSeq = 1;

END_IF ;

END_IF ;

这样行号只会要到9999后,就会又从1开始.

参考材料:给大家上传个群处理---之报表头不知大家有没有(zihai2005)

资料为压缩文件:20067141303335840.rar

例题: 整园等分四段输出的方法 (sjhxs)

先提示一下供大家参考.相信当你熟悉了该算法后,可举一反三,不管是G91还是G90输出方式,均可方便实现,先来看看与园相关的变量,见图8:

我们先来计算各等分点相对于园心的坐标,即相对坐标,见上图:

起点X4=Xold-X_CENTER,Y4=Yold-Y_CENTER;

根据分析,不考虑正负时的相对值X4=Y1=X2=Y3,Y4=X1=Y2=X3;(初中的知识,请不要问我原因哦!)

而且我们知道I=园心X坐标-起点X坐标,J=园心Y坐标-起点Y坐标;

居此可推导出各点的X,Y绝对值以及I,J的坐标公式;

X4=Xold; Y4=Yold;(此处Xold=X_ENDPT,Yold=Y_ENDPT)

X1=X_CENTER-Yold+Y_CENTER; Y1=Y_CENTER+Xold-X_CENTER;I2=X_CENTER-X4; J2=Y_CENTER-Y4;

X2=2*X_CENTER-Xold; Y2=2*Y_CENTER-Yold; I3=X_CENTER-X1; J3=Y_CENTER-Y1;

X3=X_CENTER+Yold-Y_CENTER ; Y3=Y_CENTER-Xold+X_CENTER ;I4=X_CENTER-X2;J4=Y_CENTER-Y2;

I1=X_CENTER-X3;J1=Y_CENTER-Y3;

当ARC_ANG _EQ_ 360.0时输出(即逆时针G03时):

OUTPUT $ ;

IF_SET (CIRC_MOV) OUTPUT " " CIRC_MOV ; END_IF ;

OUTPUT " X" X1 " Y" Y1 " I" I2 " J" J2 ;

.... ...... ..... ......

OUTPUT $ " X" X4 " Y" Y4 " I" I1 " J" J1 ;

当ARC_ANG _EQ_ -360.0时输出(即顺时针G02时):

OUTPUT $ ;

IF_SET (CIRC_MOV) OUTPUT " " CIRC_MOV ; END_IF ;

OUTPUT " X" X3 " Y" Y3 " I" I2 " J" J2 ;

.... ...... ..... ......

OUTPUT $ " X" X4 " Y" Y4 " I" I3 " J" J3 ;

现在可以把楼上的这些内容写入EXF文件中了,试一下吧!偶的测试结果见下图9:

提问: 坐标系有G54G55时,后置处理怎样编辑(午时午刻)

回答:G54 G55在里面是坐标的意思,他是根据你机床的参数来定的,如果在后处理后输出是G54那么数据到了机床就是以你机床里的G54坐标为标准,比如你工件分中的数据都输到了G54,那么你在后处理出来的文件里就要改成G54!(ggggbgss)

提问: 我用的是Cimatron E6.0

机器工作不到5分钟,就停下来了.打开G代码文件一看,原来在程序的中间部份有M30 的子命在.但在程序的最后也M30的子命在.请问怎样去掉,程序中多的M30子命.在后处理中.

我每次都要打G代码文件来,手工删除多的M30子命,太不方便了.哪位大侠能帮小弟一下,谢谢!(skywei)

回答:删除也可以,在前面加*号也可以,但是*号前面不能有空格,然后重新编译;

修改后处理,把除了程式尾的M30留着,其他的都删除,然后保存,重新编译;(星球大战)

提问: 这个后处理走圆弧是用I J格式的,机床不接受I J格式.只能用后处理走圆弧用半径R格式的.那位大侠有这种格式的后处理.麻烦版主帮忙改一下。(uqca)

回答:偶提供的只要按图操作即可选择园弧输出方式X、Y、I、J或X、Y、R图10(sjhxs)

提问: 后处理参数改不了!程式名也不能自己命名的!请问要怎样改?多谢了!(uqca)

回答: 本后处理由于已经启动了自动命名及文件组装机制,即后处理的生成位置名称已固定为\NC\工件名\数字&路径.NC,所以参数不能改,否则将丢失程序头及注释内容.你所能决定的只能是文件生成的分区!如果你非要修改,只要按主菜单-NC-DFPOST-后处理名-OUTPUT FILES-RUN SCRIPT FILE AFTER POST-YES改NO即可.但绝对不适合本后处理!(sjhxs)

提问: 如何解决机床最大行号大于99999以后行号又从新开始的问题多谢了(ww7525)

回答:NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO)

OUTPUT \J ;

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT \J "N" Seq ;

Seq = Seq + SeqIncr ;

IF_SET (Seq _EQ_ 99999) Seq = SeqStart ; END_IF ;

ELSE

OUTPUT \J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ;

END_IF ;

END_IF ;

(sjhxs)

提问: 版大能不能教我怎么把圆弧输出的 I.J改成R格式的,真的很需要谢谢(zhanyongeyo)

回答:将原:

IF_SET (DXcenter _NE_ 0.0) OUTPUT " I" DXcenter ; END_IF ;

IF_SET (DYcenter _NE_ 0.0) OUTPUT " J" DYcenter ; END_IF ;

改为:

IF_SET (ARC_ANG _LT_ 0.0) ARC_ANG = 0.0 - ARC_ANG ; END_IF ;

IF_SET (ARC_ANG _EQ_ 360.0) ARC_ANG = 0.0 ; END_IF ;

IF_SET (ARC_ANG _LE_ 180.0)

OUTPUT " R" RADIUS_ ;

ELSE

OUTPUT " R-" RADIUS_ ;

END_IF ;

(sjhxs)

提问: 感谢sjhxs老大,你真的是太牛了,小弟还有一点不明白OUTPUT " R-" RADIUS_ ; 是输出负R的意思吗,不是有G2G3吗,程序处理出来也没有负R,不知道是不是那个意思,还请老大指点(zhanyongeyo)

回答:无论是G02还是G03,因为通过2点及半径可以绘制出两个园,所以必须通过输出R与负R来区别,即当弧度张角小于等于180度时输出正R,而大于180度时输出负R。否则...有一天,你就准备抹眼泪吧...........

如图12所示:R与负R输出的轨迹区别(sjhxs)

关于后处理方面的问题(二)

提问: sjhxs老大程序头这样的应该怎么改后处理是 SM802D的系统

%_N_H_MPF H 代表名字随便什么字母都可以

G54 G64

G90 G17

(jzx88在)

回答:建议先翻前面的帖子查看。

你的程序头可写在下面区块下

BEGINNING OF TAPE: (纸带开头)

TOOL CHANGE: FIRST:(第一次换刀)

OUTPUT J "%_N_H_MPF " ;

OUTPUT J "G54 G64 " ;

OUTPUT J "G90 G17 " ;

(sjhxs)

后处理修改详解

(星球大战)

〖第一课〗了解GPP后处理必须的过程

GPP后处理,必须的过程莫过编译了。

后处理修改的过程如下:

一、有记事本或专用的后处理修改器来修改EXF文件,EXF文件又称源代码。

二、编译,利用修改好的EXF文件,生成可用的DEX文件。

三、测试,看看您修改的后处理是否合乎您的需要。

另外,有些修改内容是不在EXF中,而是属于DEF的内容,这时候不需要修改EXF文件,只需要用另外的工具来修改就可以了。

下面会给出图片来解释。

打开DEMO.EXF,开头的内容就是关于自定义的变量类型了

********************************************************

* define private variables:

FORMAT (SEQUENCING) Seq SubSeq ; --行号类型有关的变量

FORMAT (TOOL) CutterComp FirstTool LastTool ; --刀具类型有关的变量

FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ; --坐标类型有关的变量

FORMAT (COORDINATES) Zinit Clear Depth ;

FORMAT (COORDINATES) Xhome Yhome Zhome ;

FORMAT (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;

FORMAT (USER_1) CurrSubNum ;

FORMAT (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;

* define private flags:

FORMAT (USER_2) FlagSub FlagSeq FlagSpin; --与用户2定义的类型有关的变量

FORMAT (USER_2) FirstOriginChange FlagError Flagrotmac ;

* define private constants:

FORMAT (USER_2) YES NO ;

* change the format of existing variables:

FORMAT (USER_1) SUB_NUMBER ;

此处偶把其看作是"户籍登记处",用户自己定义的变量必须在此登记,否则将编译错误.一旦选定类型,其变量格式由*.DEF文件对应部分控制。(DEF文件对应位置操作:主菜单-NC-DFPOST-后处理名-FORMATS-选择相关类型[在此可修改如最大(小)整(小)数位,等等内容] 见图:

例如:你的行号最大只认是99999,则可以修改行号类型(左图第6行)中的最大整数位为5(右图第1行);又如:你要求程序输出保留小数3位,则修改坐标类型(左图第1行)中的最大小数位为3(右图第2行),等等

图1

控制菜单中的两个重要有关图标解释一下:

一,DFPOST,这个就是我在一楼中说的DEF修改器,里面有相关的G代码定义,如果你愿意,可以把直线插补定义成G08(随便举的例子),当然还有一个更重要的是,有些朋友不希望在程序中输出M09,也可以在这里改。

二,DFEXF,这个就是编译器,任何后处理源代码的修改,都必须要通过这个编译器编译成功后,才能生效。

在正式开课后,会针对这两个命令做进一步的解释。可以说,不会这两个功能,就相当于不会改后处理,不会改后处理,那就相当于不会用Cimatron。因为每一台机床的控制系统都可能会不一样,Cimatron并没有提供更多的后处理来供您使用,当您换一个环境,或是增加一台机床,都可能面临后处理的问题。可以说,修改后处理,比学习几个刀路会来得更实在一些。

第一课中,我们需要来给大家讲解一下编译的过程,希望大家不要嫌简单。

例一:

准备工作:找到POST文件夹,并找到DEMO.exf, Demo.def, Demo.dex这三个文件。

具体操作:不需要做任何修改。首先打开MainMenu或者是Cimatron E Control Panel(E的控制面板),找到dfexf这个项目,单击他,出现如下提示:

CIMATRON E external file definition program (version 7.0)

=======================================

Enter file name without extension (.exf)

请直接输入demo,按下回车。

此时会提示

END OF COMPILATION : valid demo.dex created(有效的demo.dex文件已经创建了)

Press to exit.(按回车退出)

再次按下回车,退出此界面。

作用:编译一个正确的EXF文件到DEX文件,以备Cimatron NC在POST时调用。

例二:

准备工作:打开Demo.exf文件,用记事本就可以打开了,在里面添加一行:

output $ "(Test)";

放在BEGINNING OF PROC:的上面,存盘退出。

具体操作:先按例一的操作,结束后,用E/IT打开一个图档,然后POST一条刀路,应该在前三行会出现(Test)字符,如下:

%

O0100

(Test)

T01

G90 G80 G00 G17 G40 M23

G43 H01 Z100. S1000 M03

G00 X-3. Y0.0 Z100. M09

作用:正确地修改和编译。如果此项不成功,请检查步骤是否有错,并继续看例三。

与GPP修改有关地方

图2 图3

〖第二课〗DEF文件定制及相关项目解释

Def文件,可以算作是一个通用定义,比方说各代码的定义,输出格式等等,有的要4位小数,有的只要2位小数,都可以在这里定义。

例一:

目标:去掉程序中输出的M09。

具体操作:

打开控制面板,找到DFPost并单击他。

光标移到demo下面,并按下回车。

会出现下列的对话菜单:

1. TAPE INFORMATION

2. PROGRAMMING MODE AND UNIT

3. FORMATS

4. POSITIONING CODES ( Not in use )

5. MESSAGES AND INSERTS

6. MACHINE PARAMETERS

7. LINEAR MOTION

8. CIRCULAR MOTION

9. NURBS MOTIONS

10. CANNED CYCLES

11. OUTPUT FILES

12. POSTPR/EXPST INTERFACE

光标移到第六项,按下回车,再移到第8项,这一项是指关闭冷却方式的代码,光标会停在M09的M上,按三次空格,再按下回车。修改结束。

如何让这次改动生效?不是按下ESC退出就可以了的,您必须有一个存盘退出的过程。

按下ESC,一共需要2次,这时对话框显得有些乱,多进入退出几次,可以改善这一状况,如图所示。

第一项,问您什么文件名,这个当然不用动了。

第二项,是否保存?当然是YES了,一般来说,这个也不用动他。

第三项,是否替换?这时候要按下键,把他切换为YES。

第四项,准备一个输出文件?这个不用理他。

准备好这四项的确定后,按下Ctrl + Z(先按住Ctrl键不放,然后再按下Z键,再一起放开),保存就生效了,再按下回车退出,关闭这个对话框。

现在打开Cimatron E/IT,准备两条刀路,前一条开油或开气,第二条什么都不开。按以前的方案来做的话,第二条会输出一个M09,但是现在POST就不出输出M09了,一般我以前做的时候,冷却是都不开的,但是有的朋友可能加工时需要自动开油或开气的,这样就有个好处,不需要每一个都调整冷却方式。也有一定的弊端,这个大家自已考虑。

作用:演示一下通用设定文件的修改和生效方式。

接下来,就为大家一个一个地演示各项的操作,不过有些项目我也不是太明白,就省略了,我想也是不常用的项目,大家只要了解一些必须的知识就行了,如果有些高级的内容(如多轴系统),还是由Cimatron公司来帮您定制来得更好。

打开DEMO.EXF文件,找到以下内容:

********************************************************

INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ; 主程序号

INTERACTION (TOOL) "DIACOMP=TOOL+" DiaComp = 50 ; 刀补号

INTERACTION (USER_1) "TOOL-CHANGE-PROGRAM" ChangeTool = 8000 ; 换刀子程序号INTERACTION (CHARACTER) "SEQUENCING" NumYN = "N" ; 是否需要行号

INTERACTION (SEQUENCING) "SEQUENC-START" SeqStart = 10 ; 起始行号

INTERACTION (SEQUENCING) "SEQUENC-INCR." SeqIncr = [upload=jpg]

图4

10 ; 行号增量

INTERACTION (CHARACTER) "SUBROUTINES" Sub = "Y" ; 是否输出子程序

INTERACTION (USER_1) "SUB-PROGRAM-NUMBER" StartSubNum = 1000 ; 子程序号

********************************************************

菜单说明:

INTERACTION 交互作用,是执行后处理时的一些交互的内容:

(CHARACTER)字符类型,仅指定义的符号

(USER_1)格式类型,性质同变量格式,余同。

“XXXX.....XXXX”交互菜单显示内容

MainNum 定义符,其定义的值或者字符由编程者输入。

例:当主程序号输入5时,相应的输出部分内容“MainNum”则用5取代。

*-----output

IF_SET (FlagSeq _EQ_ YES )

OUTPUT "%" J "O" MainNum ; ----NC文件输出为%O5

ELSE

OUTPUT " %" J " O" MainNum ; ----NC文件输出为 % O5

END_IF ;

交互菜单界面

图5

如果需要添加新的交互内容,只需要添加一个交互行就可以了,当然需要注意被交互的内容格式是字符型还是实数型。

假如我要出两种不同程序头的后处理,可以在楼上的菜单中,增加一行:

INTERACTION (CHARACTER) "CONTTYPE_SELECT" CONTTYPE = "N" ; 字符型的交互内容

关于后处理方面的问题(三)

在EXF文件程序头输出部分改成下面内容就可以了

IF_SET ( CONTTYPE _EQ_ "y" ) CONTTYPE ="Y"; END_IF ; 大小写设别

IF_SET ( CONTTYPE _EQ_ "Y" ) 如果CONTTYPE=Y

OUTPUT " %_N_DM_MPF" J ;

OUTPUT " ;$PATH=/_N_MPF_DIR" J " G90 G00 G17 G64 G54 " ;

ELSE 反之

OUTPUT " %" J " G90 G00 G17 G40 G54 " ;

END_IF ; 判断结束

图6

如果需要添加新的交互内容,只需要添加一个交互行就可以了,当然需要注意被交互的内容格式是字符型还是实数型。

假如我要出两种不同程序头的后处理,可以在楼上的菜单中,增加一行:

INTERACTION (CHARACTER) "CONTTYPE_SELECT" CONTTYPE = "N" ; 字符型的交互内容

在EXF文件程序头输出部分改成下面内容就可以了

IF_SET ( CONTTYPE _EQ_ "y" ) CONTTYPE ="Y"; END_IF ; 大小写设别

IF_SET ( CONTTYPE _EQ_ "Y" ) 如果CONTTYPE=Y

OUTPUT " %_N_DM_MPF" J ;

OUTPUT " ;$PATH=/_N_MPF_DIR" J " G90 G00 G17 G64 G54 " ;

ELSE 反之

OUTPUT " %" J " G90 G00 G17 G40 G54 " ;

END_IF ; 判断结束

当编程者在交互区输入Y或非Y时,NC文件程序头分别为:

%_N_DM_MPF

;$PATH=/_N_MPF_DIR_MPF

G90 G00 G17 G64 G54

或:

%

G90 G00 G17 G40 G54

....

有不少人或许对上面的条件判断不大了解,可翻旧贴查看!

主要判断符号如下:

等于 _EQ_

不等于 _NE_

大于 _GT_

小于 _LT_

大于等于 _GE_

小于等于 _LE_

第三课定义DEF文件

Tape Information

When the maximum number of blocks or tape length is reached during an execution, the tape will be cut automatically and a warning message will be issued.

1.Maximum no. of blocks in tape < >

2.Maximum tape length (in meters) <60.0>

3.Subroutines in separate files

第一项:纸带中最多的块数,所谓块数,指的是纸带中的任意一个指令的存在,比方说“G01”,就算一个BLOCK,“X100”,也算一个BLOCK。

第二项,纸带的最大长度。这个代表的是米数(是纸带长度还是刀路长度没有去具体了解,字面意思理解是纸带长度)。第三项,是否在分开的文件中引用子程序。

这一段的设置,在我们大多数地CNC应用中,是很少接触到的,所以如果没有必要的话就不要去动他了,这个大家能够了解一下就可以了,留在脑中以防万一。

Programming Mode and Unit

Questions 1 through 4 are for informational purposes only. Every length unit (X, Y, Z, I, J, K) will be multiplied by the Fact or for length units.

1.Programming mode

2.Code for absolute coordinates

3.Code for incremental coordinates

4.Length unit of measurement

5.Factor for length units <1.0>

6.Tool Start Point

7.Coordinate orientation

第一项:编程模式,分别为绝对值编程,相对值编程,混合编程。

第二项:使用绝对值坐标的命令(默认为G90)

第三项:使用相对值坐标的命令(默认为G91)

第四项:长度单位(公制,英制,混合)

第五项:比例因子(默认为1.0),这是一个非常有用的功能,许多人都问过,但我一般都没有去回答,因为涉及到前面的那些基本操作和理解,要一个一个地说清楚,是一件很郁闷的事。当你的工件忘记放收缩了,可以用这个让刀路放收缩,注意,这个是绝对的,也就是说,你的工件图形和目标工件,必须存在的是一个固定的比例关系,不可以是型腔要放收缩,而导柱孔不需要放收缩,要放就一起放,除非你深入地去理解他,操作他。如果零件的缩水是0.008,那么这里就输入1.008,图形中的100mm,加工后就变成了100.8mm,这个参数一定要小心修改!

第六项:刀具起始点,分别为路径起点,第一程序起点。

第七项:坐标原点,分别为机床原点,第一程序原点,当前程序原点。

上面这两项,没必要的话,不要去弄他,一~四项一般来说,也不要去动他。

Note:

6. Tool Start Point: If TP HOME is chosen, X_HOME, Y_HOME, and Z_HOME will be the coordinates of the toolpath star t point. If 1ST PROC HOME is chosen, the coordinates will reflect the start point of the procedure.

7. Coordinate orientation: If 1ST PROC is chosen, the output orientation will be the same as that of the first output procedur

e. If CUR PROC is chosen, the output orientation will be the same as TP LIST.

Formats

There are eighteen format option questions for each of the following formats. They are listed below the formats. The default values for the formats each have a value with twelve positions. Each position represents an answer for one of the twelve for mat option questions.

If a question is to be answered YES or NO, 0 is NO and 1 is YES. The tilde ~ symbol represents any character but a blank.

A blank space in the default position indicates that no character or space will be inserted in the specified position.

Note:

For technical reasons the values representing the answers to Format Options 11 and 12 are reversed, i.e. the 11th position co rresponds to Format Option 12 and the 12th position corresponds to Format Option 11.

Character is a format type which may be assigned in place of the format types listed. It is not defined with the DFPOST que stions. It assigns a modal status, by default. Variables formatted as Character may contain up to 20 characters.

User_1 to User_10 are user-defined format types and are explained in Section 3.2.

Coordinates <430000~-.101>

坐标

Angles<430000~-.101>

角度

Feed<5 1001~~ 101>

进给(不可以有负值哦)

Spindle_speed<5 1001~~.101>

转速

Dwell<430000~~.101>

钻孔循环

Sequencing<5 1001~~ 101>

行号

Tool<4 0000~~.001>

刀具

User_1<430000~-.001>

自定义

User_2 <430000~-.001>

自定义

User_3<430000~-.101>

自定义

User_4 <430000~-.101>

自定义

User_5<430000~-.101>

自定义

User_6<430000~-.101>

自定义

User_7<430000~-.101>

自定义

User_8<430000~-.101>

自定义

User_9<430000~-.101>

自定义

User_10<430000~-.101>

自定义

Real<355511~-.100>

实数

上面的就是变量定义的,舜江候兄没有讲得太清楚,我补充上来。其中尖括号里的内容就是默认值,对应在下面的变量格式里。

如:<430000~-.101>

最大4位整数,3位小数,整数最小位数为0,小数最小位数为0,前导零不要,后导零不要,正号不输出,负号为“-”,小数点为“."……后面几位我也不是太清楚,所以就不说了。

有一种情况,不知道大家是否会遇到,你们可以立即测试一下。通过2点画一个R足够大的圆,比方说R40000,两点距离为200,然后沿线做一条刀路,看看POST出来的刀路是否也是R40000,如果不是,那就把第一项Coordinates 的值改一下,这一项的用处大家应该知道了,后面就不多解释了。

我们在用EXF文件定义中,会用到这些变量格式,有一节变量定义中,大家可以看到各种值用的是什么格式,如果有必要的话,就修改他,或者用自定义的格式(User1~10)。

The values entered below are the default settings for Coordinates, 1. above. <430000^-.101>

See Chapter 3 in this manual for a detailed explanation of modal variable values (Item 12).

Format Options

Max. digits for integer part <4>

整数位数

Max. digits for fractional part <3>

小数位数

Min. digits for integer part <0>

整数最小位数

Min. digits for fractional part <0>

小数最小位数

Leading zeroes

前导零。就是说如果出现“0.02”这样的值,是否需要前导的零,如果选NO的话,输出就是“.02”

Trailing zeroes

这个应该是后导的零吧,小数位数是3,如果有"0.2"这样的数,小数位数不足3,后面补零输出为"0.200",这个我没有去测试。

Character for the + sign < >

正号,这个不需要,所以是空的。

Character for the - sign <->

负号

Character for decimal point <.>

小数点

Use decimal pt. for whole numbers?.

Representation of value 0 <0>

0的特殊表达

Modal value ?

????

Notes:

注意

Max. digits for integer part/Max. digits for fractional part <= 9

整数部分和小数部分最大位数是9,以后不要说Cimatron没精度了,Cimatron的精度绝对在浮点运算水平上。For Real format, Max. digits for integer part and Max. digits for fractional part are internally set to 14

Real模式(实数)最大位数为14。

第四课 EXF的重要区段变量

许多段落在里的exf文件里,都可以看到。用法比较简单,只需要在段落开始的时候写上段名(后面要有一个冒号),就表示这一段开始。

例如:

BEGINNING OF PROC:

OUTPUT $ "(Procname:" proc_name ")";

这就表示,在程序起始时,先输出程序名。直到该段代码运行完毕,遇到下一个段名(如“LINEAR MOTION:”),才会结束这一段。输出的内容,全部都在程序起始的部位。

除此以外,还有几个很重要的区域,掌握后,对定制EXF有很大的帮助。

从顶部看起:

* DEMO 3 axes Post Processor for FANUC

* CIMATRON90 VER 9.0

* Last update : 23-FEB-1998

********************************************************

* define private variables: 私有变量

FORMAT (SEQUENCING) Seq SubSeq CNTRL_NUM NURBS_DEG count first deg ;

FORMAT (TOOL) CutterComp FirstTool LastTool ;

FORMAT (COORDINATES) Xold Yold Zold DXcenter DYcenter DZcenter ;

FORMAT (COORDINATES) Zinit Clear Depth CNTRL_X CNTRL_Y CNTRL_Z KNOT_ ;

FORMAT (COORDINATES) Xhome Yhome Zhome ;

FORMAT (COORDINATES) XfirstOrigin YfirstOrigin ZfirstOrigin ;

FORMAT (USER_1) CurrSubNum ;

FORMAT (coordinates) ORIGOLDI ORIGOLDJ ORIGOLDK ;

* define private flags: 私有标记

FORMAT (USER_2) FlagSub FlagSeq FlagSpin;

FORMAT (USER_2) FirstOriginChange FlagError Flagrotmac ;

* define private constants: 私有常量

FORMAT (USER_2) YES NO ;

* change the format of existing variables: 变更已存在变量格式

FORMAT (USER_1) SUB_NUMBER ;

上面这个部分就是变量/常量定义,这些都属于自定义变量,所以要告诉系统,这些变量分别属于什么格式,格式指定正确,可以节省内存,加快程序运行效率,另外,也不会出错。说到这里,稍有编程基础的人就知道变量定义的重要性,例如一个数字2356,如果要用文本方式存储(无限制,一个数字一个字节),需要占用4个字节,而用短整数方式存储(最大65535),只需要占用2个字节,而用长整方式存储(最大4294967295),需要4个字节。

象还有些User_2的变量,就是我们在Def中讲到的,大家可以去看看这些变量的格式。

INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ;

INTERACTION (TOOL) "DIACOMP=TOOL+" DiaComp = 50 ;

INTERACTION (USER_1) "TOOL-CHANGE-PROGRAM" ChangeTool = 8000 ;

INTERACTION (CHARACTER) "SEQUENCING" NumYN = "N" ;

INTERACTION (SEQUENCING) "SEQUENC-START" SeqStart = 10 ;

INTERACTION (SEQUENCING) "SEQUENC-INCR." SeqIncr = 10 ;

INTERACTION (CHARACTER) "SUBROUTINES" Sub = "Y" ;

INTERACTION (USER_1) "SUB-PROGRAM-NUMBER" StartSubNum = 1000 ;

上面的部分内容,就是一个交互区,这些是在Post前,接受的一些自定义内容,有些高手,把其中某项输入加以判断,分别输出不同的代码(如同时支持Fanuc,三菱,Sim802s的后处理),这一点,舜江侯兄玩得很精,可机会的话,可以请他再给大家加以详细解释。

这部分代码,每行有四个部分

INTERACTION (USER_1) "MAIN-PROGRAM-NUMBER" MainNum = 100 ;

其中INTERACTION(USER_1),这一部分,指示这是一个USER_1格式的交互操作,其中USER_1的格式在def中定义,而该项的操作对象(变量)是MainNum。

“MAIN-PROGRAM-NUMBER”,这一部分,是指示的在Cimatron软件中显示的文字内容或提示,记住,如果你的系统不支持中文,请不要在这里写下中文字符,特别是IT。E版支持中文的显示,没有问题。

MainNum,被操作的变量,也就是这里输出的数值或文本,将在确定后,传送到对应的变量MainNum中,在处理过程中,该项的值就是您输出的数值。

=100,默认值,该值在您输出后,会被改变。

最后不要忘记,一定要在行尾加上分号";"。

所有字符,一定要输入半角英文,引号内的内容除外,切记!不过也有特殊的情况,象X,Y,Z这一类的字符,是在引号内的,您也不可以输出全角字母,因为就算Cimatron编译通过了,机床也不会认XYZ(XYZ)这样的全角字符,和括号里的XYZ比较一下就知道有什么区别了。

下面,我们来做一些练习,学习交互区的操作。

练习一

汉化:

INTERACTION (USER_1) "主程序序号" MainNum = 100 ;

INTERACTION (TOOL) "刀具补偿" DiaComp = 50 ;

INTERACTION (USER_1) "换刀子程序" ChangeTool = 8000 ;

INTERACTION (CHARACTER) "是否输出行号" NumYN = "N" ;

INTERACTION (SEQUENCING) "行号起始值" SeqStart = 10 ;

INTERACTION (SEQUENCING) "行号增量值" SeqIncr = 10 ;

INTERACTION (CHARACTER) "是否输出子程序" Sub = "Y" ;

INTERACTION (USER_1) "子程序号" StartSubNum = 1000 ;

然后编译,执行POST,看看有什么变化没有。以上操作,请在Cimatron E版或Cimatron IT中文版下进行。

图7

练习二

增加一个操作项。

INTERACTION (CHARACTER) "编程员" Programmer = "张" ;

然后在BEGINNING OF TAPE:段中加入相应的内容,例如加在%号前面

*-----output

OUTPUT $ "(编程员:" Programmer ")" J;

IF_SET (FlagSeq _EQ_ YES )

OUTPUT "%" J "O" MainNum ;

ELSE

OUTPUT " %" J " O" MainNum ;

END_IF ;

在程序中,J是指输出一个换行符,如果不加换行符,那么后面的内就会直接根上来,导致一行可能不被机床识别的代码。

这只是举的一个例子,实际中,用这个输出编程员的名字是不可以的,因为他只能识别两个字节(2个英文字母,1个中文汉字)的内容,大家试一下把Programmer =“张”改成“张三”便知。

另外要注意的一点是,所以的交互区用到的变量都不需要预先定义,因为在交互的时候,也就定义了变量。

NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO)

OUTPUT J ;

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT J "N" Seq ;

Seq = Seq + SeqIncr ;

ELSE

OUTPUT J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ;

END_IF ;

END_IF ;

这一节是输出子程序和程序号,一般没必要的话,不要去改动他,程序行号在后面还有部分代码的,在后面我们会分别讲述。

可能有的朋友想默认不输出子程序,把

INTERACTION (CHARACTER) "是否输出子程序" Sub = "Y" ;

后的"Y"改成"N"就可以了。

在您的Program文件夹下,有一大堆chm文件,或者在Cimatron中按下F1也可以打开Help,IT是无效的哦!

因为是英文的,所以大家读起来可能会有一些困难,这时候要借助一些翻译软件来学习了,英文不好的朋友,不要气馁,慢慢地读。

关于后处理方面的问题(四)

Blocks and Their Variables

在这一节中,标明的是每个段及其能识别的变量,也就是说,这些段只能识别这些变量。例如:

在END OF PROC:这一段中,能识别的变量就是 N_FED_TIME、N_FST_TIME、N_GEN_TIME这三个,这就是为什么有些朋友在输出加工时间时,为什么想在程序头中输出而进行不了的原因,可以在反过来看看Beggin of proc 这一节,是不支持这几个变量的。

在这一节下面,Formats for Variables也是非常有用的,这个列举出了所有的变量以及其使用的相关信息,大家以后在定制后处理的时候,要随时翻查这一内容。

Executable Block Statements

这一节中是关于程序流程控制的部分,也是非常有用的,大家先看,后面会一一细讲。

〖第五课〗几个BEGINNING段

第一个段,BEGINNING OF TAPE:

在DEMO中,是这样的内容。

YES = 1 ;

NO = 0 ;

Seq = SeqStart ;

YES,NO是两个自定义的变量,先来个赋值。赋值就是一个流程控制,也是一个最基本的语法,例如,Time = 0.001,Time=Time+N_GEN_TIME。第一个的意思是让Time的值为0.001,第二个的意思是指,把Time原有的值去加上N_GEN_TIME的值,然后把结果再赋给TIME。上面Seq=seqstart,其中SeqStart就是在交互区中曾经赋过值的。 FlagSeq = NO ;

FlagSub = NO ;

还是赋值,NO已经被赋值为0了,那么现在FlagSeq和FlagSub都等于0。

IF_SET (NumYN _EQ_ "y") FlagSeq = YES ; END_IF ;

IF_SET (NumYN _EQ_ "Y") FlagSeq = YES ; END_IF ;

开始判断,如果NumYN等于“Y”或"y"(因为他区分大小写,所以要写两句 ),那么FlagSeq的值就变成1。注意后面还要有END_IF。这时候,大家要参考一下GPP里的帮助了。“_EQ_”就是一个逻辑判断,判断前后两项的内容是否相等。IF_SET最标准的写法就是:

IF_SET (条件)

满足条件执行的语句;

ELSE

不满足条件执行的语句;

END_IF;

IF_SET (Sub _EQ_ "y") Sub = "Y" ; END_IF ;

IF_SET (Sub _EQ_ "Y")

SET_OFF NO_SUBROUT ;

ELSE

SET_ON NO_SUBROUT ;

END_IF ;

这里有一个SET_ON语句,看GPP中System Flags一节。

*-----Unit matrix (MUST be input in this order !!!)

OT_MAT1 = 1.0 ; ROT_MAT2 = 0.0 ; ROT_MAT3 = 0.0 ;

ROT_MAT4 = 0.0 ; ROT_MAT5 = 1.0 ; ROT_MAT6 = 0.0 ;

ROT_MAT7 = 0.0 ; ROT_MAT8 = 0.0 ; ROT_MAT9 = 1.0 ;

这一节是轴相关操作的,不用改。

*-----shift all data according to the MCHINE ZERO indicated by the

* user in the POSTPR interaction

TRANS_MATX = 0 - X_MACH ;

TRANS_MATY = 0 - Y_MACH ;

TRANS_MATZ = 0 - Z_MACH ;

*-----shift the HOME according to the MCHINE ZERO indicated by the

* user in the POSTPR interaction

Xhome = X_HOME - X_MACH ;

Yhome = Y_HOME - Y_MACH ;

Zhome = Z_HOME - Z_MACH ;

*-----tool location is HOME

Xold = X_HOME ;

Yold = Y_HOME ;

Zold = Z_HOME ;

*-----For 1st ORIGIN CHANGE

FirstOriginChange = YES ;

MCH_FEED = 9999 ;

以上内容,通通略过。

IF_SET (FlagSeq _EQ_ YES )

OUTPUT "%" J "O" MainNum ;

ELSE

OUTPUT " %" J " O" MainNum ;

END_IF ;

如果FLAGSEQ这一项为1的话,输出%O100,否则输出% O100,%和O前面有空格的,下面还有一段解释是和这一节有点儿关系的,继续看。

*--For the first origin change

ORIGOLDI=0 ; ORIGOLDJ=0 ; ORIGOLDK=1 ;

flagrotmac = no ;

=========================================

在BEGINNING OF TAPE: 前面,还有一段:

NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO)

OUTPUT J ;

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT J "N" Seq ;

Seq = Seq + SeqIncr ;

ELSE

OUTPUT J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ;

END_IF ;

END_IF ;

翻译如下:

新行属于字符串输出。

如果设定为不输出行号的话

在文件中输出一个换行符(J)

否则(就是指输出行号)

如果不输出子程序(又一个子判断语句,嵌套)

那么,先换行,输出一个N,再输出Seq的内容(就是行号)

把Seq加上增量值,以便下一次调用。

否则

输出换行,输出N,输出SubSeq子程序号。

SubSeq加上增量值,以便下一次调用。

结束判断

结束判断

BEGINNING OF PROC:

KEEP PROC_NAME ;

SET_ON MCH_COOL ;

FlagSub = NO ;

SubSeq = SeqStart ;

这一节显得简单得多。KEEP的作用是保持,但是保持了有什么用我也是不太清楚,所以呢,这一节原有内容大家不要动他好了。

下面会根据需要,再增加几项输出的。

输出的格式

Output 变量常量;

Output后面可以有任何有效的变量或常量,包括$及J,如果用Output $就可以不用J了。

如:

Output $ "Masscam";和Output J "Masscam";是等效的。

变量也变量之间,要用空格格开,常量与变量之间,可以不用格开。但是常量这里一般指的是“”方式的字符串,其它的输出内容,暂时还没有去研究他。

还可以这样写。

Output J "(Proc_Name:"Proc_Name")"J"(Tools:"Curr_Name")";

注意,这只是一个范例而已,并不表示他在这一节能生效。

BEGINNING OF TOOLPATH

这一节DEMO中半没有用到,只有在一次POST多个PROC或多个TP的时候才有作用。

这里没必要就不再详述了,如果你需要输出TPNAME,可以这样写:

BEGINNING OF TOOLPATH:

OUTPUT J "(Toolpath_Name:" TP_NAME ")";

Output后面可以有任何有效的变量或常量,包括$及J,如果用Output $就可以不用J了。

如:

Output $ "Masscam";和Output J "Masscam";是等效的

这话我补充一下

$和J是有区别的

$是一个段变量,它是NEW_LINE_IS段的简化替代,它可以代表一组指令,比如

NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO)

OUTPUT J ;

ELSE

IF_SET (FlagSub _EQ_ NO)

OUTPUT J "N" Seq ;

Seq = Seq + SeqIncr ;

ELSE

OUTPUT J "N" SubSeq ;

SubSeq = SubSeq + SeqIncr ;

END_IF ;

END_IF ;

$就简化表示了 IF_SET 到END_IF之间的指令段

而J是代表G代码的行回车符,

只有当FlagSeq为NO时(上面的指令段),$和J会等效,但它们是不等价的

我在搞一个多文件输出的后处理时发现,J不仅代表G代码的行回车符,还代表

G代码文件的结束符,比如DEMO中对G代码文件的结束表示如下

END OF FILE:

IF_SET (FlagSeq _EQ_ YES )

OUTPUT J "%" ;

ELSE

OUTPUT J " %" ;

END_IF ;

如果启动了分割文件机制,那么上面指令段中的%是不会出现在前一个文件的结尾,它会出现在后一个文件的开头,这会导致后一个文件的开头有两个 %

因此,为防止此BUG,代码改为如下

END OF FILE:

IF_SET (FlagSeq _EQ_ YES )

OUTPUT J "%" J ;

ELSE

OUTPUT J " %" J ;

END_IF ;

当开启行号时:OUTPUT J 不产生行号,而OUTPUT $ 则产生行号。

用CMD命令来拓展GPP后处理功能

(sjhxs)

敬告Cim爱好者:本文适合初步了解EXF文件中的各大区块功能,欲对后处理更进一步深入的朋友,如果你对GPP

后处理还不知所以然,那就不要浪费你宝贵的时间了...当然对老鸟而言,这幼儿园的文章可能难入法眼,请你权当文字垃圾!!

所举方法经本人测试通过!!如果以前有同样的内容,纯属巧合!!! 基于反对挟技不露,吝啬保守及支持技术共享考虑,文章公开发表。转贴务请注明出处。

相信大家都知道,将后处理文件改名并存放在指定文件夹中是我们最常用的命令,实际就是将执行这一过程的DOS 命令写入print0.txt中,然后通过CMD文件将print0.txt改成批处理文件并执行之。这里所产生的print0.txt文件名是内定的,其内定文件范围为print0--print10,只不过其他文件名与NC代码文件名一致,无非是把扩展名内定为

P01--P10罢了,所以我们完全可以利用这些内定生成的文件达成不同的目的。

现试举几种方法,权作抛砖引玉!

砖头1:文件组装

由于NC文件顺序输出的关系,有的内容与你希望显示的位置不一致,这里可通过内定的文件来区隔,然后按需要重新组装产生新文件:如将程序头写入print0,注释内容写入*.p01,命名及存放位置的批处理命令写入*.p02等等. 具体做法如下:

EXF文件处理:

print0.txt及*.p01内容根据原来程序头或注释内容的位置书写,所不同的是把原来的CUTPUT改成print?而已.用print? J "XXXXXX";形式。

*.P02的内容(供参考):

print2 j "@echo off";

print2 j "type print0.txt >>hu.txt|type *.p01 >>hu.txt " ; (将print0.txt及*.p01内容依次显示到hu.txt)

print2 j "type " part_name "." tp_name "." post_name " >>hu.txt " ; (将NC代码文件也显示到hu.txt)

print2 j "if not exist nc" part_name " mdnc" part_name " >nul"; (无指定文件夹就建立之)

print2 j "move/y hu.txt nc" part_name "" tp_name ".nc"; (移动hu.txt到指定文件夹并改名"路径程式名.NC",没有这一步,后续文件就可能重名)

print2 j "del " part_name "." tp_name "." post_name ; (删除原始NC代码文件)

CMD文件:

内容参考:

@echo off

ren *.p02 print2.bat

call print2

del print*.*&del *.p01

echo 程式处理完毕!

这样NC文件就按程序头-注释-NC代码排列了,当然也可以按注释-程序头-NC代码排列,改变一下*.P02文件中的位置即可!

图11

砖头2:数字顺序命名

为了区分加工程式先后次序问题,数字顺序命名也具有操作性,这可以用循环语句实现

EXF文件中print0.txt内容参考:

::注意!如果程式较多,可修改25值为更大。

print0 j "@echo off ";

print0 j "if not exist nc" part_name " mdnc" part_name " >nul " ;

print0 j "for /L %%a in (1,1,25) do if exist nc" part_name ;

print0 "%%a-" tp_name ".nc if exist " part_name "." tp_name "." post_name ;

print0 " move/y " part_name "." tp_name "." post_name " nc" part_name "%%a-" tp_name ".nc " ;

print0 j "for /L %%a in (1,1,25) do if not exist nc" part_name ;

print0 "%%a*.NC if exist " part_name "." tp_name "." post_name ;

print0 " move/y " part_name "." tp_name "." post_name " nc" part_name "%%a-" tp_name ".nc " ;

条件1:如果指定的文件夹中有"数字-路径程式名.NC"的文件与新命名的文件名称相同,就覆盖之。

例:假定指定的文件夹中也有1-OK.NC,新命名的文件也为1-OK.NC,那么就覆盖。若新命名的结果可能是

1-NO.NC,则转到条件2来判断!

条件2:如果指定的文件夹没有"数字*.NC"的文件,就移动NC文件并改名为"数字-路径程式名.NC"的文件。这里的"数字-路径程式名"是动态且同步判断的!

例:假定指定的文件夹中不存在1-*.NC,同时有需命名的NC文件,就命名为1-*.NC 如果存在,则继续判断有无2-*.NC、3-*.NC...没有则命名之.依次类推!

CMD文件内容参考:

@echo off

ren print0.txt print0.bat

del print*.*

echo 程式处理完毕!

题外话:数字顺序批量改名文件就是根据上面原理制作:(以批量改名*.nc文件为例)

@echo off

for /l %%a in (1,1,50) do (if not exist %%a.tmp if exist *.nc ren *.nc %%a.tmp)

ren *.tmp *.nc

echo 改名结束!

砖头3: 文件分割

我们有时希望一次性能把程式中所有的后处理搞定,虽然用SET_ON CUT_FILE也可以替我们分割文件,但对在同路径下分离不同的刀具,就有点困难了,这里介绍一种用标记来分割文件的方式:

在EXF文件的后续换刀区块及文件尾写入:

TOOL CHANGE:

*--先写程序尾内容

output j " M05 ";

output j " M30 ";

output j " % ";

*--输出分割标记

output j "CUT";

*--再写程序头内容

output j " % ";

output j " G90 G00 G17 G40 G54 ";

... ... ....

TOOL CHANGE: LAST:

同上

END OF TAPE:

... ... ...

output j "CUT";

print0.txt中的内容参考(作用:改NC文件名为hu.txt,便于CMD文件处理)

print0 j "@echo off" ;

print0 j "ren " part_name "." tp_name "." post_name " hu.txt " ;

*.P01中的内容参考(作用:处理分离后的文件,重新整理并移动到指点文件夹)

print1 j "@echo off" ;

print1 j "ren *.tmp ??-" tp_name ".nc " ;

print1 j "if not exist nc" part_name " >nul md nc" part_name " >nul" ;

print1 j "move/y *.nc nc" part_name " >nul " ;

CMD文件参考:关键在于文件处理与程序的分割命名,这里还要用到FOR语句...

::注意!如果程式较多,可修改25值为更大。

@echo off

ren print0.txt print0.bat&&ren *.p01 print1.bat

call print0

for /f "tokens=1,2 delims=," %%a in (hu.txt) do (if "%%a" neq "CUT" (echo %%a>>hu.nc)else for /l %%b in (1,1,25) do (if not exist %%b.tmp if exist hu.nc ren hu.nc %%b.tmp))

call print1

del print0.bat&del print00.txt&del print1.bat&del hu.txt echo 全部程式处理完毕! 改前两文件为批处理文件,呼print0改程式名为hu.txt,然后搜索hu.txt文件每行内容,如果不出现CUT标记,则将该内容定向到hu.nc文件中,一但出现,就将hu.nc改名为1-25中没有出现的"数字.tmp"文件!为避免无谓的空循环,后续循环语句中嵌套多重条件语句。处理完后呼叫print1进行改名并移动到指定文件夹。砖头4:提醒设置(这里需要启动信使服务) 1) 公差过大提醒(这种方法以前的文章有涉

及) BEGINNING OF PROC: IF_SET(PART_TOL _GT_ 0.05) PRINT? J "NET SEND %COMPUTERNAME% 工件

计算公差大于0.05 "; END_IF; 2) 刀具长度提示实际需要计算程式的起始到最深点距离(具体方法以前的文章有涉及),然后与刀具长度比较,大于刀长则提醒之。这里的刀长也需要约定,偶一般用5倍的刀径作为判断标准!其过程就不再列举了.... 砖头5: 程序单与NC代码同步输出有那么多的PRINT?文件够你折腾,如果你的系统够“牛”,你就继续玩下去吧.....偶就不再奉陪到底了!!

fluent学习笔记

fluent技术基础与应用实例 4.2.2 fluent数值模拟步骤简介 主要步骤: 1、根据实际问题选择2D或3Dfluent求解器从而进行数值模拟。 2、导入网格(File→Read→Case,然后选择有gambit导出的.msh文件) 3、检查网格(Grid→Check)。如果网格最小体积为负值,就要重新 进行网格划分。 4、选择计算模型。 5、确定流体物理性质(Define→Material)。 6、定义操作环境(Define→operating condition) 7、制定边界条件(Define→Boundary Conditions) 8、求解方法的设置及其控制。 9、流场初始化(Solve→Initialize) 10、迭代求解(Solve→Iterate) 11、检查结果。 12、保存结果,后处理等。 具体操作步骤: 1、fluent2d或3d求解器的选择。 2、网格的相关操作 (1)、读入网格文件 (2)、检查网格文件 文件读入后,一定要对网格进行检查。上述的操作可以得到网格信息,从中看出几何区域的大小。另外从minimum volume 可以知道最小网格的体积,若是它的值大于零,网格可以用于计算,否则就要重新划 分网格。 (3)、设置计算区域 在gambit中画出的图形是没有单位的,它是一个纯数量的模型。故 在进行实际计算的时候,要根据实际将模型放大或缩小。方法是改变fluent总求解器的单位。 (4)、显示网格。 Display→Grid 3、选择计算模型

(1)、基本求解器的定义 Define→Models→Solver Fluent中提供了三种求解方法: ·非耦合求解 segregated ·耦合隐式求解 coupled implicit ·耦合显示求解 coupled explicit 非耦合求解方法主要用于不可压缩流体或者压缩性不强的流体。 耦合求解方法用在高速可压缩流体 fluent默认设置是非耦合求解方法,但对于高速可压缩流动,有强的体积力(浮力或离心力)的流动,求解问题时网格要比较密集,建 议采用耦合隐式求解方法。耦合能量和动量方程,可以较快的得到收敛值。耦合隐式求解的短板:运行所需要的存比较大。若果必须要耦合求解而机器存不够用,可以考虑采用耦合显示求解方法。盖求解方法也耦合了动量,能量和组分方程,但是存却比隐式求解方法要小。 需要指出的是,非耦合求解器的一些模型在耦合求解器里并不一定都有。耦合求解器里没有的模型包括:多相流模型、混合分数/PDF燃烧模型、预混燃烧模型。污染物生成模型、相变模型、Rosseland辐射模型、确定质量流率的周期性流动模型和周期性换热模型。 %%%有点重复,但是可以看看加深理解 Fluent提供三种不同的求解方法;分离解、隐式耦合解、显示耦合解。分理解和耦合解的主要区别在于:连续方程、动量方程、能量方程和 组分方程解的步骤不同。 分离解按照顺序解,耦合解是同时解。两种解法都是最后解附加的标量方程。隐式解和显示解的区别在于线性耦合方程的方式不同。 Fluent默认使用分离求解器,但是对于高速可压流动,强体积力导致 的强烈耦合流动(流体流动耦合流体换热耦合流体的混合,三者相互耦合的过程—文档整理者注)(浮力或者旋转力),或者在非常精细的网格上的流动,需要考虑隐式解。这一解法耦合了流动和能量方程, 收敛很快。%%% (2)、其他求解器的选择 在实际问题中,除了要计算流场,有时还要计算温度场或者浓度场等,因此还需要其他的模型。主要的模型有: Multiphase(多相流动)viscous(层流或湍流)energy(是否考虑传热)species(反应及其传热相关) (3)操作环境的设置 Define→operation→condition

柴油机尾气后处理技术基础介绍

柴油机尾气后处理技术
基础开发室性能组
李兴民 2009.4

内容
尾气后处理技术简介 柴油机尾气的组成 后处理基础知识 典型后处理布置方案
DEUTZ (DALIAN) ENGINE CO.,LTD

尾气后处理技术简介
为什么要采用尾气后处理技术? 为了满足越来越苛刻的环保法 规要求,仅仅依靠发动机本体 的技术措施已经不能满足法规 的要求,专门针对发动机尾气 采用物理、化学方法进行净化 处理的方法叫做发动机尾气后 处理技术
DEUTZ (DALIAN) ENGINE CO.,LTD

排放法规
2 (8%)
cu rve
8 (9%) 10 (8%)
Torque
Fu ll l oa d
6 (5%)
4 (10%) 75% load
12 (5%)
5 (5%)
3 (10%) 50% lo ad
13 (5%)
7 (5%)
9 (10%)
25% load
11 (5%)
1 (15%) idle
250
A
B
C
Engine speed
100 Torque [%]
200
50
150
0
Engine speed [%]
100
-50
50
-100
0 0
Urban
600
Rural Time [sec]
-150 1200 Motorway 1800
DEUTZ (DALIAN) ENGINE CO.,LTD

国四发动机后处理故障检查修理方法

国四发动机后处理故障检查修理方法 一、凯龙后处理常见问题解答 1、如何判定SCR后处理正常工作 凯龙SCR系统是一个自动控制系统,当钥匙开关刚打开,后处理各元器件通电,无明显动作。当发动机启动后,泵先进行注液排空,泵上回液口会有液体流出。等注液完成之后会进入喷射准备状态,泵会持续吹气。直到排气温度大于系统的起喷温度,系统会根据发动机工况喷射一定量的尿素。 2、为什么柴油机熄火后不能马上切断总电源? 钥匙断电后,泵会吹扫30秒钟,将泵及管路中的剩余尿素吹扫干净,防止尿素结晶,同时将系统状态写入存储器。因此,请不要立刻切断整车总电源开关,应等待30秒钟以后再切断总电源开关。 3、尿素仪表液位显示长时间不下降 ①当排气管温度达不到系统的起喷温度时,根据系统的工作原理,将不会有尿素消耗,但压缩空气会通过喷嘴吹出。此现象多发生在秋冬季,由于环境温度的下降,导致排气管温度较低,因此产生尿素不消耗现象。此为正常现象,用户可在发动机启动后检查喷嘴是否有压缩空气吹出,若有则系统工作正常。 ②尿素罐内尿素加的过多,超过100%液位很多,则会导致尿素液位显示长时间处于100%不下降,需待尿素消耗低于100%液位时,液位显示才会根据消耗逐渐下降。 ③根据尿素罐液位传感器的工作原理,尿素液位的显示不是连续变化的,一般需要消耗5%左右,液位显示的值才会变动。 4、同款车辆尿素消耗不一致? ①行驶工况存在差异:不同车辆使用的工况及行驶的路线不同,导致发动机的排温不同,从而影响尿素消耗,导致同款车辆的尿素消耗有差异。 ②驾驶员驾驶习惯差异:不同的驾驶习惯会有所不同,有些习惯空挡滑行,此时尿素不消耗。因此导致整个行驶过程中,尿素消耗较少。有些习惯大油门加速,发动机工况较高,导致尿素消耗偏多。 由于以上原因产生的尿素消耗差异属正常现象。一般来说,对于国四柴油机,尿素消耗量大约相当于油耗的2-12%。

Fluent后处理(DOC)

第四章Fluent后处理 利用FLUENT 提供的图形工具可以很方便的观察CFD 求解结果,并得到满意的数据和图形,用来定性或者定量研究整个计算。本章将重点介绍如何使用这些工具来观察您的计算结果。 1 生成基本图形 在FLUENT中能够方便的生成网格图、等值线图、剖面图,速度矢量图和迹线图等图形来观察计算结果。下面将介绍如何产生这些图形。 一、生成网格图 生成网格或轮廓线视图的步骤 (1)打开网格显示面板 菜单:Display –〉Grid... 图4-1 网格显示对话框 (2)在表面列表中选取表面。点击表面列表下的Outline 按钮来选择所有“外”表面。如果所有的外表面都已经处于选中状态,单击该按钮将使所有外表面处于未选中的状态。点击表面列表下的Interior 按钮来选择所有“内”表面。同样,如果所有的内表面都已经处于选中状态,单击该按钮将使所有内表面处于未选中的状态。 (3)根据需要显示的内容,可以选择进行下列步骤: 1)显示所选表面的轮廓线,在图4-1所示的对话框中进行如下设置:在Options 项选择Edges,在Edge Type 中选择Outline。 2)显示网格线,在Options 选择Edges,在Edge Type 中选择ALL。 3)绘制一个网格填充图形,在Options 选择Faces。显示选中面的网格节点,在Options 选择Nodes。

(4)设置网格和轮廓线显示中的其它选项。 (5)单击Display 按钮,就可以在激活的图形窗口中绘制选定的网格和轮廓线。 二、绘制等值线和轮廓图 生成等值线和轮廓的步骤: 通过图4-2 所示的等值线对话框来生成等值线和轮廓。 菜单:Display –〉Contours... 图4-2 等值线对话框 生成等值线或轮廓的基本步骤如下: (1) 在Contours Of 下拉列表框中选择一个变量或函数作为绘制的对象。首先在上面的列表中选择相关分类;然后在下面的列表中选择相关变量。 (2) 在Surfaces 列表中选择待绘制等值线或轮廓的平面。对于2D情况,如果没有选取任何面,则会在整个求解对象上绘制等值线或轮廓。对于3D情况,至少需要选择一个表面。 (3) 在Levels 编辑框中指定轮廓或等值线的数目。最大数为100。 (4) 如果需要生成一个轮廓视图,请在Option 中选中Draw Profiles 选项。在轮廓选项对话框中(如图4-3),可以如下定义轮廓:

fluent中的小技巧

[转帖]等值线图、矢量图、流线图、云图、直方图和XY散点图 等值线是在所指定的表面上通过若干个点的连线,在这条线上的变量(如压力)为定值。在二维或三维空间上,将横坐标取为空间长度或时间历程,将纵坐标取为某一物理量,然后用光滑曲线获取面在坐标系内绘制出某一物理量沿空间或时间的变化情况。等值线图是在物理区域上由同一变量的多条等值线组成的图形,即用不同颜色的线条表示相等物理量。等值线图包含线条图形和云图两种,云图是使用渲染的方式,将流场某个截面上的物理量用连续变化的颜色块表示其分布。 用户可以确定要显示哪个变量的等值线,可确定显示哪个面上的值,还可以指定要显示的等值线的取值范围。 矢量图:矢量图是直接给出二维或三维空间里矢量(如速度)的方向和大小。速度矢量图是反映速度变化、旋涡、回流等的有效手段,是流场分析最常用的图谱之一。在默认情况下,矢量在每个网格单元的中心绘制,用箭头表示矢量的方向,用箭头的长度和颜色表示矢量的大小。 用户可以选择指定要显示哪个表面的速度矢量,可以决定显示哪种速度(绝对速度或相对速度),也可以决定根据什么变量(如温度值、湍动能等)的值来决定颜色。 流线图:是用不同颜色线条表示质点运动轨迹,将计算域内无质量粒子的流动情况可视化。用户可指定粒子从哪个表面上释放出来。 Fluent允许用户从解的结果、data文件、残差数据中提取数据,来生成直方图与XY散点图。并且允许用户虚拟地定义任何变量或函数。 直方图是由数据条所组成的图形。直方图的横坐标是所希望的解的量(如密度),纵坐标是单元总数的百分比。使用Plot/Histogram命令,打开Solution Histogram对话框,设置直方图的内容及坐标轴。 XY散点图是由一系列离散的数据构成的线或符号图表。可以根据当前流场的解创建XY散点图,也可以从外部数据文件中取数据来创建XY散点图。 如何将fluent计算出的图形导入到tecplot中? 在fluent菜单中 点击File-Export : 在File Type 列表中选中Tecplot; 在surface列表中选中所有部分; Function to Write列表中选中所需要的 然后单击Write 命名 单击OK;数据文件输出了。 然后双击Tecplot快捷方式打开。 选择File-LOad data file 打开文件导入即可。

MasterCAM X5后处理编辑

MasterCAM X5后处理编辑 更改IJK格式: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择圆弧选项——把 XY,XZ,YZ平面设置成(开始至中心的间距)。 更改行号输出: 打开X5 选择设置——机床器定义——选择要更改的后处理程序——选择NC输出——行 号一栏取消即可。 %号修改: 用记事本打开后处理MPFAN文件——查找Start of File and Toolchange Setup——在下方"%", e$——改成我们需要的就可以了,如不需要%号,可在本行最前方加一个#就可以去掉%号 了。 去掉程序中的空格: 用记事本打开后处理MPFAN文件——查找sav_spc = spaces$——可在本行最前方加一个# 就可以去掉空格了。 更改O0000(程序名): 用记事本打开后处理MPFAN文件——查找*progno$, sopen_prn, sprogname$, sclose_prn, e$——如果想删除O0000——就把开头的*progno$,这一段删除,

有些机台不认O0000可能认O0001我们只需更改第一句*progno$,更改成 "O0001",就可以 了 想把O0000和程序序名分开就可以把*progno$,更改为*progno$, e$这样就分 开了格式如下: O0000 (COR01) 去掉程序路径和时间信息: sopen_prn, "DATE=DD-MM-YY - ", date$, " TIME=HH:MM - ", time$, sclose_prn, e$ #Date and time output Ex. 12-02-05 15:52 sopen_prn, "MCX FILE - ", *smcpath$, *smcname$, *smcext$, sclose_prn, e$ sopen_prn, "NC FILE - ", *spathnc$, *snamenc$, *sextnc$, sclose_prn, e$ sopen_prn, "MATERIAL - ", *stck_matl$, sclose_prn, e$ spaces$ = sav_spc 这些段落全部开头加# 去掉换刀程序: 用记事本打开后处理MPFAN文件——查找pbld, n$, *t$, sm06, e$改为#pbld, n$, *t$, sm06, e$ 删除高度补偿: 用记事本打开后处理MPFAN文件——查找pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$改为#pbld, n$, sg43, *tlngno$, pfzout, scoolant, pstagetool, e$如果要保留安全高

MasterCAM 后置处理设置方法详细说明

MasterCAM X版本后置处理及其修改方法详细说明mastercam系统配置的是适应单一类型控制系统的通用后置处理,用户根据数控 机床和数控系统的具体情况,可以对其数据库进行修改和编译,定制出适应某一数 控机床的专用后置处理程序。 mastercam系统默认发那科后置处理文件的扩展名为pst,称为pst文件。(一般该文件在共享文档\shared mcamx5\MILL\Posts\MPFAN.pst)根据本人多年使用经验,初次安装后后处理有以下几点要修改。 (1)默认后处理去掉第四轴A0的输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索Rotary Axis Settings,找到rot_on_x:1#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 改成rot_on_x:0#SET_BY_MD Default Rotary Axis Orientation #0=Off,1=About X,2=About Y,3=About Z 就可以关闭四轴,没有A0输出。 (2)去掉程序开头的注释输出 用记事本或任意文本编辑器打开MPFAN.pst,然后搜索"%",找到 "%",e$ sav_spc=spaces$ spaces$=0 中间略掉 spaces$=sav_spc 改成 "%",e$ sav_spc=spaces$ spaces$=0 *progno$,sopen_prn,sprogname$,sclose_prn,e$ #sopen_prn,"PROGRAM NAME-",sprogname$,sclose_prn,e$ #sopen_prn,"DATE=DD-MM-YY-",date$,"TIME=HH:MM-",time$, sclose_prn,e$#Date and time output Ex.12-02-0515:52 #sopen_prn,"DATE-",month$,"-",day$,"-",year$,sclose_prn, e$#Date output as month,day,year-Ex.02-12-05 #sopen_prn,"DATE-",*smonth,"",day$,"",*year2,sclose_prn, e$#Date output as month,day,year-Ex.Feb.122005 #sopen_prn,"TIME-",time$,sclose_prn,e$#24hour time output-Ex.15:52 #sopen_prn,"TIME-",ptime sclose_prn,e$#12hour time output 3:52PM spathnc$=ucase(spathnc$) smcname$=ucase(smcname$) stck_matl$=ucase(stck_matl$)

HW:柴油机后处理技术概述

当下常用柴油机后处理技术: 1SCR(Selective Catalytic Reduction选择性催化还原技术) 1.1NH3- SCR 1.1.1反应原理 使用尿素水溶液作为氨气来源,这种溶液尿素质量分数为32.5%,符合DIN V70070国际标准,市 场上也称之为“AdBlue”溶液。当尿素水溶液被喷射到排气管中后,与高温的废气混合,尿素水溶 液经过气化、热解和水解等一系列复杂的化学反应生成氨气和二氧化碳,简单可以分为两步。 第一步: 热解反应 CO(NH2)2→加热→NH3+ HNCO 第二步: 水解反应 HNCO+H2O→催化剂→NH3+CO2 尿素分解释放出的氨气与废气中的NO x发生化学反应,具体反应方程式如下 4NH3+4NO+O2→4N2+6H2O 4NH3+2NO+2NO2→4N2+6H2O 8NH3+6NO2→7N2+12H2O 1.1.2控制方法 尿素SCR系统主要由后处理控制单元( DCU)、尿素泵( SM)、喷嘴( DM)、尿素罐、SCR 催化器及 相应液力管路和电气线束构成,如下图所示。 DCU为主控制单元,处理传感器信号、计算尿素喷射量并对各种执行器进行控制。SCR 系统开始 工作时,DCU首先确认系统是否处于正常状态,然后发出指令使尿素泵开始加压,压力使尿素水溶 液开始流动。控制单元通过CAN总线与发动机的ECU进行通讯,获得发动机的运行参数,再加上 催化器上游温度信号,计算出尿素喷射量,驱动喷嘴将适量的尿素水溶液喷射到排气管内,按反应 机理还原尾气中的NO x,多余的尿素被送回到尿素罐内。 1.1.3存在的问题 1.1.3.1低温工况下NO x转化率低 尿素在废气温度为160℃左右时,开始发生热解反应产生异氰酸(HNCO)和一部分氨气。由于尿 素热解需要吸收大量的热量,当排气温度较低时热解速度较慢。有关研究表明,温度为330℃时 仅有20%左右的尿素可以发生热解,而400℃时有50%的尿素发生热解,剩下的尿素只能到达

发动机排气后处理技术

一、排气后处理的原因与意义 随着我国工业快速崛起与经济迅猛发展,我国人民的生活水平不断提高,对于生活品质的要求也越来越高,汽车作为一种非常便捷的交通工具也越来越普及,汽车工业也得到了飞速的发展。 然而,汽车的普及与汽车工业的快速发展给人们生活带来便利的同时也产生了能源与环境问题。近年来,节能、能源与环境相容问题成为备受关注的重大科学问题。而汽车发动机作为汽车动力的问题的根本所在,因此改善汽车性能的关键在于开发汽车发动机节能减排技术。 因而,随着对内燃机低排放的要求不断严格,能兼顾动力性、经济性、排放性的内燃机越来越复杂,成本急剧上升。因此,世界各国都先后开发排气后处理技术,在不影响或者少影响内燃机其他性能的同时,降低最终向大气环境的排放。 如何解决好发展过程中的能源与环境问题成为当前汽车工业面临的两项难题。一直以来汽车发动机以石油作为主要的燃料来源,但是,石油资源具有不可再生性,连续开采已使得石油资源日益枯竭。尾气排放带来的环境污染问题也是汽车工业急需解决的问题,制定并实施汽车尾气排放标准是一项较为有效的控制措施。 在能源与环保的双重压力下,我国汽车发动机行业引进了许多先进的技术。就汽车发动机而言,汽车发动机排气后处理技术等先后应用到实际的生产生活中,其技术可以有效改善汽车发动机的尾气的排放与污染,降低废气污染的排放。 进入二十一世纪,世界汽车发动机技术的研究重点与目标趋向于节能和二氧化碳减排取代排放控制的方面上。因此发动机排气后处理技术正处于上升趋势,而且国际上发动机排气后处理技术近年来已经有了很大的提高,其基础理论与机制有了巨大的进步,因此研制、设计、和试验汽车发动机系统的技术得到了很大的革新。 二、排气后处理技术的原理与分类 在讨论汽车发动机排气后处理技术之前,我们应该首先讨论一下汽车发动机所排放的尾气与其对于人体与社会的危害。 首先汽车发动机的尾气的主要危害物有一氧化碳、碳氢化合物与氮氧化合物等众多有毒有害的气体。它们产生的原因多是有由于燃油的不充分的燃烧所引起的,并且在高温的情况下,更容易产生更多的上述的有害气体,这些有害气体会对环境造成极大的污染,对人体造成呼吸系统、血液、神经系统的人体重要的系统形成极大的损伤。 而发动机的排气后处理技术就是用来减缓与解决上述的问题的。按目前主要的方法,汽车发动机排气后处理技术按照汽车发动机的燃油的种类,可以分为汽油机排气后处理技术与柴油机排气后处理技术。 下面首先介绍汽油机排气后处理技术,汽油机排气后处理技术主要包括热反应器、催化转化器、HC捕集器,其中催化转化器又可以分为氧化性、还原性、氧化还原(三效)型以及稀燃型,目前单纯还原型的催化剂已很少用。下面对汽油机排气后处理技术的各个部分进行较为详细的介绍: 首先是热反应器:处理对象为CO和HC。随着三效催化器的普及,20世纪90年代开始生产的新车已不采用热反应器。由于摩托车的排气后处理装置要求

对FANUC 0i的MasterCAM后处理修改

对FANUC 0i的MasterCAM后处理修改 2010-07-16 16:17 FANUC 0i MA系统配MasterCAM软件仍然是当今数控机床加工的主流搭配,因此本文对广大数控机床的编程与操作人员来讲,很有参考价值。文中所表述的思路、方法与程序都是作者在长期的工作实践中总结出来的,我们也欢迎广大读者在欣赏本文的同时,将你们有实用价值的技巧与心得写出来与大家共分享。 我们在利用MasterCAM为FANUC 0iMA系统做计算机编程的过程中发现,应用软件默认的FANUC后处理程序(Mpfan.pst)输出的刀路文件,需要大量的手工修改才能满足实际加工的需要。为了使CAM软件得到进一步推广应用,我们对MasterCAM9.0后置处理程序进行了编辑,使之应用得到了成功,大大提高了编程效率和程序质量,缩短了产品的制造周期,提高了产品的市场竞争力。『::好就好::中国权威模具网』 1. MasterCAM生成的后处理程序 在图1所示中,主要完成:(1)φ12立铣刀铣外形;(2)φ2中心钻打中心孔;(3)φ10钻头钻2-φ10孔的加工。 采用MasterCAM软件完成该零件的数控加工仿真后,应用后处理程序Mpfan.pst,生成的NC加工代码如下。 % O0000 (PROGRAM NAME-EXAMPLE1) (DATE=DD-MM-YY-11-07-04 TIME=HH:MM-08:41) N100G21 N102G0G17G40G49G80G90

(TOOL-1DIA.OFF.-1LEN.-1DIA.-12.) N104T1M6(φ12立铣刀铣外形) N106G0G90X-62.Y10.A0.S1000M3 N108G43H1Z50.M8 N110Z10. N112G1Z-10.F1000. N114G41D1X-50.F100. N116Y60. N118X-20. N120Y51. N122G3X-14.Y45.R6. N124G1X14. N126G3X20.Y51.R6. N128G1Y60. N130X50. N132Y10. N134X40.Y0. N136X-40. N138X-49.661Y9.661 N140G40X-58.146Y1.175 N142G0Z50. N144M5 N146G91G28Z0.M9 N148G28X0.Y0.A0. N150M01 (TOOL-2DIA.OFF.-2LEN.-2DIA.-2.) N152T2M6(φ2中心钻) N154G0G90G55X15.Y20.A0.S1500M3 N156G43H2Z3.M8 N158G1Z-3.F50. N160G0Z3. N162X65. N164G1Z-3. N166G0Z3. N168M5 N170G91G28Z0.M9 N172G28X0.Y0.A0. N174M01 (TOOL-3DIA.OFF.-3LEN.-3DIA.-10.) N176T3M6(φ10钻头钻2-φ10孔) N178G0G90G54X-25.Y20.A0.S1000M3

fluent图形后处理技巧

在图的图的标题栏上右键,先在page setup中选择color,然后选copy to clipboard 就可以了,不用截图。 你可以这样子,没必要colormap一定非得在左边,是吧?如果你的模型是扁长型的话,你可以这样子:在fluent中display>options ,在option panel中的右下角,在colormap alignment 中选bottom。然后在显示的图形界面中将图放大,并将其拖到靠近colormap的地方,再继续我之前帖子中的操作就可以了。 数据可以在显示图形时调整好,然后不要关闭调整好的窗口,连续导入不同的数据进行显示就可以了..或者可以采用tecplot来进行后处理,图片会漂亮些.... File-hardcopy-调整一下即可 不用改,复制到word里背景直接就变成白色了 生成图片使用file下的hardcopy命令,有一个选项是背景色翻转,你虽然看到的是黑色,输出图片背景是白色 的。还有一种方式就是显示也希望是白色背景,使用命令display>set>colors>background 把gambit的背景变成白色 在edit的default的graphic的windows-background-color中把black修改成white,然后modify f luent中默认的图形背景颜色为黑色,这对于要发表的图形很不利,因此很多人希望背景为白色,那么可以使用如下命令:Lf ile-》hardcopy设置格式选择为jpg,color选项之后save那么图形就是希望的白色背景。我发现似乎转化成jpg之后没有运行时候显示的清晰,略微模糊一些,大家可以实验其他设置选择,以求得最好的效果zV>3}D另外可以在控制台命令行输入display/set/color回车之后就显示哪些可以设置的选择,敲进比如background之后就可以改变了,提醒一下单纯改变背景为黑色会使得legnd变成一个梯子,其数字会消失。you should change foreground from white to black .this can be done at he same dislay/set/colors> as the background.p<> 好怎么去掉FLUENT图形显示的黑色背景,一般都建议用抓图后反色背景。另外还有数据显示范围比较小,数据显示相同,色轴没有差别的情况。 本人通过摸索,发现这两个问题可以直接在FLUENT里设置。

MASTERCAM后处理修改方法必看

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是G54。部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如MP_EZ.PST)可正常输出G54指令。由于FANUC.PST后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择Mpfan.PST文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, e 插入G54指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, "G54",e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90 修改后变为: N102G0G17G40G49G80G90G54 查找当前行的上一行: pbld, n, *smetric, e 将其整行删除,或加上“#”成为注释行:

MASTERCAM后处理修改方法必看

M A S T E R C A M后处理修改方法必看 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

进行模具加工时,需从G54~G59的工件坐标系指令中指定一个,最常用的是 G54。 部分控制器使用G92指令确定工件坐标系。对刀时需定义工件坐标原点,原点的机械坐标值保存在CNC控制器的G54~G59指令参数中。CNC控制器执行G54~ G59指令时,调出相应的参数用于工件加工。采用系统缺省的后处理文件时,相关参数设置正确的情况下可输出G55~G59指令,但无法实现G54指令的自动输出。 1、增加G54指令(方法一): 采用其他后处理文件(如)可正常输出G54指令。由于后处理文件广泛采用,这里仍以此文件为例进行所有修改。其他后处理文件内容有所不同,修改时根据实际情况调整。 选择【File】>【Edit】>【PST】命令,系统弹出读文件窗口,选择文件,系统弹出如下图所示编辑器。

单击"查找"按钮,系统弹出查找对话框,输入“G49”,如下图所示: 单击FIND NEXT按钮,查找结果所在行为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, e 插入G54指令到当前行,将其修改为: pbld, n, *sgcode, *sgplane, "G40", "G49", "G80", *sgabsinc, "G54",e 输出的NC文件修改前对应位置指令为: N102G0G17G40G49G80G90

修改后变为: N102G0G17G40G49G80G90G54 查找当前行的上一行: pbld, n, *smetric, e 将其整行删除,或加上“#”成为注释行: # pbld, n, *smetric, e 修改后G21指令不再出现,某些控制器可不用此指令。注意修改时保持格式一致。G21指令为选择公制单位输入,对应的英制单位输入指令为G20。 2、增加G54指令(方法二):? 单击"查找"按钮,系统弹出查找对话框,输入“force_wcs”,单击"FIND NEXT" 按钮,查找结果所在行为:? force_wcs : no #Force WCS output at every toolchange? 将no改为yes,修改结果为:? force_wcs : yes #Force WCS output at every toolchange? 输出的NC文件修改前对应位置指令为:? 修改后变为:? 前一方法为强制输出固定指令代码,如需使用G55~G59指令时,有所不便。多刀路同时输出时,只在整个程序中出现一次G54指令。后一方法同其他后处理文件产生G54指令的原理相同,多刀路同时输出时,每次换刀都会出现G54指令,也可根据参数自动转换成G55~G59指令。? 输出三轴加工中心程序的FANUC后处理文件为,输出4轴加工中心程序的三菱控制器后处理文件为。? ⑵后处理文件针对的是4轴加工中心,而目前使用量最大的是3轴加工中心,多出了第4轴数据“A0.”。?

汽油机后处理净化技术之

课程小结 课程名称:汽车排放及控制技术 学生姓名:陈圆磊学号:1221402014 专业:车辆工程_______________ 所在学院:龙蟠学院_______________ 2013 年 12 月 15 日

汽油机后处理净化技术之———三效催化转化技术 本课程小结内容:本人主要根据现有教材并通过校内网络资源查得的文献,介绍了现代汽车排放及控制技术众多技术之一的汽油机后处理净化技术,用于汽油机后处理净化装置众多之一的三效催化转化器技术。着重介绍:1、改善汽油机后处理净化技术的意义;2、三效催化转化(器)技术的应用及其实际价值,3、三效催化转化器基本结构和工作原理。 1、改善机内净化技术的意义 近些年来,随着世界经济的发展中心正呈现出多极化的趋势————中国已逐渐成为对于世界经济发展不可小觑的力量。比如在汽车制造业,连续数年中国的汽车销量在世界位居群首,然而随之带来的环境污染问题也成为我国政府要重视和加强管理的问题,比如今年全国各地区都出现了不同程度的雾霾天气,也是迄今50多年来出现的最严重和持续时间最长的污染,给人们的正常工作、生活、出行带来了极大不便。导致这种现象的主要原因是空气中含有大量颗粒物和其他排放物质。其中汽车排放的污染物比重最大。因此改善汽车排放对于国家生产发展、安定,国民健康与安全有重大意义。 众所周知,机内净化技术是以改善发动机燃烧过程为主要内容,对降低排气污染起到了较大作用,但其效果有限,且给汽车的动力性和经济性带来不同程度的不利影响。随着对发动机排放要求的日趋严格,改善发动机工作过程的难度越来越大,能统筹兼顾动力性、经济性和排放性能的发动机将越来越复杂,成本也急剧上升。因此,世界各国都先后开发废气后处理净化技术,在不影响或少影响发动机其它性能的同时,在排气系统中安装各种净化装置,采用物理的和化学的方法降低排气中的污染物最终向大气环境的排放。 2、三效催化转化技术的应用和实际价值

mastercam后处理修改

MasterCAM 后处理修改特殊技巧一.1 MasterCAM 后处理修改特殊技巧: Scrollex EDIT 另外:输出字母的大小写修改方式不知如何更改。注:若要修改下述相应功能则直接查找红色下划线语句即可。 ①、 MasterCAM 后处理输出文件格式设置 sextnc MIN #NC Program Extension for Okuma 上述语句表示输出格式为 MIN 格式。若没有可以新建。“.Trun”格式表示车床专用。需要的格式修改 MIN 即可,如MPF,NC,H,TXT 等这样就不必每次为输出什么样的格式费神了。我就经常用 MPF 和NC、H 几种格式,为每种格式编制一个后处理或通用一个均比较方便。 ②、“Arcoutput”控制语句控制圆弧输出格式,设置值若为“0”表示输出为“IJK” 格式;若设置值为“1”则输出圆弧格式为“R”。 “ arctype”控制输出圆弧类型,若为“1”则表示由圆心确定;若为“2”则表示由起点(Start)指向圆心(Center), 2=St-Ctr;若为“3”表示由圆心指向起点, 3=Ctr-St;若为“4”表示非增量。 arcoutput : 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180 arctype : 1 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St , 4=unsigned inc. ③、“Omitseq”控制语句控制序列号输出,若设置值为“Yes”则忽略序列号,不 输出,若设置值为“No”则不忽略即输出序列号。 ④、“Spaces”控制语句控制空格输出,若设置值为“0”表示不输出空格即紧凑输出,若设置值为“1”表示输出空格即在每个“X,Y,R,F”等控制语句前加一空格。 ⑤、若要查找每一条输出语句的作用及位置则在输出语句后加上标语句即可。一般输出语句的格式为: pbld, n, "M6", e(其中pbld 为输出开头,n 为序列号,“”引号内为直接输出字符,e 为结束语句。 下面语句为程序号输出格式: fmt O 4 progno #Program number #fmt ":" 4 progno #Program number #表示注释语句的开始,fmt 是格式定义,O 表示输出程序开头为 O,若开头为 PR 或 P 时只需要改 O 为需要的程序开头即可。这里的 4 表示程序号长度为 4 个字节。其它用 fmt 格式定义的语句也一样,可用此法修改想改的部分即可得到需要的输出结果。比如要求输出的G01变为L格式(即从ISO格式转化为Heidenhain 格式)数据的读入: *progno:从 MasterCAM 图形中读入程序号 scomm:从 MasterCAM 图形中读入注释文本 *t:从MasterCAM 图形中读入刀具号 *tnote, *toffnote, *tlngnote, *tldia:从 MasterCAM 图形中读入刀具直径 date:从 MasterCAM 图形中读入日期

国Ⅳ发动机系族、OBD系族、后处理系族

国Ⅳ发动机系族、OBD系族、后处理系族 及源机选型申报资料 一、给中机中心申请报告 企业申报国Ⅳ发动机系族技术说明 A.发动机系族名称 B.发动机系族及其污染控制装置耐久性系族 C.OBD-发动机系族名称 D.污染控制装置-催化转化器型号及生产厂 E.OBD 型号及生产厂

一、国Ⅳ发动机申报材料 1.国Ⅳ发动机采用不同技术路线及关键部件的配置说明(包括汽油机、 燃气发动机)。 2.发动机系族、OBD-发动机系族、源机选型、后处理系统系族划分。 2.1发动机系族公有参数描述,依据标准GB17691-2005附件AB发动机系族的基本特点、汽车产品《备案参数表》(2010版)填写发动机系族的公有参数表,见表一。 2.2 发动机系族: 依据GB17691-2005、GB14762-2008第9.1款、ISO 16185和汽车产品同一型式技术条件(2010版第5.5、5.7条),填写发动机系族型号清单和规格,见表二、表三。 2.3 发动机系族源机选型: 依据GB17691-2005、GB14762-2008第9.2款和汽车产品同一型式(2010版5.77.2条)技术条件。 2.4OBD-发动机系族: 依据HJ 437-2008第8条确定OBD-发动机系族和汽车产品同一型式(2010版5.79条)技术条件。 2.5后处理系统系族: 依照HJ 438-2008附录A的A.2.2规定的后处理系统系族,并对后处理系族划分确定系族原机。 3.提供资料要求(发动机照片、图纸) 3.1源机发动机的(左、右、前) 照片及CAD图,用CAD图标注尺寸。 3.2发动机燃烧室、活塞顶部,用CAD图标注尺寸。 3.3催化转化器的尺寸、形状,用CAD图标注尺寸。

CFD 的Fluent后处理tecplot软件动画步骤方法

创〗tecplot 中动画制作方法。 [精华] 于 2005-11-09 09:41 个时间序列的数据读入以后利用tecplot 中的tool/Animate/选项可以创建动画。可以根据不同的需要选择contours 、zones 。在应用中一般选择zones 多一点。 主题相关图片如下: dreamoon 发帖: 13 于 2005-11-09 09:46 在zones 里有如下弹出窗口,选择起始zone 和结束zone ,然后输出即可。 此主题相关图片如下:

积分: 0 雪币: 13 dreamoon 发帖: 13 积分: 0 雪币: 13 于 2005-11-09 09:54 或者另外有一种更为方便的方法,该法可以不用一次将所有的数据文件读入,对内存和机子速度较慢的用户更实用: File/Export ,选择avi ,然后打开要输出的contour ,进行如图的操作: 此主题相关图片如下:

dreamoon 编辑于2005-11-09 10:01 dreamoon 发帖: 13 积分: 0 雪币: 13 于2005-11-09 09:56 然后: 此主题相关图片如下:

dreamoon 发帖: 13 积分: 0 雪币: 13 于2005-11-09 09:58 最后选择Finish Animation就可以了。 此主题相关图片如下:

东岸线 发帖: 361 积分: 0 雪币: 310 于2005-11-09 18:58 好 有机会试试

flyboys 发帖: 35 积分: 0 雪币: 35 于2005-11-10 22:02 楼主的数据源是来自 fluent计算获得的数据吧!我们没有用过fluent,根本不知道数据格式是什么?能否把你所作例子的数据格式呢?谢谢 dreamoon 发帖: 13 积分: 0 雪币: 13 于2005-11-11 07:32 我给的例子是一般性的数据;对于fluent 来说就是利用软件的自动编号过程将计算不同时间(或迭代步)的结果保存下来然后分别导入Tecplot就可以了,具体的方法可以参考fluent的帮助手册中关于文件的读写 的相关部分。 wilim 飞燕 发帖: 6 积分: 0 雪币: 6 于2005-11-16 20:49 直接在fluent里面做动画不就可以了,为何还要导出到tecplot中呢,不理解 dreamoon于2005-11-18 00:06

相关主题
文本预览
相关文档 最新文档