1、参数化建模简介(参数、关系、齿轮参数化建模)proe 参数化建模简介(1)本教程分两部分,第一部分主要介绍参数化建模的相关概念和方法,包括参数的概念、参数的设置、关系的概念、关系的类型、如何添加关系以及如何使用关系创建简单的参数化零件(以齿轮为例)。第二部分介绍参数化建模的其他方法:如族表的应用、如何使用 UDF(用户自定义特征) 、如何使用 Pro/Program 创建参数化零件。(后一部分要等一段时间了,呵呵)参数化设计是 proe 重点强调的设计理念。参数是参数化设计的核心概念,在一个模型中,参数是通过“尺寸”的形式来体现的。参数化设计的突出有点在于可以通过变更参数的方法来方便的修改设计
2、意图,从而修改设计意图。关系式是参数化设计中的另外一项重要内容,它体现了参数之间相互制约的“父子”关系。所以,首先要了解 proe 中参数和关系的相关理论。一、什么是参数?参数有两个含义:一是提供设计对象的附加信息,是参数化设计的重要要素之一。参数和模型一起存储,参数可以标明不同模型的属性。例如在一个“族表”中创建参数“成本”后,对于该族表的不同实例可以设置不同的值,以示区别。二是配合关系的使用来创建参数化模型,通过变更参数的数值来变更模型的形状和大小。二、如何设置参数在零件模式下,单击菜单“工具”参数,即可打开参数对话框,使用该对话框可添加或编辑一些参数。1.参数的组成(1)名称:参数的名称
3、和标识,用于区分不同的参数,是引用参数的依据。注意:用于关系的参数必须以字母开头,不区分大小写,参数名不能包含如下非法字符:!、”、和#等。(2)类型:指定参数的类型 a)整数:整型数据 b)实数:实数型数据 c)字符型:字符型数据 d)是否:布尔型数据。(3)数值:为参数设置一个初始值,该值可以在随后的设计中修改(4)指定:选中该复选框可以使参数在 PDM(Product Data Management,产品数据管理)系统中可见(5)访问:为参数设置访问权限。 a)完全:无限制的访问权,用户可以随意访问参数 b)限制:具有限制权限的参数 c)锁定:锁定的参数,这些参数不能随意更改,通常由关系
4、式确定。(6)源:指定参数的来源 a)用户定义的:用户定义的参数,其值可以随意修改 b)关系:由关系式驱动的参数,其值不能随意修改。(7)说明:关于参数含义和用途的注释文字(8)受限制的:创建其值受限制的参数。创建受限制参数后,它们的定义存在于模型中而与参数文件无关。(9)单位:为参数指定单位,可以从其下的下拉列表框中选择。2.增删参数的属性项目可以根据实际需要增加或删除以上 9 项中除了“名称”之外的其他属性项目三、关系的概念关系是参数化设计的另一个重要因素。关系是使用者自定义的尺寸符号和参数之间的等式。关系捕获特征之间、参数之间或组件之间的设计关系。可以这样来理解,参数化模型建立好之后,参
5、数的意义可以确定一系列的产品,通过更改参数即可生成不同尺寸的零件,而关系是确保在更改参数的过程中,该零件能满足基本的形状要求。如参数化齿轮,可以更改模数、齿数从而生成同系列、不同尺寸的多个模型,而关系则满足在更改参数的过程中齿轮不会变成其他的零件。四、关系式的组成关系式的组成主要有:尺寸符号、数字、参数、保留字、注释等。1.符号类型系统会给每一个尺寸数值创建一个独立的尺寸编号,在不同的模式下,被给定的编号也不同4)自定参数。用户自定义的参数。使用者参数名必须以字母开头(如果它们要用于关系的话)。不能使用 d#、kd#、rd# 、 tm#、tp#、或 tpm#作为使用者参数名,因为它们是由尺寸保
6、留使用的。使用者参数名不能包含非字母数字字符,诸如! 、 、#、$。2.系统内缺省的常量(大小写视为相同)下列参数是由系统保留使用的:3.运算符号(算数、比较、逻辑)4.数学函数(大小写视为相同)下面简单介绍这些函数的用法:sin()、cos()、tan()函数这三个都是数学上的三角函数,分别使用角度的度数值来求得角度对应的正弦、余弦和正切值,比如: A=sin(30) A=0.5 B=cos(30) B=0.866 C=tan(30)C=0.577asin()、acos()、atan() 函数这三个是上面三个三角函数的反函数,通过给定的实数值求得对应的角度值,如:A=asin(0.5) A=
7、30 B=acos(0.5) B=60 C=atan(0.5) C=26.6sinh()、cosh()、tanh()函数在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数。基本双曲函数是双曲正弦“sinh”,双曲余弦 “cosh”,从它们导出双曲正切“tanh ”等。sinh / 双曲正弦: sinh(x) = ex - e(-x) / 2cosh / 双曲余弦: cosh(x) = ex + e(-x) / 2 tanh / 双曲正切: tanh(x) = sinh(x) / cosh(x)=ex - e(-x) / ex + e(-x) 函数使用实数作为输入值sqrt()函数开平方,如
8、:A=sqrt(100) A=10; B=sqrt(2)B=1.414. log()函数求得 10 为底的对数值,如: A=log(1) A=0; A=log(10) A=1; A=log(5)A=0.6989.;ln()函数求得以自然数 e 为底的对数值,e 是自然数,值是 2.718.;如: A=ln(1)A=0; A=ln(5) A=1.609.; exp()函数求得以自然数 e 为底的开方数,如:A=exp(2) A=e2=7.387.; abs()函数求得给定参数的绝对值,如A=abs(-1.6) A=1.6B=abs(3.5) B3.5 max()、min() 函数求得给定的两个参
9、数之中的最大最小值,如A=max(3.8,2.5) A=3.8 B=min(3.8,2.5) B=2.5 mod()函数求第一个参数除以第二个参数得到的余数,如: A=mod(20,6) A=2 B=mod(20.7,6.1) B=2.4 pow()函数指数函数,如A=pow(10,2) A=100 B=pow(100,0.5) B=10ceil()和 floor() 均可有一个附加参数,用它可指定舍去的小数位. ceil(parameter_name or number, number_of_dec_places). floor(parameter_name or number, numbe
10、r_of_dec_places). parameter_name or number:参数名或数值 要保留的小数位(可省略) number_of_dec_places:要保留的小数位 (可省略) ,它的取值的不同可有不同的结果:可以为数值亦可为参数 ,若为实数则取整 . 若 number_of_dec_place8, 则不作任何处理,用原值若 number_of_dec_place11 比 10.2 大的最小整数为 11. floor(-10.2)-11 比-10.2 小的最大整数为-11.floor(10.2)10 比 10.2 小的最大整数为 10. Ceil(10.255,2)10.26
11、. 比 10.255 大的最小符合数 . Ceil(10.255,0)11 floor(10.255,1)10.2 Len1=ceil(20.5) =Len1=21 Len2=floor(-11.3) =Len2=-12 Len=Len1+Len2 =Len=95.其他函数Proe 中提供的函数很多,除上述数学函数外,还有许多函数,在此介绍几个字符串函数tring_length( ) :返回某字符串参数中字符的个数。用法:String_length(Parameter name or string 参数名或字符串例)如:strlen1=string_length(“material“) 则 s
12、trlen1=8若 material=“steel“,strlen2=string_length(material),则 strlen2=5rel_model_name( ):返回目前模型的名称用法:rel_model_name( ) 注意括号内为空的,返回目前模型名称. 例: 当前模型为 part1,则 partName=rel_model_name( )=partName=“part1“ 如在装配图中,则需加上进程号(session Id),例如 partName=rel_model_name:2( ) rel_model_type( ) 返回目前模型类型用法: rel_model_typ
13、e( ) 例: 如当前模型为装配图 parttype=rel_model_type( ) =parttype=“ASSEMBLY“. itos( ) 将整数换成字符串用法: Itos(integer) 整数,若为实数则舍去小数点. 例:S1=Itos(123)=s1=“123“ S2=itos(123.57)=s2=“123“ intl=123.5 s3=itos(intl)=s3=“123“ search( ) 查找字符串, 返回位置值用法:search(string,substring). string:原字符串 substring:要找的字符串 . 查到则返回位置,否则返回 0,第一个字
14、符位置值为 1,依此类推. 例 : Parstr=abcdef.则 Where=search(parstr,“bcd“)=Where=2. Where=search(parstr,“bed“)=where=0(没查到). extract( ) 提取字符串用法:extract(string,position,length)string 原字符串position 提取位,大于 0 而小于字符串长度length 提取字符数,不能大于字符串长度例: new=extraecl(“abcded“,2,3)=new=“bcd“. 其含义是: 从 “abcdef“串的第 2 个字符(b) 开始取出 3 个字符
15、.exists( ) 测试项目是否存在用法:exists(Item)Item 可以是参数或尺寸. 例:If exists(d5) 检查零件内是否有 d5 尺寸.If exists(“material“) 检查零件内是否有 material 参数.evalgraph()计算函数用法:evalgraph(graph_name,x_value)其中 graph_name 是指控制图表( graph)的名字,要用双引号括起,x_value 是 graph 中的横坐标值。函数返回 graph 中 x 对应的 y 值。如 sd5evalgraph(“sec”,3) evalgraph 只是 proe 提供
16、的一个用于计算图表 graph 中的横坐标对应纵坐标的值的一个函数,你可以用在任何场合。trajparf_of_pnt( )返回指定点在曲线中的位置比例。用法:trajpar_of_pnt(curve_name,point_name)curve_name 是曲线的名称point_name 则为点的名字。两个参数都需要用“”来括起。函数返回的是点在曲线上的比例值,可能等于 trajpar 也可能是 1-trajpar。视曲线的起点如何。ratio=trajpar_of_pnt(“wire”,”pnt1”) ratio 的值等于点 pnt1 在曲线 wire 上的比例值。6.注释/* 后文字并不会参与关系式的运算,可用来描述关系式的意义。如:/*Width is equal to 2*heightd1=2*d2五、关系式的分类proe 提供了为数不少的关系式,范围涵盖广泛,不过,一般使用者常用的仅其中几种,一下列举三大类分别说明。1.简单式该类型通常用于单纯的赋值。如:m=2d1=d2*2