*孔、圆柱、球、旋转体和拉伸体等典型拓扑结构的识别;
*特定几何特征的搜索工具,比如搜索离给定特征点最近的孔等。
在网格模块中(图7),所有的网格划分算法均由基类AMeshAlgo导出,基类声明了生成网格的成员函数。对具体的部件,可以通过定义A-PartMeshAlgo的实例来定义最佳的网格生成方法。全局数据库指针、生成网格的几何体标识、网格的维度以及网格生成算法等信息由AMeshContext这个结构体传给网格生成函数。目前已实现两种网格生成算法:
*通过求解椭圆方程生成2D和3D结构化网格;
*波前推进法生成三角形和四面体网格。
AMeshUtil类提供了在选定的几何体上定义单元组、合并多个网格、网格数据格式转化(如转化为ABAQUS格式等常用工具。
分析模块定义了四个核心类来创建和监视分析任务:ADataCollector类扫描数据库并整理材料、边界条件、网格属性、接触关系等信息;A-Solver类生成求解文件并设置求解环境参数;A-Monitor类监视求解状态;AReporter类生成RTF格式的分析任务报告。
可视化模块实现了显示各种数据的视口:A3DViewport类显不几何数据;AVTKViewport类利用VTK库显示网格和场量结果;AReportView-port类显示计算报告。目前采用了MFC类库来实现图形显示。针对MED格式的结果文件,开发了对应的文件读取器。根据读取的节点、网格信息创建VTK的显示对象(即actor),根据读取的结果(位移和应力)生成云图。
通过集成上述功能模块,GUI模块构成了一个通用的仿真软件框架。采用MFC类库创建各种界面元素。除了常规的界面元素外,ribbon条、属性表、浮动窗口等高级界面元素也可以方便地集成到该模块中。为便于修改各几何、网格等数据,其属性自动和属性表关联。采用经典View/Document结构(多文档MDI)来管理和显不所有数据。所有数据统一由Document来管理,比如在文档新建时,即创建各种数据的列表(称为‘Table’,见如下代码片段):
3 应用案例
3.1 输电杆塔实体建模与力学分析程序
杆塔是假设输电线路的支撑结构,其结构强度直接决定着电力输运的安全性。随着我国电力事业的发展,杆塔结构变得日趋复杂,设计可靠的杆塔结构必须要进行精确的建模的力学分析。然而,杆塔节点结构包含非常复杂的螺栓连接、焊接连接以及部件接触,采用通用的有限元分析软件建立计算模型非常繁琐和易错。因此,杆塔设计和制造行业一直期望开发智能化、自动化的杆塔设计和分析软件。和其他结构相比,杆塔结构杆件和连接部件的类型有限且结构相对规则。杆塔结构力学分析的另外一个特点是边界条件比较明确,载荷或位移均施加在杆件的末端,因此可以通过自动化的方式施加载荷、进而生成整个有限元分析模型并进行分析计算。简言之,杆塔的结构有利于其建模参数化、其仿真自动化。