ProE阵列教程

ProE阵列教程
ProE阵列教程

ProE阵列教程详细讲解篇(Pattern)

作者:IceFai

所谓阵列,是通过复制导引特征以生成大量有规律排布的相同或类似的结果几何.一般是用于表面花纹的生成.

从2001到wildfire,ProE的阵列功能有了长足的改进,变得更自由和强大。在WildFire中,可以选择的阵列方式有下面的几种:

●尺寸阵列(Dimension)

●方向阵列(Direction)

●轴心阵列(Axis)

●填充阵列(Fill)

●表阵列(Table)

●参考阵列(Reference)

要选择适合的阵列方式就要先对各种阵列方式有比较明确的了解,下面我们就对这些阵列进行详细的讲解.在详细的讲解之前,我们先来了解一下各种阵列的基本适合范围,以便先让大家有一个宏观上的了解.

尺寸阵列(Dimension Pattern)是一般的阵列,阵列的方式主要通过导引特征的尺寸发生变化来实现阵列,是应用最广泛的阵列方式,但对阵列的导引特征的尺寸标志以及参考的使用方式要求比较高,初学者容易失败.

方向阵列(Direction),是一种只能沿直线阵列的特殊阵列方式,

也是WildFire新引入的阵列方式,特的缺点自然是只能沿直线针列,优点是对导引特征的尺寸标志和参考使用方法基本无要求.比较方便.

轴心阵类(Axis),和方向阵列类似,轴心阵列对导引特征的标注和参考都基本不做要求,但它是只能做圆周阵列.导引特征沿选定的轴作圆周阵列.

填充阵列(Fill).这是一个比较特殊的阵列方式,也是WildFire新引入的,通过指定一个草绘的阵列区域,ProE就会自动用导引特征根据所给的间隔值以及形状来填满整个区域.

表阵列(Table).这是规则中的不规则.通过应用尺寸表来实现特征的阵列,优点是各个特征的尺寸变化可以无规律,缺点是需要逐个输入.

参考阵列(Reference).这个阵列的产生需要一个前提,也就是阵列的导引特征起码有一个父特征是某个阵列中的一员.这样,特征的阵列就会根据父特征的阵列方式来自动阵列.

1、尺寸阵列(Dimension)

典型的尺寸阵列如下图所示

在尺寸阵列中,只要有下面的几个要素:

●导引特征,也就是要阵列的特征.

●导引尺寸:用来发生改变的尺寸,

●阵列组数:要阵列生成的数目,

●尺寸增量:前后两个阵列实例的尺寸增量

进入阵列的对话框后,如下图所示.激活相应的栏然后选择/添加相应的值便可

需要注意的是同一个方向上允许有多个变化的尺寸值.要添加多个变化尺寸值,你可以在按住Ctrl键的前提下选择多个要作为变化尺寸的尺寸值.比如下图,在第一方向上除了水平距

离发生变化外,柱子的直径也逐渐增大

尺寸阵列中最关键是第一个导引特征的标注以及参考方法,基本上所有尺寸阵列的失败原因都是因为导引特征的问题的.所以要特别注意导引特征的标注方法.比如要阵列左下截面拉伸的特征.假设弦长的增量为0.5,而圆弧的半径维持R1.5不变的话,那么阵列到第四个实例的时候弦长变为3.5,而圆弧直径只有3.0,这样这个截面就会失败从而导致阵列的失败.而同样形状的截面,如果,改为右下图的标注方法,则不管弦长如何变化,阵列都不会失败.

但是你如果用右上图的标注方式进行阵列的话,就会发现,虽然阵列是成功了,但是在阵列方向上随着弦长增加而显得越来越”瘦”了,这个原因很简单,弦长变长了而弧高不变,所以圆弧的半径变化就越来越大,从而显得圆弧越来越瘦了.如右图所示.

如果你想在阵列方向上的圆弧形态基本不变的话又该如何做呢,很显然圆弧的半径要随弦长的增加而作适当的增加.再看下面的标注,是不是比上面的好多了?

通过这个简单的例子,我想大家已经对尺寸阵列的尺寸的重要性有了一定的了解了.下面再看一个比较常见的例子.在一个椭圆上等角度阵列圆柱

初学者很容易就会想到用左下图的标注方法,用中心来确定变化的尺寸角度.

但是很快就发现阵列出来的结果不对-----只有一半,另一半失踪了!如右上图所示,这又是为什么呢?其实,另一半不是失踪了而是和前一半重叠了.这是因为中心线是没有方向性的,也就是说超过180度就回到0度.这样自然没办法实现整周的阵列了.所以要实现整周的阵列就要换一种方法了,我们可以用构造直线段来代替中心线,因为直线段是有方向性的,所以可以实现从0到360度的变化,自然可以实现整周的阵列了.构造直线段在圆周阵列上的用途非常广泛,要善于利用.

还有一种情况的阵列,阵列的实例在阵列过程中基准也会发生角度的变化.一般来说自然也可以用构造直线来实现,但有时草绘会显得复杂些,这时候也可以引入一个在2001中称之为临时基准的方法.如下图的阵列不规则曲线上的均布阵列. 小椭圆间的曲线长度相等,每个小椭圆长轴都垂直在该处的大椭圆

对于这个阵列,有两个问题需要解决:均布,垂直.

不规则曲线上的均布一般用阵列点的方法来解决,也就是在曲线上作一个以长度比例为参考的点,然后用长度比例为增量作阵列.这样两个点之间的曲线长度就达到相等的目的了.

之后的小椭圆只要用参考点阵列就可以了.注意的是选择曲线的时候要用右键查询选择方法以保证选择的是整个椭圆曲线而不是一半。

至于垂直,就要用临时基准的方法.也就是在草绘第一个小椭圆的时候,参考的平面要用过第一个点并垂直于大椭圆(要注意用右键查询选择的方法选择整个椭圆而非一半)的临时创建的基准面.如下图所示。

为了避免在进入草绘的时候选错基准,建议在做第一个点的时候,比例值先设为非零,比如0.1什么的.然后创建完第一个草绘小椭圆后再把这个值改为0,这样就可以把小椭圆和点移到了起点而又不会因不小心选错参考而导致后面的参考失

败.

当第一个点和第一个小椭圆创建后了之后,你可以分开阵列也可以先作一个组在一起阵列.假设你要阵列20个,那么就可以用长度比例为0.05为增量来阵列就是了。

还有一种阵列是所谓的随形阵列,这种阵列是指阵列的某些

边沿着一定的曲线发生变化.

对于这种阵列,只需要在草绘第一个特征的截面的时候注意使用已有的曲线或边界作为参考或图元就行了。

1.1.关系阵列

最后我们来看看尺寸阵列中的最后一个选项:用关系控制增量(Define increment by relation),在ProE中有几个涉及到关系的特征,比如这个阵列,可变扫出,扫描混成,行为建模.这些特征都有一个共性,也就是对初学者都有种神秘的吸引力,但同时也有种神秘的抗拒力.吸引力是因为它的变化多端,抗拒力是对他的关系的陌生感造成的.

要进入阵列关系,首先要把某个阵列增量转化成关系控制.如下图所示

要理解阵列关系,首先就要先理解阵列关系中的各个参数的指代含义.当进入阵列的关系编辑器时候,你就可以看到在前面有一些参数的用法说明.

Memb_v-----就是实例尺寸,也就是阵列的实例特征在这个阵列方向上发生变化后的实际尺寸值,比如上图中假设尺寸6是第一个方向上的阵列变化尺寸,增量是恒为4,那么这个方向上的第四个阵列实例的memb_v值就是6+4*3=18. Memb_i-----就是当前实例对前一个实例的的变化尺寸增量.注意和memb_v的不同是memb_v是绝对尺寸数,memb_i是相对增量.比如某个阵列的尺寸增量恒为4,那么memb_i的值就总是为4.

Lead_v------导引尺寸,也就是第一个阵列特征的用来发生变化的尺寸数,但是在关系中,这个尺寸恒为第一个特征的尺寸数不能改变.比如第一个特征在第一阵列方向上的变化尺寸数值为6.0,那么在所有的阵列过程中,第一方向上的lead_v的

值均为6。

Idx1和Idx2,分别是第一方向和第二方向上的实例索引,也就是代表当前实例在整个阵列中所处的位置.其值都是从0开始,第一个特征idx1和idx2均为0.其它的递增.比如第一方向上的第四个其idx1的值便为3。

阵列的关系是在每个实例的再生时同步计算的,也就是对于阵列中的每一个实例,系统都会根据当前的参数值代入关系中以求得实例的当前尺寸.下面就以一些具体的例子来详细说明一下阵列关系的使用.

例子一:

如下图,我们要阵列下图的小柱子,并且设定了阵列上的关系为

memb_i=4+idx1

这个关系表明阵列的实例的尺寸增量是递增的.第二个对第一个为4+1=5,第三个对第二个的增量为4+2=6……….以此类推,第6个对第5个的增量为4+5=9.

阵列后是这样的.可以看到间距不断增加

要实现相同的结果,你也可以用memb_v的表示方法来写关系,这时候memb_v的关系就要这样写: (实际就是相等于把增量求和再加上导引尺寸数)

Memb_v=lead_v+4*idx1+idx1*(idx1+1)/2

例子二;

假设我们把上面的阵列改为下面所示,在一个阵列方向上同时添加了横竖两个方向的尺寸作为变化尺寸,横方向的增量为恒定6,竖方向为关系

Memb_v=lead_v+sin(idx1*45)*4

这样,阵列出来又会怎样呢

我们先来分析一下关系.

sin(idx1*45)*4表明这个部分的值是作正弦变化,角度变化值

为每个实例增加45度,幅度为+-4; 而lead_v是导引尺寸阵列过程维持不变,在这里是8.所以阵个阵列的变化也比较显然了,是以高度8的水平线作基线作正弦的排布,结果也验证了我们的想法.

例子三:

再看下图的阵列,第一方向为关系阵列5组,第二方向为恒定阵列4组.第一方向上的关系为

if idx2/2==floor(idx2/2)

memb_v=lead_v+idx1*5

else

memb_v=lead_v+idx1*5+2.5

endif

那么这个关系又代表什么呢?首先我们看第一句的判断语句

If idx2/2==floor(idx2/2)

这个语句的实际意义是如果idx2的一半正好等于不到idx2的一半的最大整数的话就进行下面的语句:memb_v=lead_v+idx1*5,否则就执行memb_v=lead_v+idx1*5+2.5.换句话说如果idx2是偶数的话第一排的特征位置就不变,如果是奇数的话就要错位 2.5.(慢慢理解)而增量恒为5.

明白了关系后,我想就很容易想到阵列后的排布是如何了。

基本上,所有可以在ProE中可以用的关系和函数在阵列中都可以用,甚至在某些特殊的用途中我们需要用控制图表来控制阵列的走势,这时候就可以结合evalgraph来控制阵列关系. 例子四:

下面的例子演示如何利用控制图表(graph)来进行阵列.首先我们创建一个名为”pat_gra”的控制图表(graph).注意要在阵列的第一个特征之前创建.

然后创建阵列,在阵列中添加关系:

Memb_v=evalgraph(“pat_gra”,idx1)*4

这个关系表明,在阵列上该尺寸受graph:”pat_gra”所控制,其值是graph是对应的y方向值的四倍。

阵列的结果如下,是不是和控制的graph一致呢?所以,应用是要灵活应用的,有些看起来风牛马不相及的特征联合起来用就会产生令人惊讶的应用.

最后,我们再来可个复杂点的例子.这个例子在WildFire之后可以用填充阵列来完成,但也并不是可以随意控制。在这里引用主要是辅助关系阵列的讲解

例子五.

同心圆环阵列.每层数目递增6个。

首先我们先确定第一个特征(导引特征)的创建,很显然,这个特征起码要有两个可变化尺寸:半径尺寸和角度尺寸.为了这个目的,我们可以创建的截面如下:其中为了能全周阵列,我们用构造直线段来确定角度,并且用构造线段的端点到中心的

距离来确定半径.为了避免在第一个特征出现零直线长度的失败,特意把构造直线反向延长一点距离.画好下面的图后修改4.0的半径为0就可以回到原位并且还保留有这两个变化尺寸,为后续的阵列作好准备。

然后我们开始阵列,用一个方向的阵列就可,为了要确定两个尺寸的阵列关系.对于阵列实例,自然我们要先确定它的半径以及角度.

在进入关系之前,我们先添加两个参数,一个是实数n,一个是整数k,

因为径向是等距的,所以我们只需要知道实例所在是第几圈,比如用k表示,那么半径自然可以用k*8表示(8为径向间距). 而要确定角度,就要知道实例在该圈是第几个和该圈的角度增量.注意到自内到外各圈的小圆柱数目分别为

6*1?6*2?6*3?……?6*n. 那么很显然假设了阵列了完整的k圈后,所有的实例和为k*(k+1)/2*6+1.这样假设我们知道已经阵

列的完整圈数的话,我们就可以用idx1-k*(k+1)/2*6-1来表示该实例在当前圈的第几个.而当圈数确定后,我们就可以知道在当前圈总共有多少个,假设为第k圈,那么当前圈共有k*6个实例,所以角度间距为360/(k*6)=60/k.这样所有的问题便转化为如和确定当前圈数了.

我们又该如何确定圈数呢?

我们可以看看具体的情况,不难算到假设完整阵列了三圈,那么可以知道已经有3*4*3+1=37个实例.而完整阵列了四圈的话就会有4*5*3+1=61个实例.这样我们自然以推断idx1的值在37到60之间的实例都是第四圈的成员.而对于刚好整圈的阵列,都会有idx1=n*(n+1)*3的方程成立.也就是idx1=36的n=3,而idx1=60的话则n=4.那么对idx1在36到60这个范围内的的值n的值就是3到4之间的值.从这里就不能理解当我们解的n*(n+1)*3=idx1这个方程的解时,n的整数部分就是已经阵列完的圈数!这样圈数的确定便可迎刃而解了.在ProE中可以用solve…..for语句来解方程.具体格式如下:

Solve

n*(n+1)/2*6=idx1---------------[要求解的方程]

for n ---------------[要求解的未知数]

但细心的人可能看到我的方程是这样

的:n*(n+1)/2*6+0.5=idx1.为什么我会多加0.5呢?这是因为,对这个方程来说,n的解是无理数,也就是说对于软件来说,得到

的解都是近似的.比如本来应该是4的解或许就只能得到3.999999.这样显然和我们的结果有所偏差,但是我个增加一个小的方程增量的话(这里是0.5)得到的解就会是类似4.01的情况.由于我们只关心整数部分,所以这样做是完全没问题的.

得到n的实数值后,我们就可以用k=floor(n)来提取n的整数部分.那么k+1就是当前圈数.

而idx1-k*(k+1)-1(从0开始)就是该圈的当前序号.剩下的关系就一目了然了。

阵列关系就讲这么多了.要想熟练掌握自然要先掌握关系。

2、方向阵列(Direction)

方向阵列相对比较简单,对第一个特征的参考使用也没什么要求.属于真正的傻瓜式操作.确定方向可以是任何直线元或平面.下图是使用平面(法向

相关主题
相关文档
最新文档