PROE(Creo)/PROGRAM 程序设计与关系结合来替换装配中的部件 本课题主要解决问题:
如何用参数驱动实现装配体中的零件替换,获得变化后的正确结果模型。 解决方法:
1.参数中添加相应参数:包括驱动参数(a ,b ,c )和结果参数(tag1)
2.在关系中添加运算过程(如下所得tag1被赋值"big001"或者"big002")
3. 在模型中装配big001
所在的类属文件(或者装配类属文件中的任意一个族表实例文件均可),打开PROE(Creo)/PROGRAM 模型意图--程序设计--编辑设计,修改代码:
到big001所在的代码:
将big001 修改成(tag1)如下
保存关闭即可。这时候被装配的实例由关系中的tag1的运算结果值来控制。 主要零件big001,big002必须为一个模型中的族表里面的两个实例。
(FANS 整理)
PROE/PROGRAM程序设计全解析
前言:本文对PROE/PROGRAM的所有语句及语法进行了详细的解说,并配备实例讲解。
关键字:Program、Input……End Input、Relations……End Relations、Add……End Add、Execute……End Execute、If……End If、Massprop……End Massprop、Lookup_inst、Suppressed、
Modify、Choose、Interact。
PROE/PROGRAM其实是一门很简单的程序设计语言。这门语言的基本词语总共就只有11个:Input……End Input、Relations……End Relations、Add……End Add、Execute……End Execute、If……End If、Massprop……End Massprop、Lookup_inst、Suppressed、Modify、Choose、Interact。所有的一切,都是这里11个词组合出来。
PROE/PROGRAM的入口,在2001里是“菜单管理器”—>PART(或Assembly)◊”程序”,在WF里是“工具”◊“程序”.
我们先看一下一般的程序都是什么样子:
两图上可看到,程序可分成几个部份,第一部份是版本与文件信息.第二部份是一个Input……End Input语句.第三部份是一个Relations……End Relations语句.第四部份是若干个Add……End Add语句.第五部份是一个Massprop……End Massprop语句.
第一部份不用管它,系统自动生成的.第二部份就是设置变量的地方.第三部份就是设置关系式的地方.第四部份是管理所有的特征及零件的地方.第五部份是设置质量属性的地方.我们用PROGRAM的重点,就在第二/三/四这三块.
下面我先一个个说说这11个词都什么意思及如何使用.基本上兄弟们理解了它们的用法,也就自然而然理解了程序的设计与修改了.
第一个,IF……End If
这个就是各种编程语言里都有的大名鼎鼎的条件语句了.实际上它是:
IF 条件1
……(执行语句段1)
Else
……(执行语句段2)
End If.
其含义是:如果满足条件1,则执行第一段的各种语句,否则,执行第二段的各种
语句.Else和第二段是可以没有的,但End If是不可少的,且一个IF对应一个End IF,其数量是相等的.IF语句是一个逻辑语句,使用它的目的就是实现分支设计.单独使用是没有意义的,它必须和其它的语句一
起使用(也就是必须有执行语句段----至少有一句).它本身可以嵌套,因此也就可以实现多重条件的组合运用.
第二个,Input……End Input.
Input……End Input是一个复合词,它实际上是一个程序段,这个程序段以Input 为第一行,以End Input为最后一行,中间的就是我们这个程序中需要人工输入的变量和变量类型以及相关提示信息.程序每次再生的时候,系统会提示我们输入这个做里列出的每一个变量的新值.典型的Input段如下:
Input
A Number
B
C String
D Yes-No
Endinput
这里有几点要记住:
A.所有的变量都要以字母开头.
B.变量的类型有三种:Number,String,Yes-NO.Number就是实数型,其值是任意一个实数,String就是字符型,取值是任意一个字符串,Yes-No就是布尔型,也就是取值为YES或NO之一.
C.如果设置时不指定变量类型(像上面的那个B),则系统当它是实数型.
D.当提示输入时我们不输入新值,则各个变量系统会取当前值,如是第一次运行时也不输入,则系统将实数型变量取值为0,布尔型变量取值为NO,字符串型变量取值为空。
在Input段中可使用IF……Else……End If,以实现选择性输入.
在Input段中也可为输入变量加提示,加提示要注意:
A.提示信息必须包含在引号里
B.提示信息必须紧跟在相应的输入变量之后.
示例:
Input
Hole  Yes-No
“请确认有无工艺孔:”
If Hole==Yes
Hole_Dia Number
“请输入孔直径:”
Hole_Num Number
“请输入孔数:”
Endif
……
End Input
(以上,先确认有无孔,如果有孔,再输入孔数与直径,如果无孔,则不用输入孔数与直径)
第三个,Relations……End Relations
这个词也是一个语句段,第一行是Relations,最后一行是End Relations,中间是零件/组件中需要用到的各种关系式.在零件/组件中加入的各种关系式都放在这里(不含草图关系式及阵列关系式).在编程时也可直接在这里增加关系,所有在这里的关系,都可以在”特征”- ”关系”里编辑.如果一行关系式太长(最长80个字符一行),可以在行尾写一个反斜杠(\),然后接着在下一行写.示例如下: Relations
A=“Part0007”
B=20.0
C=d5*5/d2
D=cos(d6)
End Relations
注:众所周知,Relations语句段中,也可使用IF语句.
查符合两个条件之一的字符串函数
第四个,Add……End Add
它又可细分为三种:Add Feature 特征名……End Add,Add Part 零件名……End Add,Add Subassembly 子组件名……End Add.它们也是语句段,第一行是Add Feature(Part/Subassembly) 特征名(零件名/子组件名),最后一行是End Add,中间是特征(零件/子组件)的具体信息,这些具体信息一般来说不用去管它.因为没有能让我们编辑的东西.
这个语句可与IF和Suppressed联用,以控制特征(零件/子组件)的显示与隐含.
对于特征,这个语句段里列出了特征的主要参数,如尺寸/拉伸深度等,但是,要记住的是,直接在这里改这些参数是没用的
这里的特征名/零件名/子组件名,可以是字符型变量。如果是字符型变量的话,要用括号括起来,示例:(PartName)
第五个,Execute……End Execute
这个语句只用于组件中.它的作用是从组件向零件传递参数,以通过组件中的某些参数去控制构成组件的零件(的形状/尺寸……).它也是个语句段,第一行是Execute,最后一行是End Execute,中间的每一行是一个赋值语句.典型的结构如下:
Execute
Part变量名1=ASM变量名1
Part变量名2=ASM变量名2
……
End Execute
通常,在组件中的Input段和零件中的Input段,都设置相同的变量名,代表同一个参数.(这是为了方便,当然也可以不同,只不过不同的话就要小心点,以免搞错).然后将零件装配到组件中,再编辑程序,在对应的Add Part……End Add语句段前增加一个Execute语句段.这样,再生时,给变量输入新值,part的形状或尺寸就可以自动按要求变化.
第六个,Lookup_inst
这个实际上是PROE里的一个函数.它的取值是一个字符串,用于出族表中符合指定条件的特定实例的名字.具体的语法如下:
Lookup_inst(“Name”,matchmode,Valuename1,Value1,Valuename2,Value2……) Name:含有族表的模型的名字,它必须带后缀,也就是,必须写成如“PRT0002.prt”,“ASM0007.asm”这样,否则,不能得出正确结果.
Matchmode:设置查原则,取值为-1,0,1.”-1”表示查小于等于给定值且最接近给定值的实例,”0”表示查等于给定值的实例,”1”表示查大于等于给定值且最接近给定值的实例.
Valuename1/:是族表参数名,基本上也就是族表中各列的第一行那个东东. Value1/2/3…:是用来匹配的值
示例:零件Part27.prt中,族表按尺寸d0=50,70,90给了三个实例,实例名分别为Part27-1,Part27-2,Part27-3.那么:
Lookup_inst(“Part27.prt”,0,”d0”,50)=Part27-1
Lookup_inst(“Part27.prt”,0,”d0”,70)=Part27-2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。