为了简化算法,采用树的双亲存储表示法,将每条线段的信息和父节点存入节点中,程序中自定义节点的数据类型为:
根据该数据类型,创建树并查找从叶子节点出口到根节点入口的路径的具体算法流程,创建树的递归算法流程如图5所示,主要步骤包括:
(1)将所有线段对象存入集合L中,编号为L(l),l={0,1,2…);L(l)两端点分别为P1和P2。
(2)在L中查找线段L(l),使L(l)的P1或P2与入口点重合,即入口点在L(l)上,从集合L中移除L(l),并为树(Linelnfo类型节点的集合Ⅳ)添加根节点N(n),n=0,并为根节点成员变量赋值。
(3)对于树节点N(n),在L中查找所有线段L(l),使L(l)与N(n)所代表的线段相交,L(l)最多有3条,对于每一条L(l),从集合L中移除L(l),为树添加1个节点元素N(n+1)作为N(n)的子节点,并为节点N(n+1)的成员变量赋值,使n=n+1。
(4)对(3)进行递归运算,查找每个子节点,直至节点没有子节点。这样即完成了树的创建,树的所有节点信息存储在集合N中。
(5)创建树完成之后,从叶子节点出口依次查找父节点直至入口根节点,输出该查找路径,即为有效冷却回路,如图5所示。
图5 创建树的递归算法流程
3.2 CAE分析水路自动建模与网格划分
根据从CAD平台中所提取的水路(包括隔板孔)中心线端点信息、直径信息、入口坐标点,在CAE平台中自动实现水路中心线的重新建模,并自动划分柱体单元网格。
以Moldflow平台为例,调用Moldlflow API,以集合N中的点为端点建立线段,即为冷却水路中心线。为每条线段指定“管道”属性,并设置直径。为隔板孔中心线指定“隔水板”属性,并设置直径。在入口坐标点处设置冷却液入口,然后划分柱体单元网格。程序使用到的关键API简要表示如下:
“创建冷却水管属性,并设置直径”:
“根据线段两端点创建直线,并附属性”: