已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PROE(Creo)/PROGRAM程序设计与关系结合来替换装配中的部件本课题主要解决问题: 如何用参数驱动实现装配体中的零件替换,获得变化后的正确结果模型。解决方法: 1.参数中添加相应参数:包括驱动参数(a,b,c)和结果参数(tag1)if a=#1&b=#1tag1=big001elseif a=#2&b=#2tag1=big002endifendif 2.在关系中添加运算过程(如下所得tag1被赋值big001或者big002) 举例: 3. 在模型中装配big001所在的类属文件(或者装配类属文件中的任意一个族表实例文件均可),打开PROE(Creo)/PROGRAM模型意图-程序设计-编辑设计,修改代码:ADD PART big001 INTERNAL COMPONENT ID 40 END ADD找到big001所在的代码:ADD PART (tag1) INTERNAL COMPONENT ID 40 END ADD将big001 修改成(tag1)如下保存关闭即可。这时候被装配的实例由关系中的tag1的运算结果值来控制。主要零件big001,big002必须为一个模型中的族表里面的两个实例。(FANS整理)PROE/PROGRAM程序设计全解析前言:本文对PROE/PROGRAM的所有语句及语法进行了详细的解说,并配备实例讲解。关键字:Program、InputEnd Input、RelationsEnd Relations、AddEnd Add、ExecuteEnd Execute、IfEnd If、MasspropEnd Massprop、Lookup_inst、Suppressed、Modify、Choose、Interact。 PROE/PROGRAM其实是一门很简单的程序设计语言。这门语言的基本词语总共就只有11个:InputEnd Input、RelationsEnd Relations、AddEnd Add、ExecuteEnd Execute、IfEnd If、MasspropEnd Massprop、Lookup_inst、Suppressed、Modify、Choose、Interact。所有的一切,都是这里11个词组合出来。PROE/PROGRAM的入口,在2001里是“菜单管理器”PART(或Assembly)”程序”,在WF里是“工具”“程序”. 我们先看一下一般的程序都是什么样子:两图上可看到,程序可分成几个部份,第一部份是版本与文件信息.第二部份是一个InputEnd Input语句.第三部份是一个RelationsEnd Relations语句.第四部份是若干个AddEnd Add语句.第五部份是一个MasspropEnd Massprop语句.第一部份不用管它,系统自动生成的.第二部份就是设置变量的地方.第三部份就是设置关系式的地方.第四部份是管理所有的特征及零件的地方.第五部份是设置质量属性的地方.我们用PROGRAM的重点,就在第二/三/四这三块.下面我先一个个说说这11个词都什么意思及如何使用.基本上兄弟们理解了它们的用法,也就自然而然理解了程序的设计与修改了.第一个,IFEnd If这个就是各种编程语言里都有的大名鼎鼎的条件语句了.实际上它是:IF条件1(执行语句段1)Else(执行语句段2)End If.其含义是:如果满足条件1,则执行第一段的各种语句,否则,执行第二段的各种语句.Else和第二段是可以没有的,但End If是不可少的,且一个IF对应一个End IF,其数量是相等的.IF语句是一个逻辑语句,使用它的目的就是实现分支设计.单独使用是没有意义的,它必须和其它的语句一起使用(也就是必须有执行语句段-至少有一句).它本身可以嵌套,因此也就可以实现多重条件的组合运用.第二个,InputEnd Input.InputEnd Input是一个复合词,它实际上是一个程序段,这个程序段以Input为第一行,以End Input为最后一行,中间的就是我们这个程序中需要人工输入的变量和变量类型以及相关提示信息程序每次再生的时候,系统会提示我们输入这个做里列出的每一个变量的新值.典型的Input段如下:InputA NumberBC StringD Yes-NoEndinput这里有几点要记住:A所有的变量都要以字母开头B变量的类型有三种:Number,String,Yes-NO.Number就是实数型,其值是任意一个实数,String就是字符型,取值是任意一个字符串,Yes-No就是布尔型,也就是取值为YES或NO之一.C.如果设置时不指定变量类型(像上面的那个B),则系统当它是实数型.D.当提示输入时我们不输入新值,则各个变量系统会取当前值,如是第一次运行时也不输入,则系统将实数型变量取值为0,布尔型变量取值为NO,字符串型变量取值为空。在Input段中可使用IFElseEnd If,以实现选择性输入.在Input段中也可为输入变量加提示,加提示要注意:A.提示信息必须包含在引号里B.提示信息必须紧跟在相应的输入变量之后.示例:InputHole Yes-No“请确认有无工艺孔:” If Hole=Yes Hole_Dia Number“请输入孔直径:” Hole_Num Number“请输入孔数:” EndifEnd Input(以上,先确认有无孔,如果有孔,再输入孔数与直径,如果无孔,则不用输入孔数与直径)第三个,RelationsEnd Relations这个词也是一个语句段,第一行是Relations,最后一行是End Relations,中间是零件/组件中需要用到的各种关系式.在零件/组件中加入的各种关系式都放在这里(不含草图关系式及阵列关系式).在编程时也可直接在这里增加关系,所有在这里的关系,都可以在”特征”-”关系”里编辑.如果一行关系式太长(最长80个字符一行),可以在行尾写一个反斜杠(),然后接着在下一行写.示例如下:Relations A=“Part0007” B=20.0 C=d5*5/d2 D=cos(d6)End Relations注:众所周知,Relations语句段中,也可使用IF语句.第四个,AddEnd Add它又可细分为三种:Add Feature特征名End Add,Add Part零件名End Add,Add Subassembly子组件名End Add.它们也是语句段,第一行是Add Feature(Part/Subassembly)特征名(零件名/子组件名),最后一行是End Add,中间是特征(零件/子组件)的具体信息,这些具体信息一般来说不用去管它.因为没有能让我们编辑的东西.这个语句可与IF和Suppressed联用,以控制特征(零件/子组件)的显示与隐含.对于特征,这个语句段里列出了特征的主要参数,如尺寸/拉伸深度等,但是,要记住的是,直接在这里改这些参数是没用的!这里的特征名/零件名/子组件名,可以是字符型变量。如果是字符型变量的话,要用括号括起来,示例:(PartName)第五个,ExecuteEnd Execute这个语句只用于组件中.它的作用是从组件向零件传递参数,以通过组件中的某些参数去控制构成组件的零件(的形状/尺寸).它也是个语句段,第一行是Execute,最后一行是End Execute,中间的每一行是一个赋值语句.典型的结构如下:Execute Part变量名1=ASM变量名1 Part变量名2=ASM变量名2End Execute通常,在组件中的Input段和零件中的Input段,都设置相同的变量名,代表同一个参数.(这是为了方便,当然也可以不同,只不过不同的话就要小心点,以免搞错).然后将零件装配到组件中,再编辑程序,在对应的Add PartEnd 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/2/3.:是族表参数名,基本上也就是族表中各列的第一行那个东东.Value1/2/3:是用来匹配的值示例:零件Part27.prt中,族表按尺寸d0=50,70,90给了三个实例,实例名分别为Part27-1,Part27-2,Part27-3.那么:Lookup_inst(“Part27.prt”,0,”d0”,50)=Part27-1Lookup_inst(“Part27.prt”,0,”d0”,70)=Part27-2Lookup_inst(“Part27.prt”,0,”d0”,90)=Part27-3Lookup_inst(“Part27.prt”,-1,”d0”,60)=Part27-1Lookup_inst(“Part27.prt”,1,”d0”,60)=Part27-2Lookup_inst(“Part27.prt”,1,”d0”,10)=Part27-1注意:以上的”Part27.prt”如果写成”Part27”的话,是得不出结果的。第七个,Suppressed这个就是一个词,即”压缩”/”隐含”.它的作用跟它的词义一样,用于把一个特征/零件/子组件隐含起来,效果与在模型树里点右键用”隐含”相同.它不能单独用,必须与AddEnd Add语句一起使用.当想隐含哪个特征/零件/子组件时,只要在它对应的AddEnd Add语句的第一行的Add后加上Suppressed,再生之后它就不见了.要注意的是,因为它的效果是”隐含”不是”隐藏”,所以用的时候要注意了,如果Suppressed了父亲而不Suppressed儿子的话,再生就要报错的.Suppressed一个组或阵列中的一个子特征,必须将所有子特征全部Suppressed,对于组,因组标识在程序里还有个单独的AddEnd Add语句,它也要Suppressed,否则报错.但如果在Config里加一个设置:del_gp_memb_ind=yes,则组的各个子特征可以单独Suppressed.Suppressed之后要恢复,可直接在模型树里“恢复”,也可在程序里将Suppressed去掉。第八个,Modify它的词义是“修改”,功能同其名,就是用来修改AddEnd Add语句中的那些特征参数。前面说过,直接在AddEnd Add语句中修改特征参数是无效的,但有时候,我们真想在程序里去修改,这时就可用Modify语句来实现了。Modify语句必须嵌在AddEnd Add语句中使用。Modify语句语法如下:Modify Valuename1=Value1Modify Valuename2=Value2示例:Add Feather xxxx D0=30 D2=25.5 Modify d0=50 Modify d2=35End Add此例:特征里有两个尺寸,一个d0=30,一个d2=25.5,用Modify语句将D0修改为50,将D2修改为35。(为了显示Modify语句的常用位置,上面示例把AddEnd Add语句的主要结构也写出来了)Modify语句是一次性的,再生之后,模型按它所修改的数值改变,而程序里的Modify语句则消失了。第九个,InteractInteract的词义就是“互动”“交互”,其作用就是在程序里的适当位置将系统控制权交给操作者,让操作者进行一定的操作后再将系统控制权还给系统-实现“交互式设计”。在程序中使用Interact语句,当程序运行时遇到Interact,程序就暂停运行,此时模型树处于插入状态,用户(操作者)可以自己向part里增加特征(或向组件里增加组件级特征或元件),一个特征(或元件)增加完后,系统会提示是否继续增加,选否的话交回系统控制权,程序继续运行直到结束。Interact语句在程序里的地位与AddEnd Add、ExecuteEnd Execute、MasspropEnd Massprop、InputEnd Input、RelationsEnd Relations语句同级,它不可以放在这几个语段内部。它可以与IFEnd If语句联用。示例:Add Feather xxxxEnd AddInteractAdd Feather xxxxEnd AddInteract语句是一次性的,再生后,Interact语句消失,新加特征(元件)的AddEnd Add语句放在原来的Interact语句的位置上。如果暂停时直接选“Done(完成)”结束了增加动作的话,程序里的Interact语句也消失了,但不增加任何内容。当Interact语句用在part的程序里时,只要再生就会出现交互(即Interact语句起作用)。当Interact语句用在组件的程序里时,有些兄弟的PROE里可能就要在再生时至少修改一个输入变量(InputEnd Input段里的变量)的值才能触发Interact,如果再生时用“当前值”或选取了变量但输入时都用回车跳过了,Interact将不起作用。第十个,ChooseChoose就是“选择”。这个用于UDF(用户自定义特征)。在建模的时候,如果使用了UDF,在模型树里,UDF就会显示为一个组,使用“特征”-“组”“替换”,可以将这个UDF组替换为另一个UDF组或同一个UDF里的另一个族表实例。替换后,被替换的组作为不活动特征仍保留在part里,只不过在模型树上看不到它了,但在程序里,可以用choose语句把它变成活动特征(而Choose前的那个组则变成不活动特征了)。如果UDF组有子特征的话,被替换后,其子特征也一起变成不活动特征,用choose把它换回来后,它的子特征也同时变成活动特征。同Interact语句一样,Choose语句在程序里的地位与AddEnd Add、ExecuteEnd Execute、MasspropEnd Massprop、InputEnd Input、RelationsEnd Relations语句同级,它不可以放在这几个语段内部。同Interact语句一样,Choose语句也是一次性的,再生之后,Choose语句消失。Choose语句语法如下:Choose(Valuename)Valuename:一个字符串型变量。使用Choose语句要先在Inputnd Input语句中加一个字符串型变量。在加入UDF组后,做一次替换,再编辑程序,在组标记的AddEnd Add语句段内就会多了一句:“组用特征标识(名称)替换: 1127(RRR)”,找到这一句(如果没能成功替换,则不会有这一句),记下这个数字,这个数字就是要被替换出来的那个组的特征ID。然后在这个组标记的AddEnd Add语句段后增加一个Choose语句,Choose的变量就是先前建的那个字符串变量。再生时,将此变量的值修改为“1127”(刚才查到的ID)。再生后模型里的UDF组就被替换了。示例: Input Gp String End Input Add Feature xxxx组用特征标识(名称)替换: 1127(RRR)组是由UDF UUU驱动的END ADDChoose(GP)(Input段中设置变量组标记Add段中查找ID组标记段后用Choose(变量名)当Choose语句放在Massprop.End Massprop语句前时,Choose语句执行后不消失-变成固定语句。如此,如果模型中有多个UDF需要根据情况选择,则可在Massprop之前连着放几个Choose语句。而如果是一次性的操作,则可使用Choose语句的瞬时性。第十一个,MasspropEnd Massprop这个语句用于再生时计算质量属性。计算后系统里的质量属性相关的参数变成最新值,可在其它地方直接引用而不必在引用前再进行一次质量属性计算。它也是一个语句段,其语法如下:Massprop Part partname1 Part partname2 Assembly asmname1 Assembly asmnmae2End Massprop(各零件/组件名可不用带扩展名)在Massprop语句段中,可嵌入IFEnd If语句。好,前面把十一个词的意思都讲完了。再看一下这些词的分类与组合规则。根据它们在程序中的保留时间,可分为固定语句和瞬时语句。固定语句一旦写到程序里,除非再做编辑人为删除它,它一直存在,每次再生都起作用。瞬时语句是一次性的,再生之后,就从程序里消失了。瞬时语句有Interact和Modify共二个。Choose语句则比较特殊,瞬时性与固定性兼具,当它放在Massprop.End Massprop语句段之前时,它是固定语句,当它放在Add.End Add语句之前时,它是瞬时语句。其它的都是固定语句。根据它们在程序中的地位,可把这十一个词分成三种:段语句、独立语句、辅助语句。段语句用来构成一个程序块,一个块实现一个独立的功能,如输入变量、设置关系、增加一个特征(元件)、向一个元件传递参数等等。段语句包括:InputEnd Input、RelationsEnd Relations、AddEnd Add、ExecuteEnd Execute、MasspropEnd Massprop共五个。独立语句,一个语句实现一个独立的功能,包括:Interact、Choose,共2个。辅助语句不能单独使用,必须与其它语句一起使用,包括:IfEnd 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中间,是其它各种语句(段)的按上述规则的组合。实际上,还有一个注释语句也应该算一个语句。但它不影响模型变化。故前面未将其列入基本词汇中。注释语句以斜杠加星号打头,即以“/*”打头,后面跟注释内容。注释语句仅用在RelationsEnd Relations语句和Add FeatherEnd Add语句中。在Relations语句中,它可在任何位置,在Add FeatherEnd Add语句中,它必须紧跟在第一行Add Feather之后作为第二行。注释语句加入的内容,不直接影响模型,也不会在模型中显示。在编辑关系的编辑器中,可以看到加在Relations语句中的注释,在特征信息中可以看到加在Add FeatherEnd Add语句中的注释。注释语句不是一次性的,再生之后继续存在于程序中。再看一下设计来源。第一次从“编辑程序”进入一个模型的程序编辑器时,系统是直接打开编辑器的,同时新建一个名字为part名后缀为pls的文本文件(可在当前工作目录下找到)。编辑完后关闭编辑器,系统会提示是否将程序所做的修改体现到模型中,也即是否再生。选“是”的话,模型变更,同时pls文件从磁盘上消失。选“否”的话,模型不变更,程序内容被保存在pls文件中,pls文件继续保留于磁盘上。实际上,每次编辑程序时,系统都会查找是否存在与零件(组件)同名的pls文件,如果存在,则在编辑程序时会弹出“设计来源”菜单,要求选择“从模型”还是“从文件”。选“从文件”的话,系统直接将已有的pls文件调入编辑器进行编辑。选“从模型”的话,系统将根据当前模型构建新的pls文件,同时会提示是否替换掉已经存在的pls文件,选“是”的话,替换掉原pls文件并将新pls文件调入编辑器,选“否”的话,中止操作。编辑结束后会提示再生,选“是”将弹出“得到输入”菜单。此菜单选择程序里的输入变量的来源。有三种:Current Vals(当前值)、Enter(输入)、Read File(读取文件)。如是第一次编辑程序,应选“输入”,之后系统会列出Input语句中的所有变量名并加上复选框,选取需要输入新值的变量后,系统会一个一个的提示你输入每个变量的值。如不是第一次编辑了,输入变量可能已经都有正确的值了,就可选“当前值”,这样就直接跳过输入,直接进入再生。“读取文件”是先建一个文本文件(如A.txt),此文件由一行行的赋值语句组成,示例:A=20.0B=56C=”txt”D=Yesk=NoN=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的值将使用当前值或默认值。由于以上的特点,我们可以用一个文本文件去管理多个模型的输入变量。再看一下变量的删除。Input语段里的变量,再生之后将进入参数表(如果变量名与某个尺寸的尺寸名同名的话,则此变量将不在参数表里显示)。此后如果输入新值,可以在参数表里看到其新值。如果在程序里将先前已经赋过值的变量删除了或改名了,所有调用这个变量的地方将继续调用参数表里的那个同名参数。如果要将一个Input语段里的变量删除并清除对模型的影响,应先在程序里将其删除,然后在参数表里删除其同名变量。一个细节,关于修改尺寸。到现在,如果我们要在程序中修改某个尺寸的值。可以有两个办法实现:A.在Relations语段修改。B.在Add段的相应尺寸后用Modify语句修改。以上两种改法的区别:A.关系中修改的,再生后将在关系列表里加一条关系,这个尺寸变成由关系控制的了,以后不能直接在模型中修改它的尺寸值了,必须进入关系编辑器或程序编辑器里才能修改。B.Modify语句修改的,是一次性生效的。再生之后,任何时候都可以直接在模型里修改那个尺寸的值。 proe程序设计的基本语法是什么? 分享到:0 作者:chenlin 浏览次数: 550次 发布时间:2012-03-10 17:01 本文所说的程序设计是指“工具(Tools)”菜单下面的“程序(program)”命令,如下图所示,程序设计是自动化产品设计的一项辅助工具,用户可以经由非常简单的程序语言来控制特征的出现与否、尺寸的大小、零组件的出现与否、零组件的显示、零组件的个数等。当零件或组件的程序设计完成后,以后在读取该零件或组件时,其各种变化情况即可以利用问答的方式得到不同的几何形状,以达到产品设计的要求。一般来说族表、程序设计、Pro/Toolkit三者相互结合进行Proe二次开发是最常用的方法,也是效率最高的方法。那么proe程序设计的基本语法是什么?问题答案 程序设计的语法类型和内容如下:1.参数的输入及提示栏的设定INPUT在INPUT 及END INPUT 之间可以加入问句,以后当用户单击工具栏中的再生图标,以重新产生零件或组件的几何模型时,此问句将促使用户输入数值,此数值可用以控制其后的关系式、成为零件中某特征的尺寸参数名称或成为组件中某零件的名称。例如:在下列语句中, detailed 为参数名, YES_NO 为参数值的形态,而”Do you want a fullydetailed part?” 为执行程序时,系统询问用户的提示行。INPUTdetailed YES_NO“Do you want a fully detailed part?”ENDINPUT由此可知INPUT 叙述的语法为:INPUT参数名 + 参数值的类型提示行ENDINPUT参数值的形态有下列三种:a)Number: 参数值为一个阿拉伯数字。b)String: 参数值为字串。c)Y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园全部返校通知书
- 广东南方职业技术学院通知书
- 广坪乡停电通知书
- 广德一中开课通知书
- 庄寨自来水停水通知书
- 建水门面整改通知书
- 建设区禁烧秸秆通知书
- 开江道小学入学通知书
- 张北县暖气涨价通知书
- 张康村发放物资通知书
- 入团考试试题及答案大全
- 骨科危重患者的急救及护理
- 公司财务制度及管理制度
- 四川省成都市某中学2024-2025学年八年级上学期期中考试物理试题(原卷版)
- T/CMAM W-6-2022维吾尔医常见病诊疗指南皮肤科
- 工程款退费协议书
- 2025上海银行笔试题库及答案
- 文化礼堂建设协议书
- 《创新管理》 课件
- 产品采购框架协议
- 2025-2030中国体外受精设备和耗材行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论