找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

天使笔记:PROE/PROGRAM程序设计全解析

[复制链接]
11
发表于 2005-10-27 17:04:58 | 只看该作者
第八个,Modify
它的词义是“修改”,功能同其名,就是用来修改Add……End Add语句中的那些特征参数。前面说过,直接在Add……End Add语句中修改特征参数是无效的,但有时候,我们真想在程序里去修改,这时就可用Modify语句来实现了。Modify语句必须嵌在Add……End Add语句中使用。Modify语句语法如下:
Modify Valuename1=Value1
Modify Valuename2=Value2
……

示例:
Add Feather xxxx
……
D0=30
D2=25.5
Modify d0=50
Modify d2=35
End Add

此例:特征里有两个尺寸,一个d0=30,一个d2=25.5,用Modify语句将D0修改为50,将D2修改为35。(为了显示Modify语句的常用位置,上面示例把Add……End Add语句的主要结构也写出来了)
Modify语句是一次性的,再生之后,模型按它所修改的数值改变,而程序里的Modify语句则消失了。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:19 编辑 ]
12
发表于 2005-10-27 17:05:05 | 只看该作者
第九个,Interact
Interact的词义就是“互动”“交互”,其作用就是在程序里的适当位置将系统控制权交给操作者,让操作者进行一定的操作后再将系统控制权还给系统----实现“交互式设计”。
在程序中使用Interact语句,当程序运行时遇到Interact,程序就暂停运行,此时模型树处于插入状态,用户(操作者)可以自己向part里增加特征(或向组件里增加组件级特征或元件),一个特征(或元件)增加完后,系统会提示是否继续增加,选否的话交回系统控制权,程序继续运行直到结束。
Interact语句在程序里的地位与Add……End Add、Execute……End Execute、Massprop……End Massprop、Input……End Input、Relations……End Relations语句同级,它不可以放在这几个语段内部。它可以与IF……End If语句联用。
示例:
Add Feather xxxx
……
End Add
Interact
Add Feather xxxx
……
End Add
Interact语句是一次性的,再生后,Interact语句消失,新加特征(元件)的Add……End Add语句放在原来的Interact语句的位置上。如果暂停时直接选“Done(完成)”结束了增加动作的话,程序里的Interact语句也消失了,但不增加任何内容。
当Interact语句用在part的程序里时,只要再生就会出现交互(即Interact语句起作用)。
当Interact语句用在组件的程序里时,有些兄弟的PROE里可能就要在再生时至少修改一个输入变量(Input……End Input段里的变量)的值才能触发Interact,如果再生时用“当前值”或选取了变量但输入时都用回车跳过了,Interact将不起作用。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:20 编辑 ]
13
发表于 2005-10-27 17:05:13 | 只看该作者
第十个,Choose

Choose就是“选择”。这个用于UDF(用户自定义特征)。在建模的时候,如果使用了UDF,在模型树里,UDF就会显示为一个组,使用“特征”-“组”“替换”,可以将这个UDF组替换为另一个UDF组或同一个UDF里的另一个族表实例。替换后,被替换的组作为不活动特征仍保留在part里,只不过在模型树上看不到它了,但在程序里,可以用choose语句把它变成活动特征(而Choose前的那个组则变成不活动特征了)。
如果UDF组有子特征的话,被替换后,其子特征也一起变成不活动特征,用choose把它换回来后,它的子特征也同时变成活动特征。
同Interact语句一样,Choose语句在程序里的地位与Add……End Add、Execute……End Execute、Massprop……End Massprop、Input……End Input、Relations……End Relations语句同级,它不可以放在这几个语段内部。
同Interact语句一样,Choose语句也是一次性的,再生之后,Choose语句消失。

Choose语句语法如下:
Choose(Valuename)
Valuename:一个字符串型变量。

使用Choose 语句要先在Input……End Input语句中加一个字符串型变量。在加入UDF组后,做一次替换,再编辑程序,在组标记的Add……End Add语句段内就会多了一句:“组用特征标识(名称)替换: 1127(RRR)”,找到这一句(如果没能成功替换,则不会有这一句),记下这个数字,这个数字就是要被替换出来的那个组的特征ID。然后在这个组标记的Add……End Add语句段后增加一个Choose语句,Choose的变量就是先前建的那个字符串变量。再生时,将此变量的值修改为“1127”(刚才查到的ID)。再生后模型里的UDF组就被替换了。

示例:
Input
……
Gp String
End Input
……
Add Feature xxxx
……
组用特征标识(名称)替换: 1127(RRR)
组是由UDF UUU驱动的
END ADD
Choose(GP)
(Input段中设置变量组标记Add段中查找ID组标记段后用Choose(变量名))

10月30日增:
当Choose语句放在Massprop...End Massprop语句前时,Choose语句执行后不消失----变成固定语句。如此,如果模型中有多个UDF需要根据情况选择,则可在Massprop之前连着放几个Choose语句。而如果是一次性的操作,则可使用Choose语句的瞬时性。
--------------感谢nidelong兄弟提出。


[ 本帖最后由 袖珍天使 于 2005-10-30 09:12 编辑 ]
14
发表于 2005-10-27 17:05:23 | 只看该作者
第十一个,Massprop……End Massprop
这个语句用于再生时计算质量属性。计算后系统里的质量属性相关的参数变成最新值,可在其它地方直接引用而不必在引用前再进行一次质量属性计算。它也是一个语句段,其语法如下:
Massprop
Part partname1
Part partname2
……
Assembly asmname1
Assembly asmnmae2
……
End Massprop
(各零件/组件名可不用带扩展名)
在Massprop语句段中,可嵌入IF……End If语句。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:22 编辑 ]
15
发表于 2005-10-27 17:05:33 | 只看该作者
好,前面把十一个词的意思都讲完了。再看一下这些词的分类与组合规则
根据它们在程序中的保留时间,可分为固定语句和瞬时语句。固定语句一旦写到程序里,除非再做编辑人为删除它,它一直存在,每次再生都起作用。瞬时语句是一次性的,再生之后,就从程序里消失了。瞬时语句有Interact和Modify共二个。Choose语句则比较特殊,瞬时性与固定性兼具,当它放在Massprop......End Massprop语句段之前时,它是固定语句,当它放在Add......End Add语句之前时,它是瞬时语句。其它的都是固定语句。
根据它们在程序中的地位,可把这十一个词分成三种:段语句、独立语句、辅助语句。
段语句用来构成一个程序块,一个块实现一个独立的功能,如输入变量、设置关系、增加一个特征(元件)、向一个元件传递参数等等。段语句包括:Input……End Input 、Relations……End Relations、Add……End Add、Execute……End Execute、Massprop……End Massprop共五个。
独立语句,一个语句实现一个独立的功能,包括:Interact、Choose,共2个。
辅助语句不能单独使用,必须与其它语句一起使用,包括:If……End If、Lookup_inst 、Suppressed、Modify,共4个。
独立语句与段语句是平等的,不能嵌入段语句中使用,但辅助语句可以嵌入段语句中使用。
IF语句可嵌入所有的段语句中使用,也可将段语句(仅Add和Execute)和独立语句嵌入IF语句中使用。Lookup_inst、Suppressed、Modify必须嵌入Add语句中使用。
Interact可放在任何可放Add语句的地方。Choose语句应紧跟在组标记的Add语句之后。
在程序中,首先是Part及版本信息。接下来是程序的内容,以Input打头,Relations继后,Massprop结尾,在Relations与Massprop中间,是其它各种语句(段)的按上述规则的组合。

(上述Choose语句的双重性,10月30日增,感谢nidelong兄弟提出)

[ 本帖最后由 袖珍天使 于 2005-10-30 09:18 编辑 ]
16
发表于 2005-10-27 17:05:45 | 只看该作者
实际上,还有一个注释语句也应该算一个语句。但它不影响模型变化。故前面未将其列入基本词汇中。注释语句以斜杠加星号打头,即以“/*”打头,后面跟注释内容。
注释语句仅用在Relations……End Relations语句和Add Feather……End Add语句中。在Relations语句中,它可在任何位置,在Add Feather……End Add语句中,它必须紧跟在第一行Add Feather之后作为第二行。
注释语句加入的内容,不直接影响模型,也不会在模型中显示。在编辑关系的编辑器中,可以看到加在Relations语句中的注释,在特征信息中可以看到加在Add Feather……End Add语句中的注释。
注释语句不是一次性的,再生之后继续存在于程序中。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:24 编辑 ]
17
发表于 2005-10-27 17:05:52 | 只看该作者
再看一下设计来源
第一次从“编辑程序”进入一个模型的程序编辑器时,系统是直接打开编辑器的,同时新建一个名字为part名后缀为pls的文本文件(可在当前工作目录下找到)。编辑完后关闭编辑器,系统会提示是否将程序所做的修改体现到模型中,也即是否再生。选“是”的话,模型变更,同时pls文件从磁盘上消失。选“否”的话,模型不变更,程序内容被保存在pls文件中,pls文件继续保留于磁盘上。
实际上,每次编辑程序时,系统都会查找是否存在与零件(组件)同名的pls文件,如果存在,则在编辑程序时会弹出“设计来源”菜单,要求选择“从模型”还是“从文件”。选“从文件”的话,系统直接将已有的pls文件调入编辑器进行编辑。选“从模型”的话,系统将根据当前模型构建新的pls文件,同时会提示是否替换掉已经存在的pls文件,选“是”的话,替换掉原pls文件并将新pls文件调入编辑器,选“否”的话,中止操作。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:24 编辑 ]
18
发表于 2005-10-27 17:05:58 | 只看该作者
编辑结束后会提示再生,选“是”将弹出“得到输入”菜单。此菜单选择程序里的输入变量的来源。有三种:Current Vals(当前值)、Enter(输入)、Read File(读取文件)。如是第一次编辑程序,应选“输入”,之后系统会列出Input语句中的所有变量名并加上复选框,选取需要输入新值的变量后,系统会一个一个的提示你输入每个变量的值。如不是第一次编辑了,输入变量可能已经都有正确的值了,就可选“当前值”,这样就直接跳过输入,直接进入再生。“读取文件”是先建一个文本文件(如A.txt),此文件由一行行的赋值语句组成,示例:
A=20.0
B=56
C=”txt”
D=Yes
k=No
N=9
……
选“读取文件”后,系统会要求输入文件名,输入:A.txt,则系统到A.txt这个文件中去查找与输入变量同名的变量,并将A.txt文件中的同名变量的值赋给输入变量。比如程序里Input段有A Number,B String,D Yes-No,M Number共四个变量,用“读取文件”到A.txt里找,找完的结果是A=20.0,B=空,D=yes,M=0.0。
这里要注意的是:如果输入变量在文件里找不到同名变量,则使用当前值或系统默认值(见前文)。文件里多出来的变量,系统是不会使用的。程序里,各变量是不分大小写的(写成小写的话,下次进入编辑器会自动变成大写的),但在文本文件里,是分大小写的,同时,在查找时,也是分大小写的。因此,程序里有变量B,文本文件里有变量b但没变量B的话,变量B的值将使用当前值或默认值。
由于以上的特点,我们可以用一个文本文件去管理多个模型的输入变量。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:25 编辑 ]
19
发表于 2005-10-27 17:06:04 | 只看该作者
再看一下变量的删除
Input语段里的变量,再生之后将进入参数表(如果变量名与某个尺寸的尺寸名同名的话,则此变量将不在参数表里显示)。此后如果输入新值,可以在参数表里看到其新值。如果在程序里将先前已经赋过值的变量删除了或改名了,所有调用这个变量的地方将继续调用参数表里的那个同名参数。如果要将一个Input语段里的变量删除并清除对模型的影响,应先在程序里将其删除,然后在参数表里删除其同名变量。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:25 编辑 ]
20
发表于 2005-10-27 17:06:14 | 只看该作者
一个细节,关于修改尺寸
到现在,如果我们要在程序中修改某个尺寸的值。可以有两个办法实现:
A.在Relations语段修改。
B.在Add段的相应尺寸后用Modify语句修改。
以上两种改法的区别:
A.关系中修改的,再生后将在关系列表里加一条关系,这个尺寸变成由关系控制的了,以后不能直接在模型中修改它的尺寸值了,必须进入关系编辑器或程序编辑器里才能修改。
B.Modify语句修改的,是一次性生效的。再生之后,任何时候都可以直接在模型里修改那个尺寸的值。

[ 本帖最后由 袖珍天使 于 2005-10-27 17:25 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-2-3 01:46 , Processed in 0.026351 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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