【概述】:本系列教程详细讲解了在ProEWildFire中定制明细表(BOM)的各个控制属性和方法,通过本系列教程的学习,用户可以实现明细表和球标的自由定制。重复区域(RepeatRegion)所谓的重复区域(RepeatRegion),就是表中用户指定的变量填充的部分,这部分会根据相关模型所含的数据量的大小相应的进行展开或收缩以显示所有符合条件的数据。重复区域的信息是由基于文本的报表符号来决定的,它们以文本的形式填充到重复区域内的表格中。动态展开收缩是重复区域的最大特点,例如重复区域相关的装配有20个零件的话,在区域的一个表格内输入asm.mbr.name,那么在表更新的时候表会自动展开成20行以便为每个零件创建一个对应的单元格。下面我们来看一个简单的例子:假设我们有一个表如下图所示,其中底下第一行就是重复区域,区域中的各个单元格的报表符号如图所示。那么当表更新的时候,它的展开应该类似下图所示正是因为重复区域的这个重要特性,所以非常适用于用来自动生成装配的BOM表。Repeat指令位置:TableRegion…(重复区域)在表中可以创建重复区域,当然也可以对重复区域进行各种处理,具体的菜单项及作用如下图所示:Add(添加)--创建一个重复区域Remove(移除)--删除一个重复区域Model/Rep(模型/简化表示)--设定区域相关的模型和表示ColumnModel/Rep—设定数量列对应的模型和表示Attributes(属性)--设定重复区域的各项属性Flat/RecItem(平铺/递归项目)--设定单个项目的平铺和递归Filters(过滤)--设定重复区域的过滤规则或单个项目SortRegions(排序)—设定区域内容的排序方法Comments(注释)—设定重复区域内的注释列Indentation(缩进)--设定区域不同级别间的项目的缩进量DashItem(省略项)――符号值用”-“代替(对rpt.index和qty)FixIndex(固定索引)--设定项目的索引号Summation(求和)—对特定项进行求和Relations(关系)-添加或修改报表关系UpdateTables(更新表)SwitchSyms(切换符号)--在符号和值之间进行切换。Add(添加)区域重复区域有两种,根据展开的方式来分类:Simple(简单)和Two-D(2D),简单报表(Simple)只向表的上下方向展开(单方向展开),而2D(Two-D)重复区域则同时在上下和左右两个方向展开,一般用于族表零件。简单重复区域(Simple)的创建简单重复区域的创建比较简单,你只需要分别点击定义区域的两个对角单元格就行了。简单的(Simple)重复区域可以由多行构成,不过一般来说都是单行的。这样你的重复区域表格就创建好了,现在你在其中的一个表格中双击一下,就会看到系统并不是象一般的表格那样弹出一个TextStyle的对话框而是一个报表符号(ReportSymbol)的对话框。对话框中的项目就是报表符号(ReportSymbol),所谓的报表符号,其实就是一个参数,这个参数会自动根据对应的模型更新它的值,不同的模型有不同的对应值你看到的符号右边有…的就表明这个符号有子项可以展开。报表符号分为下面的几大类:asm…---有关装配的信息dgm…-fam…-有关族表的信息harn…-有关电缆的参数信息lay…-有关layout的信息mbr…-有关单个元件的信息mdl…-有关单个模型的信息mfg…-有关mfg的信息prs…rpt…-有关重复区域的信息weldasm…有关焊接装配的信息尽管报表符号有很多,但是常用的也不算太多,记住下面的这些足以应付你的一般工作:asm.mbr.name装配中的成员名称asm.mbr.type装配中的成员类型(Assembly或Part)asm.mbr.(userdefined)装配中的成员的用户自定义参数rpt.index报表的索引号rpt.qty报表中的成员数量rpt.level报表中的成员所处的装配等级rpt.rel.(userdefined)报表关系中的用户自定义参数fam.inst.name族表的实例名fam.inst.param.name族表实例的参数名fam.inst.param.value族表实例的参数值如下图的重复区域,区域内表格单元的报表符号分别是:rpt.index,asm.mbr.name,asm.mbr.VENDOR,rpt.qty.其中的VENDOR就是一个自定义参数,用来表示供应商的。那么这样的重复区域展开后就会类似下面一样TWO-D(2D)重复区域的创建2D重复区域因为有两个方向的展开,所以相对创建也复杂些。首先我们来看一个典型的2D展开重复区域:对于带族表的零件来说,我们要用一个表格来查看所有实例的尺寸信息。那么我们来考虑一下这个表的结构:首先对于每个实例来说,都和普通模型有一样的参数和不同的参数值,每个参数值都有对应的实例和参数名。对于创建者来说,如果逐个添加实例的参数的话不但麻烦而且当参数发生改变时表就失去了意义,重复区域如果能自动检索族表中的所有参数并展开的话这个问题就解决了。因为实例的展开和实例参数的展开是互不相关的,换句话说便是2维的。明白2D重复区域的特点,再来看它的创建过程就容易明白多了。首先创建一个2X2的表格。然后在Table菜单中选择RepeatRegion(重复区域)Add(添加)Two-D以创建一个2D重复区域。当提示LocatecornersoftheRegion(选择区域的角点)时首先选择A和D.然后在提示Selectacelltosettheupperborderoftherow&columnsubregions时选择单元格D。这样就创建了一个向下和向右展开的2D表格。对于不同的表格展开规则,按照下面的选择方法来进行选择:如果表格:•降序(Descending)和右向,选择单元格A和D•降序(Descending)和左向,选择B和C•升序(Ascending)和左向,选择D和A•升序(Ascending)和右向,选择C和B当提示Selectacelltosettheupperborderoftherowandcolumnsubregions时则按下面规则来选择:如果表格是:•降序(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,然后点击一个重复区域就会弹出一个对话框,在对话框中你可以选择你想关联的模型。下载(76.56KB)2007-6-1220:22如果所关联的模型中有简化表示的话,在选定文件后就会弹出选择简化表示的对话框。选择你想采用的简化表示。Ok后完成,重复区域就会自动采用选择的模型和简化表示来更新。简化表示中所排除的成员将不会在重复区域中显示或累加数目。通常用于同一个表内有多个重复区域分别对应不同的子装配的情况。ColumnModel/Rep(列模型/简化表示)使用ColumnModel/Rep选项可以指定使用报表符号rpt.qty的列的关联模型和简化表示,当指定模型或简化表示后,那么对应的成员的数目将不再按重复区域的装配中的成员数目计算,而是按照指定的模型和简化表示中所包含的成员数目计算。根据它的作用不难知道它只能对那些使用rpt.qty作为报表符号的重复区域中的列才能使用。属性(Attribute)重复区域的属性只要有下面的几组,每一组中只能选一项作为属性之一:重复性Duplicates:重复,重复的成员当作独立的成员处理NoDuplicates:无重复,所有重复的成员当作一个成员的成员累加计数NoDup/Level:无重复/级别,只有同一装配等级的重复成员当作一个成员并累加计数。展开方式Recursive:递归,展开装配内的所有等级子装配Flat:平铺,只展开模型的下一级成员最小重复数MinRepeats:最小重复数,设定所选的重复区域的可能最小重复数索引方法StartIndex:起始索引,把当前重复区域的索引起始号设为紧接另一个重复区域的终止索引号。NoStartIdx:无起始索引号,当前重复区域的索引号从1开始丢失零件球标的附着方式BlnByPart:丢失的零件的球标附着到丢失零件上BlnByComp:丢失的零件的球标附着到所在的成员上缆信息的显示CableInfo:显示缆信息NoCblInfo:不显示缆信息下面来看一下它们对重复区域的影响,如下图,我们要创建和Razor装配相关联的重复区域,对于RAZOR装配,它由两个子装配组成,razor_body和razor_head.而这两个子装配下还有它们自己的零件和子装配。看到这里,不知道大家明白元件component和part之间的区别没?其实很简单,component是装配的一个组成部分,它可以是零件part也可以是子装配,对于razor来说,razor_body和razor_head就是它的元件。而零件part就是指单一的文件。对于这个装配我们建立的重复区域和对应的报表符号如下图所示:首先用Flat,Duplicates属性,你就会得到如左下图的展开,这是因为Flat属性只展开装配的下一级成员,二razor的下一级成员只有razor_body和razor_head,所以展开后便只有这两项,因为使用了Duplicates表明相同成员单独处理,所以成员数目这栏没有意义为空。然后改为Flat,Dup/Level或Flat,NoDup/Levl的话,就会得到右下图的展开,因为这时所有重复的元件当作一个处理并累加数目,所以现在的元件数目就有意义了,当然现在也只有一个。一般来说,我们的重复区域更关心具体的零件Part的情况,这时就要把Flat属性改为Recursive(递归)从而把所有等级的成员都展开以得到所有的成员。如左下图的Duplicate,Recusive,你会看到,现在装配内的所有成员都显示出来了,包括所有的零件part和所有等级的子装配(如razor_body,razor_head,razor等,并且相同的零件都各自占了一行(如零件5_296_026),自然这时元件数目也是没意义的。然后我们把Duplicates改为NoDuplicates,你就会看到表格大大缩短了,这是因为,所有相同的零件都变成了只占同一行,并且元件的数目累加。不过,你也要注意到,这时的表格内同样还有所有等级的装配和子装配――毕竟这些也是razor的元件啊。我们来看一个具体的例子:如下图,我们的Razor.asm中有两个子装配Razor_body和Razor_head.假设我们有个表中有两个并列的重复区域,分别关联这两个子装配(使用Model/Rep指定).使用Flat属性。这样,你的重复区域现在的展开应该类似于左下图,注意到两个子装配的索引都是独立的从1开始(NoStartIndex),假设我们要改成右下图所示的展开,Razor_Body的索引号紧接着Razor_head的索引号继续下去。要达到这样的目的,你可以使用StartIndex属性,首先进入Attributes选择