proe全参数化建模教程最新.docx
《proe全参数化建模教程最新.docx》由会员分享,可在线阅读,更多相关《proe全参数化建模教程最新.docx(26页珍藏版)》请在冰点文库上搜索。
![proe全参数化建模教程最新.docx](https://file1.bingdoc.com/fileroot1/2023-6/1/896d77da-2733-44e5-a70f-4a00b66375db/896d77da-2733-44e5-a70f-4a00b66375db1.gif)
proe全参数化建模教程最新
proe参数化建模
本教程分两局部,第一局部主要介绍参数化建模的相关概念和方法,包括参数的概念、参数的设置、关系的概念、关系的类型、如何添加关系以与如何使用关系创建简单的参数化零件〔以齿轮为例〕。
第二局部介绍参数化建模的其他方法:
如族表的应用、如何使用UDF(用户自定义特征)、如何使用Pro/Program创建参数化零件。
〔后一局部要等一段时间了,呵呵〕 参数化设计是proe重点强调的设计理念。
参数是参数化设计的核心概念,在一个模型中,参数是通过“尺寸〞的形式来表现的。
参数化设计的突出有点在于可以通过变更参数的方法来方便的修改设计意图,从而修改设计意图。
关系式是参数化设计中的另外一项重要内容,它表现了参数之间相互制约的“父子〞关系。
所以,首先要了解proe中参数和关系的相关理论。
一、什么是参数?
参数有两个含义:
一是提供设计对象的附加信息,是参数化设计的重要要素之一。
参数和模型一起存储,参数可以标明不同模型的属性。
例如在一个“族表〞中创建参数“本钱〞后,对于该族表的不同实例可以设置不同的值,以示区别。
二是配合关系的使用来创建参数化模型,通过变更参数的数值来变更模型的形状和大小。
二、如何设置参数 在零件模式下,单击菜单“工具〞——参数,即可打开参数对话框,使用该对话框可
添加或编辑一些参数。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25792¬humb=yes(58.92KB)
2008-12-1220:
53
(1)名称:
参数的名称和标识,用于区分不同的参数,是引用参数的依据。
注意:
用于关系的参数必须以字母开头,不区分大小写,参数名不能包含如下非法字符:
!
、〞、和#等。
(2)类型:
指定参数的类型
∙a)整数:
整型数据
∙b)实数:
实数型数据
∙c)字符型:
字符型数据
∙d)是否:
布尔型数据。
(3)数值:
为参数设置一个初始值,该值可以在随后的设计中修改(4)指定:
选中该复选框可以使参数在PDM〔ProductDataManagement,产品数据管理〕系统中可见(5)访问:
为参数设置访问权限。
∙a)完全:
无限制的访问权,用户可以随意访问参数
∙b)限制:
具有限制权限的参数
∙c)锁定:
锁定的参数,这些参数不能随意更改,通常由关系式确定。
(6)源:
指定参数的来源
∙a)用户定义的:
用户定义的参数,其值可以随意修改
∙b)关系:
由关系式驱动的参数,其值不能随意修改。
(7)说明:
关于参数含义和用途的注释文字(8)受限制的:
创建其值受限制的参数。
创建受限制参数后,它们的定义存在于模型中而与参数文件无关。
(9)单位:
为参数指定单位,可以从其下的下拉列表框中选择。
可以根据实际需要增加或删除以上9项中除了“名称〞之外的其他属性项目
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25793¬humb=yes(46.02KB)
2008-12-1220:
53
三、关系的概念关系是参数化设计的另一个重要因素。
关系是使用者自定义的尺寸符号和参数之间的等式。
关系捕获特征之间、参数之间或组件之间的设计关系。
可以这样来理解,参数化模型建立好之后,参数的意义可以确定一系列的产品,通过更改参数即可生成不同尺寸的零件,而关系是确保在更改参数的过程中,该零件能满足根本的形状要求。
如参数化齿轮,可以更改模数、齿数从而生成同系列、不同尺寸的多个模型,而关系如此满足在更改参数的过程中齿轮不会变成其他的零件。
四、关系式的组成关系式的组成主要有:
尺寸符号、数字、参数、保存字、注释等。
系统会给每一个尺寸数值创建一个独立的尺寸编号,在不同的模式下,被给定的编号也不同
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25794¬humb=yes(42.02KB)
2008-12-1220:
53
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25795¬humb=yes(23.55KB)
2008-12-1220:
53
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25796¬humb=yes(45.51KB)
2008-12-1220:
53
4)自定参数。
用户自定义的参数。
使用者参数名必须以字母开头〔如果它们要用于关系的话〕。
不能使用d#、kd#、rd#、tm#、tp#、或tpm#作为使用者参数名,因为它们是由尺寸保存使用的。
使用者参数名不能包含非字母数字字符,诸如!
、、#、$。
2.系统内缺省的常量〔大小写视为一样〕如下参数是由系统保存使用的:
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25797¬humb=yes(16.08KB)
2008-12-1220:
53
3.运算符号〔算数、比拟、逻辑〕
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25798¬humb=yes(39.41KB)
2008-12-1220:
53
4.数学函数〔大小写视为一样〕
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25799¬humb=yes(59.16KB)
2008-12-1220:
53
下面简单介绍这些函数的用法:
sin()、cos()、tan()函数asin()、acos()、atan()函数sinh()、cosh()、tanh()函数在数学中,双曲函数类似于常见的〔也叫圆函数的〕三角函数。
根本双曲函数是双曲正弦“sinh〞,双曲余弦“cosh〞,从它们导出双曲正切“tanh〞等。
sinh/双曲正弦:
sinh(x)=[e^x-e^(-x)]/2cosh/双曲余弦:
cosh(x)=[e^x+e^(-x)]/2tanh/双曲正切:
tanh(x)=sinh(x)/cosh(x)=[e^x-e^(-x)]/[e^x+e^(-x)]函数使用实数作为输入值sqrt()函数开平方,如:
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=e^2=7.387...;abs()函数求得给定参数的绝对值,如A=abs(-1.6)A=1.6B=abs(3.5)B=3.5max()、min()函数求得给定的两个参数之中的最大最小值,如A=max(3.8,2.5)A=3.8B=min(3.8,2.5)B=2.5mod()函数求第一个参数除以第二个参数得到的余数,如:
A=mod(20,6)A=2B=mod(20.7,6.1)B=2.4pow()函数指数函数,如A=pow(10,2)A=100B=pow(100,0.5)B=10ceil()和floor()均可有一个附加参数,用它可指定舍去的小数位.ceil(parameter_nameornumber,number_of_dec_places).floor(parameter_nameornumber,number_of_dec_places).parameter_nameornumber:
参数名或数值要保存的小数位(可省略)number_of_dec_places:
要保存的小数位(可省略),它的取值的不同可有不同的结果:
可以为数值亦可为参数,假如为实数如此取整.假如number_of_dec_place>8,如此不作任何处理,用原值假如number_of_dec_place<8,如此舍去其后的小数位,如此进位例如:
Ceil(10.2)-->11比10.2大的最小整数为11.floor(-10.2)-->-11比-10.2小的最大整数为-11.floor(10.2)-->10比10.2小的最大整数为10.Ceil(10.255,2)-->10.26.比10.255大的最小符合数.Ceil(10.255,0)-->11floor(10.255,1)-->10.2Len1=ceil(20.5)==>Len1=21Len2=floor(-11.3)==>Len2=-12Len=Len1+Len2==>Len=9Proe中提供的函数很多,除上述数学函数外,还有许多函数,在此介绍几个字符串函数tring_length():
返回某字符串参数中字符的个数。
用法:
String_length(Parameternameorstring参数名或字符串例)如:
strlen1=string_length("material")如此strlen1=8假如material="steel",strlen2=string_length(material),如此strlen2=5rel_model_name():
返回目前模型的名称用法:
rel_model_name()注意括号内为空的,返回目前模型名称.例:
当前模型为part1,如此partName=rel_model_name()==>partName="part1"如在装配图中,如此需加上进程号(sessionId),例如partName=rel_model_name:
2()rel_model_type()返回目前模型类型用法:
rel_model_type()例:
如当前模型为装配图parttype=rel_model_type()==>parttype="ASSEMBLY".itos()将整数换成字符串用法:
Itos(integer)整数,假如为实数如此舍去小数点.例:
S1=Itos(123)==>s1="123"S2=itos(123.57)==>s2="123"intl=123.5s3=itos(intl)==>s3="123"search()查找字符串,返回位置值用法:
search(string,substring).string:
原字符串substring:
要找的字符串.查到如此返回位置,否如此返回0,第一个字符位置值为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个字符.exists()测试项目是否存在用法:
exists(Item)Item可以是参数或尺寸.例:
Ifexists(d5)检查零件内是否有d5尺寸.Ifexists("material")检查零件内是否有material参数.evalgraph〔〕计算函数用法:
evalgraph(graph_name,x_value)其中graph_name是指控制图表〔graph〕的名字,要用双引号括起,x_value是graph中的横坐标值。
函数返回graph中x对应的y值。
如sd5=evalgraph(“sec〞,3)evalgraph只是proe提供的一个用于计算图表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上的比例值。
/*后文字并不会参与关系式的运算,可用来描述关系式的意义。
如:
/*Widthisequalto2*heightd1=2*d2五、关系式的分类proe提供了为数不少的关系式,X围涵盖广泛,不过,一般使用者常用的仅其中几种,一如下举三大类分别说明。
该类型通常用于单纯的赋值。
如:
m=2d1=d2*2有时必须加上一些判断语句,以适合特定的情况,其语法是:
if……endifif……else……endif如:
〔1)if……endififd2>=d3 length_A=100endififvolume=50&area<200diameter=30endif〔2)if……else……endififA>10type=1ifB>8type=2endifelsetype=0endif在设计时,有时需要借助系统求解一些方程。
在proe中,求解方程的语法是:
solve……for。
假如解不止一组,系统也仅能返回一组结果。
如:
r_base=70radtodeg=180/piA=0solveA*radtodeg-atan(A)=trajpar*20forAd3=r_base*(1+A^2)^0.5area=100perimeter=50solved3*d4=area2*(d3+d4)=perimeterford3,d4六、如何添加关系单击主菜单“工具〞——“关系〞,即可打开关系对话框
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25800¬humb=yes(49.55KB)
2008-12-1220:
56
下面以实例说明如何使用参数和关系创建参数化零件
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25801¬humb=yes(16.64KB)
2008-12-1220:
57
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25802¬humb=yes(17.29KB)
2008-12-1220:
57
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25803¬humb=yes(16.94KB)
2008-12-1220:
57
1、新建零件:
gear2、设置尺寸参数单击菜单“工具〞——参数,在参数对话框中添加尺寸的各个参数,如如下图所示
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25806¬humb=yes(45.01KB)
2008-12-1221:
03
3、绘制齿轮根本圆选取FRONT平面为草绘平面,单击草绘按钮,进入到二维草绘,在草绘平面内绘制认知尺寸的四个同心圆,确定,退出草绘模式。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25807¬humb=yes(26.97KB)
2008-12-1221:
03
4、创建齿轮关系式,确定齿轮尺寸
(1)在“工具〞主菜单项选择取“关系〞选项,打开关系对话框
(2)在关系对话框中分别添加齿轮的分度圆直径、基圆直径、齿根圆直径以与齿顶圆直径的关系式〔如如下图所示〕,通过这些关系式以与的参数来确定上述参数的数值。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25808¬humb=yes(37.33KB)
2008-12-1221:
03
(3)接下来将参数与图形上的尺寸相关联。
在图形上单击选择尺寸代号,将其添加到【关系】对话框中,再编辑关系式,添加完毕后的【关系】对话框如如下图所示,其中为尺寸sdO、sdl、sd2和sd3新添加了关系,将这四个圆依次指定为基圆、齿根圆、分度圆和齿顶圆。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25809¬humb=yes(46.63KB)
2008-12-1221:
03
(4)在【关系】对话框中单击确定按钮,系统自动根据设定的参数和关系式再生模型并生成新的根本尺寸。
最终生成如如下图所示的标准齿轮根本圆。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25810¬humb=yes(15.97KB)
2008-12-1221:
03
5、创建齿轮轮廓线〔1)在右工具箱中单击“基准曲线〞按钮打开【曲线选项】菜单,在该菜单中选择【从方程】选项,然后选取【完成】选项。
〔2)系统提示选取坐标系,在模型树窗口中选择当前的坐标系,然后在【设置坐标类型】菜单中选择【笛卡尔】选项。
系统打开一个记事本编辑器。
(3)在记事本中添加如如下图所示的渐开线方程式,完成后依次选取【文件】/【保存】选项保存方程式,然后关闭记事本窗口。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25812¬humb=yes(41.45KB)
2008-12-1221:
11
〔4)单击【曲线:
从方程】对话框中确实定按钮,完成齿轮单侧渐开线的创建。
生成如如下图所示的齿廓曲线
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25813¬humb=yes(16.7KB)
2008-12-1221:
1〔5)创建基准点PNTO。
在右工具箱中单击“基准点〞按钮打开【基准点】对话框,选择如下图1所示的两条曲线作为基准点的放置参照(选择时按住CTRL键),〔图2〕,创建的基准点最终如如下图3所示。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25814¬humb=yes(13.75KB)
2008-12-1221:
11
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25815¬humb=yes(16.41KB)
2008-12-1221:
11
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25816¬humb=yes(11.25KB)
2008-12-1221:
11
〔6)创建基准轴A-l。
在右工具箱中单击“基准轴〞按钮打开【基准轴】对话框,选取TOP和RIGHT基准平面作为放置参照(选择时按住CTRL键),如如下图所示。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25817¬humb=yes(18.33KB)
2008-12-1221:
11
〔7)创建基准平面DTMl。
在右工具箱中单击基准平面按钮打开【基准平面】对话框,选取前面已经创建的基准点PNT0和基准轴A-1作为参照(选择时按住CTRL键)。
创建如下图所示的基准平面
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25818¬humb=yes(24.38KB)
2008-12-1221:
11〔8)创建基准平面DTM2。
在右工具箱中单击基准平面按钮打开【基准平面】对话框,在参照中选择基准平面DTMl和基准轴A_1作为参照(选择时按住CTRL键),然后在【旋转】文本框中输入“-360/(4*z)〞,如如下图所示。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25819¬humb=yes(13.67KB)
2008-12-1221:
11
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25820¬humb=yes(25.95KB)
2008-12-1221:
11
〔9)在【工具】主菜单中选取【关系】选项打开【关系】对话框,在模型树单击上一步创建的“DTM2〞基准平面,此时将显示如下列图的角度参数(本实例中为d6),单击该尺寸将其添加到关系对话框,并完成关系式“d8=360/(4*z)〞,如如下图所示。
关闭【关系】对话框。
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25821¬humb=yes(31.55KB)
2008-12-1221:
11
〔10)镜像渐开线。
在工作区中选取已创建的渐开线齿廓曲线,然后单击右工具箱中的“镜像〞按钮,选择基准平面DTM2作为镜像平面,镜像渐开线后的结果如如下图
c:
\iknow\docshare\data\cur_work\.proewildfire\attachment.php?
aid=25826¬humb=yes(20.14KB)
2008-12-1221:
20
6、创建齿顶圆实体特征
(1)在右工具箱中单击拉伸按钮,打开设计图标板,在图标板中单击定义放置打开【草绘】面板,单击“定义〞按钮打开【草绘】对话框,选择基准平面“FRONT〞作为草绘平面,其他设置承受系统默认参数,最后单击“草绘〞钮进入二维草绘模式。
(2)在右工具箱中单击“通过边创建图元〞