Cimatron 后置处理技术(4)

2019-04-02 19:15

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

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

INTERACTION (USER_1) \ 100 ;

INTERACTION (TOOL) \0 ;

INTERACTION (USER_1) \00 ;

INTERACTION (CHARACTER) \\

INTERACTION (SEQUENCING) \0 ;

INTERACTION (SEQUENCING) \0 ;

INTERACTION (CHARACTER) \\

INTERACTION (USER_1) \00 ;

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

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

INTERACTION (USER_1) \0 ;

其中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) \主程序序号\INTERACTION (TOOL) \刀具补偿\INTERACTION (USER_1) \换刀子程序\INTERACTION (CHARACTER) \是否输出行号\\

INTERACTION (SEQUENCING) \行号起始值\

INTERACTION (SEQUENCING) \行号增量值\

INTERACTION (CHARACTER) \是否输出子程序\\

INTERACTION (USER_1) \子程序号\

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

此主题相关图片如下:

练习二

增加一个操作项。

INTERACTION (CHARACTER) \编程员\张\然后在BEGINNING OF TAPE:段中加入相应的内容,例如加在%号前面 *-----output

OUTPUT $ \编程员:\

IF_SET (FlagSeq _EQ_ YES )

OUTPUT \ ELSE

OUTPUT \ END_IF ;

在程序中,\\J是指输出一个换行符,如果不加换行符,那么后面的内就会直接

根上来,导致一行可能不被机床识别的代码。

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

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

NEW_LINE_IS $ ;

IF_SET (FlagSeq _EQ_ NO) OUTPUT \\J ; ELSE

IF_SET (FlagSub _EQ_ NO) OUTPUT \\J \ Seq = Seq + SeqIncr ; ELSE

OUTPUT \\J \

SubSeq = SubSeq + SeqIncr ; END_IF ; END_IF ;

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

INTERACTION (CHARACTER) \是否输出子程序\\

后的\改成\就可以了。

在您的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_ \ IF_SET (NumYN _EQ_ \

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

满足条件执行的语句; ELSE

不满足条件执行的语句; END_IF;

IF_SET (Sub _EQ_ \ IF_SET (Sub _EQ_ \ 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 ;


Cimatron 后置处理技术(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江大学2015年硕士招生目录(专业学位)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: