[经典]proe族表使用详解本文理论结合实例,详细阐述了proe中族表的应用场合及具体使用方法。
什么是族表族表是很多相似零件(或组件或特征)的集合,这些零件(组件/特征)从结构上看很相似,但在一些细节部份不同,比如尺寸大小或详细特征等。
一个典型的例子就是螺钉、螺母,同一个标准(如GB/T819.1)里,会有多达上百种不同规格,但它们看起来是一样的并且具有相同的功能,所以我们把这上百种规格的螺钉看成是一个零件族。
“族表”(Family Table)中的零件也称表驱动零件。
下图(index.gif)是螺钉族。
图的左面是普通模型,右面是它的实例。
普通模型为父项。
族表的作用:产生和存储大量简单而细致的对象把零件的生成标准化,既省时又省力从零件文件中生成各种零件,而无需重新构造可以对零件产生细小的变化而无需用关系改变模型产生可以存储到打印文件并包含在零件目录中的零件表族表实现了零件的标准化并且同一族表的实例相互之间可以自动互换。
关于族表的许可Pro/ENGINEER模块许可证不同,允许实现的族表内容也不同。
有Pro/FEATURE许可,可以:创建表驱动的自定义组,组特征尺寸可以是表驱动的、不变的或可变的。
向零件“族表”(Family Table)中添加表驱动的组。
基本的Pro/ENGINEER许可,可以:通过向“族表”(Family Table)中添加尺寸创建表驱动零件。
Pro/ASSEMBLY许可,可以:通过添加“族表”(Family Table)子组件、零件名称以及组件尺寸来创建表驱动的组件。
族表结构族表,本质上是用电子表格来管理模型数据,它的外观体现也是一个由行和列组成的电子表格。
还是用螺钉来说,GB/T819.1里的上百种螺钉,外形都是一样的,只是尺寸有变化,比如螺纹规格、螺钉总长、螺纹长等等,在标准里,是这样描述这些数据的:我们把这个表格变换一下,变成下面这样(部份数据):(2.gif)这个表里,第一行是表头,列出了各列的抬头,第二行起,每一行是一个规格的螺钉的具体尺寸,也就是说,每一行是一个具体的螺钉规格,我们称之为一个实例,第一列是所有规格的螺钉的规格名,从每二列开始,每一列都是螺钉的一个尺寸参数的取值,我们称之为一个项或列。
现在,我们建一个螺钉的模型,模型先随便用一个实例的参数来建,比如用M3x5的参数。
建好后再建一个族表,将这个模型里的对应于上表的那些尺寸都加入到族表里,再把各个实例都加入表族表,最后的族表结构如下:(4.gif)可见,族表就是一个简单的电子表格。
在这个电子表格里,表头的p、d、l、Dk、k等就是各个实例里要变化的项的代号,这些项最常见的是尺寸,也可以是特征、零件、参数、符号、阵列表、UDF等等。
表头列就是每一个实例的名字,对第一个实例,它的名字就是模型的名字,这是不能在族表里改变的,其它的实例的名字,都是在族表里命名和修改的。
第一个实例,实际就是当前模型,是所有其它实例的父模型,第一行里的所有项的值,也是直接调入当前模型的当前值(要修改也只能直接修改模型而不能修改第一行里各个项的值),其它所有实例的各个项的值,都是根据实际需要确定多层族表上一节的族表(4.gif)是用一个表来管理所有数据。
但我们可以看到,这个表里有些实例的某些项的取值是相同的,比如M3x4/M3x5/M3x6/M3x8/M3x10这五个实例,除了总长L这一项取值不同外,其它各项的值都是一样的,M2x5/M3x5/M4x5这三个实例相互之间差别比较大,但也有一个相同取值的项。
所以,我们可以再变换一下,见下图(5.gif):在这个表里,只取了四个项,用这四个项将全部M2的规格合为一个实例,全部M3的规格合为一个实例,合部M4的规格合为一个实例。
余下总长L这一项在这个表里不存在。
接下来分别做这样三个表(6.gif:这三个表分别与前一表(5.gif)中的实例M2、M3、M4相关联,在Excel里,就是建一个链接,在proe里,就是打开M2实例,在此实例里再建一个族表,族表内容即是上图的M2这个表(M3、M4同理)。
这就是族表的层级,实例M2、M3、M4所在族表为父族表,其它三个族表是它的子族表。
同理,子族表还可以有它的子族表,父族表也还可以有它的父族表,也就是说,族表可以多级级联,见下图(7.gif):但要注意:同一个对象(同一尺寸/参数/特征/参数表/UDF/元件…)只能出现在同一分枝的同一级的族表里。
比如尺寸K,它出现于二级族表1中,那么,在二级族表1的所有实例中定义的三级族表(及这些族表的实例中定义的更下级族表)里就不能再使用它,重定义其上级族表(及更上级族表)也不能再使用它;但如果它所依附的特征在定义二级族表K的实例K里存在并且它没在二级族表K中出现,那么它可以出现于二级族表K(或这个族表的实例所定义的某级下级族表)里。
创建族表1.创建一个普通模型,作为原始模型来使用。
2.创建族表:(2001):零件(组件)----族表;(WF):工具----族表。
进入族表编辑器,如下图(8.gif,2001、WF同一界面):3.加入项,点上图第二个彩色按钮(增加/删除表列),进入项目选取窗口,如下图(9.gif,2001、WF同一界面):选取一个项目类型,再选取相应项目加入项目列表里。
如果选错了,点减号按钮将其从项目列表里去掉。
选择完毕点“确定”返回族表编辑器。
注意:族表编辑器里各个列项的排列,是根据选取的顺序排列的,所以最好选取时把相关项挨着选在一起,以免数据乱七八糟;并且最好给各个项对应的对象(尺寸、特征等)取个有点实际意义的名字,这些名字将在族表编辑器的表头里显示出来,便于以后的数据管理。
4.加入实例行:点第2步图(8.gif)上的第一个彩色按钮(在所选行插入新的实例),编辑器里增加多个行,如下图(10.gif):5.输入各新实例数据,把每一个实例对应的各个项的取值输入到表里。
“实例名”对应的那一列是每个实例的名字,在此为每个实例取个名字,将来用这个名字来调用这个实例。
各个项输入的值,如果与第一行(原始模型的数据)的值相同,那么可以用一个星号(*)代替。
注意一个细节:如果某个项是阵列的阵列数,那么子项取值为0的话,与用星号同效果(PTC的帮助上说的是取值为0的话,实例连阵列的原始特征都不生成,与软件的实际情况不同)。
6.输入完毕,校验实例。
点上图右起第二个按钮(校验族的实例)。
系统即开始运算,尝试生成每一个实例。
校验完毕如果没有实例生成失败,族表定义就可以结束了,点工具栏上的小眼镜图标(预览选定实例)会弹出一个小窗口,可以预览实例的最后形状,点“打开”可以在一个新窗口里打开一个实例;如果有实例校验失败,一般来说是此实例的某些项的取值有误,影响了模型的生成,需要检查此实例的各项取值,修正错误。
注:尺寸、参数、元件、特征的加入族表,都按上述过程加入即可,选取类型后,会有提示选取具体的尺寸、参数、元件、特征,“元件”是只有在组件里才可用的。
其它类型的加入族表及其管理,请参考后文。
公差的使用与尺寸相同,如果尺寸有公差,开启公差显示,即可将公差当普通尺寸一样选取中入族表。
创建多层族表1.创建原始模型。
2.规划数据管理。
根据原始模型的建模手法和各实例的具体变化,确定哪些项(尺寸、参数、特征、零件…)要用族表进行管理,再根据各个项的变化情况确定哪些项放在第一级族表里,哪些项放在第二级族表里,如果数据很多,还可能要规划哪些放在第三级族表里(或更多级族表)。
因为同一个项只能出现在族表树的某一个层级里,所以一个项位于哪个层级一定要规划好,否则后期数据录入量会很大,尽可能的把取值重复较多的项放在靠前的层级里。
例如原始模型里有A、B、C、D、E五个尺寸,五个尺寸项取值组合共生成100个实例,那么如何规划族表呢?方案A:只用一级族表,那么每个尺寸取值都要录入100次,需要输入数据5x100=500次。
方案B:经分析后发现100个实例中A、B、C这三个尺寸组合重复较多,其不同组合只有5种,那么把A、B、C放在第一级族表,D、E放在第二级族表,则A、B、C这三个尺寸取值各只需录入5次,D、E这两尺寸还是需要各录入100次,总共需要输入数据5x3+100x2=215次。
方案C:分析后也发现,100个实例中B、E这两个尺寸组合重复更多,其不同组合只有2种,那么把B、E放在第一级族表,A、C、D放在第二级族表,则B、E这两个尺寸取值各要录入2次,A、C、D这三个尺寸各要录入100次,总共需要输入数据2x2+100x3=304次。
从以上的分析可以看到,不同的规划,数据录入量是差很远的。
所以,在建族表之前先分析一下数据,确定一个较好的族表方案是很重要的,特别是在有大量实例的情况下。
好的族表分级管理规划,不仅能大大减少数据录入量,降低错误发生率,还能为查找实例提供一个清晰明朗的指引,便于检索实例与修改数据。
3.建立第一级族表。
4.在族表编辑器里,选取第一级族表的某一个实例行,“插入”---“实例层表”,系统打开一个新的族表编辑器,按照上一节创建单层族表的步骤创建属于这个实例的二级族表。
同理,创建其它实例的二级族表。
创建完后,在原始模型里看到的族表编辑器如下:(12.gif)可以看到,带有子族表的实例行前都有一个文件夹标记,不带子族表的实例行前是没有的。
要查看子族表的内容,可以在工具栏“查找”的实例列表(这里只显示带有子族表的实例名)里找到那个子族表所依附的实例名并将其设为当前实例(默认情况下是本级族表的原始实例名,对第一级族表,就是原始模型名)。
5.多层族表的第二种创建方法:在建立了第一级族表后,选中要加入子族表的实例,打开它,系统在一个新窗口打开所选实例,接下来在此窗口里按照上一节创建单层族表的步骤创建一个新族表,所创建的新族表就是依附于此实例的二级族表。
更多层级族表创建同理。
参考模型:GBT819_1.rar(装配体中所有元件被隐含,先打开零件再打开装配体反隐含)修改族表内容1.方式一:直接修改族表。
也就是打开族表编辑器,直接修改族表里各实例的值。
要注意一下的是星号(*)的使用,星号表示所选实例的这个项的取值与原始模型的值相同,如果原始模型变化,那么,实例也跟着变化,如果不想实例跟着原始模型变化,就不要使用星号。
另外,对于阵列数这种尺寸值,实例里取值也可以是0(直接修改模型不可以是0的!),但如果取0的话,实际效果也是星号的效果。
族表里的数值型项的取值,必须是一个确定的数值或星号(*),不能是一个范围或变量名;特征、元件、组、参照元件、合并零件、UDF等项的取值,可以是“Y”、“N”、“*”或这个元素(无件、参照元件、合并零件、UDF)所带的子族表中的各个实例的实例名。
族表里原始模型的各项值只能在模型窗口修改模型来实现,不能在族表里修改(也有例外,见下文)。