PROE(BOM)制作

发布时间:2011-07-01 21:17:27   来源:文档文库   
字号:

ProE WildFire工程图教程(Drawing)系列:明细表(BOM)制作之一

【概述】:

本系列教程详细讲解了在ProE WildFire中定制明细表(BOM)的各个控制属性和方法,通过本系列教程的学习,用户可以实现明细表和球标的自由定制。

重复区域(Repeat Region

所谓的重复区域(Repeat Region),就是表中用户指定的变量填充的部分,这部分会根据相关模型所含的数据量的大小相应的进行展开或收缩以显示所有符合条件的数据。重复区域的信息是由基于文本的报表符号来决定的,它们以文本的形式填充到重复区域内的表格中。

动态展开收缩是重复区域的最大特点,例如重复区域相关的装配有20个零件的话,在区域的一个表格内输入asm.mbr.name,那么在表更新的时候表会自动展开成20行以便为每个零件创建一个对应的单元格。

下面我们来看一个简单的例子:假设我们有一个表如下图所示,其中底下第一行就是重复区域,区域中的各个单元格的报表符号如图所示。

那么当表更新的时候,它的展开应该类似下图所示

正是因为重复区域的这个重要特性,所以非常适用于用来自动生成装配的BOM表。

指令位置:Table?Repeat Region…(重复区域)

在表中可以创建重复区域,当然也可以对重复区域进行各种处理,具体的菜单项及作用如下图所示:

? Add(添加)--创建一个重复区域

? Remove(移除)--删除一个重复区域

? Model/Rep(模型/简化表示)--设定区域相关的模型和表示

? Column Model/Rep—设定数量列对应的模型和表示

? Attributes(属性)--设定重复区域的各项属性

? Flat/Rec Item(平铺/递归 项目)--设定单个项目的平铺和递归

? Filters(过滤)--设定重复区域的过滤规则或单个项目

? Sort Regions(排序)—设定区域内容的排序方法

? Comments(注释)—设定重复区域内的注释列

? Indentation(缩进)--设定区域不同级别间的项目的缩进量

? Dash Item(省略项)

Fix Index(固定索引)--设定项目的索引号

? Summation(求和)—对特定项进行求和

? Relations(关系)-添加或修改报表关系

? Update Tables(更新表)

? Switch Syms(切换符号)--在符号和值之间进行切换。

Add(添加)区域

重复区域有两种,根据展开的方式来分类:Simple(简单)和Two-D(2D),简单报表(Simple)只向表的上下方向展开(单方向展开),而2DTwo-D)重复区域则同时在上下和左右两个方向展开,一般用于族表零件。

简单重复区域(Simple)的创建

简单重复区域的创建比较简单,你只需要分别点击定义区域的两个对角单元格就行了。简单的(Simple)重复区域可以由多行构成,不过一般来说都是单行的。

这样你的重复区域表格就创建好了,现在你在其中的一个表格中双击一下,就会看到系统并不是象一般的表格那样弹出一个Text Style的对话框而是一个报表符号(Report Symbol)的对话框。

对话框中的项目就是报表符号(Report Symbol),所谓的报表符号,其实就是一个参数,这个参数会自动根据对应的模型更新它的值,不同的模型有不同的对应值

你看到的符号右边有…的就表明这个符号有子项可以展开。报表符号分为下面的几大类:

asm---有关装配的信息

dgm…-

fam…-有关族表的信息

harn…-有关电缆的参数信息

lay…-有关layout的信息

mbr…-有关单个元件的信息

mdl…-有关单个模型的信息

mfg…-有关mfg的信息

prs…

rpt…-有关重复区域的信息

weldasm…有关焊接装配的信息

尽管报表符号有很多,但是常用的也不算太多,记住下面的这些足以应付你的一般工作:

asm.mbr.name 装配中的成员名称

asm.mbr.type 装配中的成员类型(AssemblyPart

asm.mbr.(user defined) 装配中的成员的用户自定义参数

rpt.index 报表的索引号

rpt.qty 报表中的成员数量

rpt.level 报表中的成员所处的装配等级

rpt.rel.(user defined) 报表关系中的用户自定义参数

fam.inst.name 族表的实例名

fam.inst.param.name 族表实例的参数名

fam.inst.param.value 族表实例的参数值

如下图的重复区域,区域内表格单元的报表符号分别是:rpt.index, asm.mbr.name,asm.mbr.VENDOR,rpt.qty.其中的VENDOR就是一个自定义参数,用来表示供应商的。

那么这样的重复区域展开后就会类似下面一样

TWO-D2D)重复区域的创建

2D重复区域因为有两个方向的展开,所以相对创建也复杂些。首先我们来看一个典型的2D展开重复区域:

对于带族表的零件来说,我们要用一个表格来查看所有实例的尺寸信息。那么我们来考虑一下这个表的结构:首先对于每个实例来说,都和普通模型有一样的参数和不同的参数值,每个参数值都有对应的实例和参数名。对于创建者来说,如果逐个添加实例的参数的话不但麻烦而且当参数发生改变时表就失去了意义,重复区域如果能自动检索族表中的所有参数并展开的话这个问题就解决了。因为实例的展开和实例参数的展开是互不相关的,换句话说便是2维的。明白2D重复区域的特点,再来看它的创建过程就容易明白多了。

首先创建一个2X2的表格。然后在Table菜单中选择Repeat Region(重复区域)>Add(添加)>Two-D 以创建一个2D重复区域。当提示 "Locate corners of the Region(选择区域的角点)"时首先选择 A D. 然后在提示"Select a cell to set the upper border of the row & column subregions"时选择单元格 D。这样就创建了一个向下和向右展开的2D表格。对于不同的表格展开规则,按照下面的选择方法来进行选择:

如果表格:

? 降序(Descending)和右向,选择单元格A D

? 降序(Descending)和左向,选择B C

? 升序(Ascending)和左向,选择D A

? 升序(Ascending)和右向,选择C B

当提示"Select a cell to set the upper border of the row and column subregions"时则按下面规则来选择:

如果表格是:

? 降序(Descending)和右向,选择D

? 降序(Descending)和左向,选择 C

? 升序(Ascending)和左向,选择A

? 升序(Ascending)和右向,选择B

或许这样看你觉得晕,其实规则很简单,你只需要记住:先点击要两方向展开的单元格的对角格一次,然后再点击要两方向展开的单元格两次便可。

如本例中,显然D是要两个方向展开的单元格,所以首先要点D的对角也就是A,然后在点击两次D便可。

单元格中报表符号的输入也按照展开的方式来输入:首先在两个方向展开的单元格内输入对应的报表符号,如:fam.inst.param.value(族表实例的参数值)。然后输入它在行上和列上的对应格的报表符号,如果行:fam.inst.name,列:fam.inst.param.name便可。

上面的重复区域展开后应该类似如下所示,注意实例名和参数值的对应:

Model/Rep(模型/简化表示)

在重复区域中,你可以设定重复区域所关联的模型和简化表示。首先选择Model/Rep,然后点击一个重复区域就会弹出一个对话框,在对话框中你可以选择你想关联的模型。

如果所关联的模型中有简化表示的话,在选定文件后就会弹出选择简化表示的对话框。选择你想采用的简化表示。Ok后完成,重复区域就会自动采用选择的模型和简化表示来更新。

简化表示中所排除的成员将不会在重复区域中显示或累加数目。

通常用于同一个表内有多个重复区域分别对应不同的子装配的情况。

Column Model/Rep(列模型/简化表示)

使用Column Model/Rep选项可以指定使用报表符号rpt.qty的列的关联模型和简化表示,当指定模型或简化表示后,那么对应的成员的数目将不再按重复区域的装配中的成员数目计算,而是按照指定的模型和简化表示中所包含的成员数目计算。

根据它的作用不难知道它只能对那些使用rpt.qty作为报表符号的重复区域中的列才能使用。

属性(Attribute

重复区域的属性只要有下面的几组,每一组中只能选一项作为属性之一:

? 重复性

Duplicates:重复,重复的成员当作独立的成员处理

No Duplicates:无重复,所有重复的成员当作一个成员的成员累加计数

No Dup/Level:无重复/级别,只有同一装配等级的重复成员当作一个成员并累加计数。

? 展开方式

Recursive:递归,展开装配内的所有等级子装配

Flat:平铺,只展开模型的下一级成员

? 最小重复数

Min Repeats:最小重复数,设定所选的重复区域的可能最小重复数

? 索引方法

Start Index:起始索引,把当前重复区域的索引起始号设为紧接另一个重复区域的终止索引号。

No Start Idx:无起始索引号,当前重复区域的索引号从1开始

? 丢失零件球标的附着方式

Bln By Part:丢失的零件的球标附着到丢失零件上

Bln By Comp:丢失的零件的球标附着到所在的成员上

? 缆信息的显示

Cable Info:显示缆信息

No Cbl Info:不显示缆信息

下面来看一下它们对重复区域的影响,如下图,我们要创建和Razor装配相关联的重复区域,对于RAZOR装配,它由两个子装配组成,razor_bodyrazor_head.而这两个子装配下还有它们自己的零件和子装配。看到这里,不知道大家明白元件componentpart之间的区别没?其实很简单,component是装配的一个组成部分,它可以是零件part也可以是子装配,对于razor来说,razor_bodyrazor_head就是它的元件。而零件part就是指单一的文件。对于这个装配我们建立的重复区域和对应的报表符号如下图所示:

首先用FlatDuplicates属性,你就会得到如左下图的展开,这是因为Flat 属性只展开装配的下一级成员,二razor的下一级成员只有razor_bodyrazor_head,所以展开后便只有这两项,因为使用了Duplicates表明相同成员单独处理,所以成员数目这栏没有意义为空。然后改为FlatDup/LevelFlatNo Dup/Levl的话,就会得到右下图的展开,因为这时所有重复的元件当作一个处理并累加数目,所以现在的元件数目就有意义了,当然现在也只有一个。

一般来说,我们的重复区域更关心具体的零件Part的情况,这时就要把Flat属性改为Recursive(递归)从而把所有等级的成员都展开以得到所有的成员。如左下图的DuplicateRecusive,你会看到,现在装配内的所有成员都显示出来了,包括所有的零件part和所有等级的子装配(如 razor_body,razor_head,razor等,并且相同的零件都各自占了一行(如零件5_296_026),自然这时元件数目也是没意义的。然后我们把Duplicates改为No Duplicates,你就会看到表格大大缩短了,这是因为,所有相同的零件都变成了只占同一行,并且元件的数目累加。不过,你也要注意到,这时的表格内同样还有所有等级的装配和子装配

我们在来看Start IndexNo Start Index的应用。一个表中可以有多个并列的重复区域的。这样对于一个重复区域的索引就有两种情况了:要么使用自己的索引号从1开始不考虑别的重复区域(No Start Index),要么紧接着另一个重复区域继续索引下去(Start Index)。

我们来看一个具体的例子:

如下图,我们的Razor.asm中有两个子装配Razor_bodyRazor_head.假设我们有个表中有两个并列的重复区域,分别关联这两个子装配(使用Model/Rep指定).使用Flat属性。

这样,你的重复区域现在的展开应该类似于左下图,注意到两个子装配的索引都是独立的从1开始(No Start Index),假设我们要改成右下图所示的展开,Razor_Body的索引号紧接着Razor_head的索引号继续下去。

要达到这样的目的,你可以使用Start Index属性,首先进入Attributes选择Razor_body的重复区域,然后选择Start Index并选择Razor_head重复区域。

这样新的重复区域展开就如右上图所示了。

Flat/Rec Item(平铺/递归 项目)

应用这个选项我们可以把重复区域内的某一项的属性改为平铺(Flat)或递归(Recursive)。这是因为在有的时候我们的某个子装配是外购的准件,所以我们需要把它当作一件在重复区域表中出现,但是重复区域中为了展开所有成员属性已经设为了Recursive,这个时候就可以用这个选项把外购件子装配的展开属性设为Flat。而另一方面,有时候我们的重复区域的属性是Flat的但是对于某个子装配我们想单独展开,这时候我们就要把这个子装配的属性改为递归(Recursive)。如下图,我们沿用上一部的重复区域,重复区域的属性是Flat,但是现在我们想展开inner_mech子装配。

这时我们就可以用Flat/Rec Item来把inner_mech的属性改为Recursive,如右图所示。

现在inner_mech就展开了,不过只是展开下一级而不是展开所有成员,这点重复区域的Recursive的属性的不同之处,使用时候注意。

Filter(过滤)

细心的朋友或许注意到了,我们上面的例子中,重复区域中的成员都是有装配(Assembly)和零件(Part)混合显示的。一般来说,对于BOM表,子装配是不需要显示出来的。我们怎样才能让我们的重复区域中只显示类型为Part的成员呢?答案自然是使用Filter(过滤项)来实现。使用Filter(过滤)选项可以让你控制你的重复区域中的要显示的成员,这也是重复区域中的一个重要和常用的指令。

Filter有两个选项:By Rule(按规则)和By Item(按项目)。

使用By Item方法你可以直接手工选择要过滤掉的项目进行过滤。如下图,当然你也可以把过滤掉的项目重新显示出来。By Item适合于过滤少量的特殊项目。

使用By Rule选项可以让你的过滤更智能化和一般化,过滤规则的表达式基本形式如下:

< Symbol> >

? - 在重复区域有效的任何参数

? - 任何一种运算符 <, ><=, =>== !=

? > - 任何整数、浮点或字符串值

例如:&asm.mbr.type==part

需要注意的是规则在提示符行中的输入和编辑器中的显示不太一样的,在编辑器中的报表符号前没有“&“号,而在提示符行的输入必须带”&“。

过滤器从重复区域排除使用了任一个已过滤参数的记录以及与过滤器定义的约束不匹配的记录。系统省略表中的整个记录,而不只是由过滤器影响的参数。例如,重复区域的过滤器 &asm.mbr.type==part 将忽略对象的所有记录而不是报告中的零件。

注意:如果在两个方向过滤重复区域,则只删除特定单元,而不是整个记录。

过滤器,如 &asm.mbr.material!=steel,将从报告中排除所有带 "steel" 材料参数值(用户自定义)的组件成员的记录。

也可输入能对多个值进行操作的过滤器,例如 &asm.mbr.name==part_a,part_b,part_j,它将从报表中排除“part_a.prt”、“part_b.prt”和“part_j.prt”以外的所有组件成员记录。一行最多可包含 80 个字符。在创建带有多个可接受值的过滤器时,比如前面所述,只能使用运算符 "==" "!="

在重复区域使用带有这些运算符的过滤器时,应注意下列事项:

? 如果在重复区域向多个行添加带有 "==" 运算符的过滤器,所有条目将被遮蔽,且该表显示为空。

? 对带有多个值的运算符 "==",这些值通过 "or" 连接。例如,对于 &asm.mbr.name==part_1,part_2,part_3, 过滤器,重复区域要排除名为 "part_1""part_2" "part_3" 零件以外的所有对象。

? 对带有多个值的运算符 "!=",该值通过 "and" 连接。例如,对于 &asm.mbr.name!=part_apart_bpart_c 过滤器,重复区域将排除名为 "part_a""part_b" "part_c"的零件。

比如对左下图的重复区域,我们现在要排除掉所有的Assembly。那么我们只需要选择By Rule选项然后在提示符行输入下面的规则:

&asm.mbr.type==part

然后更新表格,你就会发现现在的重复区域中只剩下类型为part的成员了。

可以在报告过滤器中使用通配符 (*),但是通配符只允许在使用运算符 "==" "!=" 的过滤器中使用,任何包含 "*" 的其它类型的过滤器都是错误的,并且系统会提示重新键入过滤器。例如,可将通配符用在以下过滤器中:

? &asm.mbr.name==part*

? &asm.mbr.name==*my*, *your*

第一个过滤器将匹配字符串 "part""part1""part_A" "partabcdefg"。第二个过滤器会匹配字符串 "my""this_is_my_assembly""autonomy""not_yours" "your"

如果在过滤器的右侧添加一个反斜杠 (\),系统照字面读取反斜杠后的字符(象其自身一样),而不作为特殊字符。然后,可以过滤星号字符。例如,&asm.mbr.name>=part\* 匹配大于或等于字符串 "part*" 的字符串。

本文来源:https://www.2haoxitong.net/k/doc/b6130d23dd36a32d737581aa.html

《PROE(BOM)制作.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式