快速生成

2024-07-11

快速生成(精选9篇)

快速生成 篇1

准备工作

1.制作代表花名册

在Excel中编辑如图1所示的代表花名册, 并以“代表名单.xls”为名保存文档。

2.制作胸卡模板

在Word中, 用两个表格在第一页制作如图2所示的胸卡模板, 并以“胸卡.doc”为名保存文档。

3.“邮件合并”功能简介

Word的“邮件合并”功能既能够实现批量信封或信函收件人信息的自动填充, 也能够广泛应用于证书、贺卡、学生成绩通知单及胸卡等文档的信息自动填充。不熟悉“邮件合并”功能的用户, 可以在“邮件合并分步向导”的提示下, 完成简单的应用 (如证书) , 而完成胸卡的信息填充, 则需要进行如下文所述的合并规则设置。

将花名册中的信息合并到胸卡模板中

1.在“胸卡.doc”中插入合并域

(1) 打开文档“胸卡.doc”, 用菜单栏命令“工具→信函与邮件→邮件合并”打开“邮件合并”向导。

(2) 连续单击“邮件合并”向导中的“下一步……”按钮, 直到打开“选取数据源”对话框, 在其中按屏幕提示打开文档“代表名单.xls”, 并选择花名册所在的工作表以及制作胸卡所需要的记录。

(3) 单击“下一步撰写信函”后, 单击“其他项目…”打开“插入合并域”对话框, 将“姓名”、“公司”等合并域插入到“胸卡.doc”文档中 (只有一页) 。

2.在“胸卡.doc”中设置合并规则

(1) 执行菜单栏“工具→信函与邮件→显示邮件合并工具栏”, 打开“邮件合并工具栏”。

(2) 单击工具栏中的“插入Word域→下一记录”命令, 在只有一页的“胸卡.doc”文档中为每张胸卡模板插入“Next Record” (第一张胸卡除外) , 版面效果如图3所示。

3.预览信息合并效果

单击向导中的“下一步预览信函”, 预览并调整每一页胸卡信息的合并效果, 准确无误后再单击“下一步完成合并”, 选择“打印”即可。

如若照此步骤操作, 细心的读者也许会发现, 预览时第一页左侧自上而下的记录分别是A、B、C、D、E和F, 右侧自上而下的记录分别是G、H、I、J、K和L, 那第二页左侧的记录就应该是M、N、O……, 可预览里为什么第二页却是B、C、D……呢?这个问题其实也困扰了我很久。其实无论预览里显示的如何, 当生成目标文件或直接打印时结果是正常的。用Word 2003以上版本时这个问题就不会出现了。

自此, 通过“邮件合并”功能将花名册信息自动合并到自定义胸卡模版的目的就完全达到了。其实, “邮件合并”功能能够解决的个性化问题远不止于此。例如, 通过合并域规则的设定, 可以在原模版的基础上再生成个性化细节描述:根据对用户“性别”字段和“年龄”字段的判断, 在胸卡中男性的姓名后面自动添加“先生”称谓, 在女性25岁以下姓名后面自动添加“小姐”称谓, 25岁以上姓名后面自动添加“女士”称谓等。

快速生成 篇2

一、新建工作簿,在sheet1中输入各列标题及其他信息。

二、生成用户名列和密码两列。

1、单击D2格,在英文半角状态下输入“=“cnxx”&B2”(不含最外侧的中文引号),回车确认。

2、单击E2格,在英文半角状态下输入“=B2&“84618316””(不含最外侧的中文引号),回车确认。

3、运用自动填充完成其他人员的用户名和密码录入。

快速生成 篇3

摘要:在Web页面上根据用户需求,从后端数据库服务器上提取数据生成动态Excel报表。

关键词:ASP;DLL;权限;EXCEL公式;报表;模板;数据库

前言

在Web页面上根据用户需求,从后端数据库服务器上提取数据生成动态Excel报表,用户可查看及下载、打印,进一步对数据做深层次的加工。综合Asp、DLL(动态链接库)及Excel等技术的特点,可缩短开发人员对报表的理解用时,加快报表的生成。这种技术也是黑客惯用的侵入系统的方法。

一、技术概述

1Asp的重定向及调用动态库技术

Asp(Active Server Page)技术是使用VBScriipt、JScript等简单易懂的脚本语言,结合HTML代码,可在服务器端直接执行,快速地完成网站的应用程序。根据用户需求能够快速、方便进行重定向操作。

它同时可以方便插入组件对象。组件是包含在动态链接库DLL中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。组件提供的对象,在实际使用中只要创建对象的实例,并将这个新的实例分配变量名即可调用它的方法和属性。使用ASP的Server,CreateObject方法可以创建对象的实例,使用脚本语言的变量分配指令可以为对象实例命名。

2Excel报表模板生成技术

报表是从数据库中按照用户需求将数据提取后,进行分类、加工得到的最后的结果,而Excel中的公式、图表对于生成报表是极其方便的。利用Excel生成报表,可使开发人员和用户紧密结合,缩短开发人员对报表理解的时间,并且用Excel开发的报表能够使最终用户有能力快速进一步对数据进行综合分析。

3DLL的生成、数据库及Excel的操纵技术

动态链接库(Dynamlc Link Library,缩写为DLL)在服务器端上是经常使用的技术,它是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。它所调用的函数代码没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息,仅当应用程序被装入内存并开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。这样就节省了服务器的内存。DLL中的例程可以被应用程序访问,而应用程序并不知道这些例程的细节。这样就提高了Web程序的安全性。

在封装好的DLL内,根据用户不同需求可以很容易生成数据库的联接、数据的提取和对已存在服务器上Excel模板文件(报表)的写入等功能。

4Web服务器上的权限设定

NT服务器上的文件安全模式分为两种,即用户权限和文件权限。必须要在Excel模板文件(报表)存在的目录设置其权限为用户System可完全控制,System用户拥有对这个目录完全控制权限。

二、实现方案

Web服务器使用Asp响应用户,根据用户不同的需求来调用DLL中不同的函数线程,该线程首先从数据库服务器上提取相应的数据,然后打开相应的Excel模板文件,将数据存入新的Excel文件。对数据进行加工处理工作重点是用Excel中的公式来定义,简单地用DLL中函数处理。最后Asp将用户需求重定向到已经生成的Excel文件上,用户即可查看、打印或者做进一步的加工厂作。当然,你必须设定NT上的System用户拥有对Excel模板存放的目录有完全控制的权限。

三、编程

1Asp编程

a用户需求选择界面

b响应用户请求的show.asp页面

2用VB编制DLL文件

在VB6.0中用向导生成一个ActiveXDLL工程文件,代码(略)。

3用Excel公式来进行数据的分类汇总工作

4最后用生成的DLL库在服务器端注册

四、结束语

快速生成 篇4

烟草违法案件类型有十多种,但从近几年来查获的案件来看,以“未在当地烟草专卖批发企业进货”最多,占当年处罚案件数量的85%左右,所以本课题中以此类型案件为基础,共整理了17个Word文书文件。在这些文书中,有些内容是重复的项目,比如当事人的基本信息,案件的处罚信息等。通过对各个文书的逐一标记、提取和统计,17个文书中共标记了180多处重复的信息项目,通过提取统计,实际只有31项内容。如果通过输入这31项信息,再通过程序自动填入到相关的文书中,这样案件文书的制作效率将会大幅提高。

1 实现原理

该工具实现的核心原理可以概括为四个字:查找替换。即对17个文书文件进行信息标记,形成Word文书模板。再通过对模板文件进行查找,将31项信息分别替换到对应的文书模板中,从而生成新的案件文书文件。

2 实现过程

2.1 制作Word文书模板

Word文书模板是一个已含有文书内容、样式、页面布局等元素的案件处罚WORD文档。在文书模板中对其中的重复信息进行标记,这里的标记方式为“数据i”,i=1、2、3等自然数。除了信息标记外,还需要对文书的格式、内容进行检查确认,正确的文书模板对降低文书差错率也是很大帮助的。标记完成后的文书模板示例:案件调查终结报告文书模板如图1所示。这份模板为初始模板,在推广使用该工具的时候,为了减少模板的修改,所以增加了图中标记绿色字体的信息内容替换。在替换完成后,这些红色字体将全部变成黑色。

2.2 在Excel中建立和模板文件的映射表

文书模板制作完成后,需要对文书模板的文件名和标记的信息在Excel中建立映射关系。根据映射关系,利用VBA代码就可以对模板文件进行复制、查找替换等操作。建立的映射表如图2所示。这张映射表不仅对应Word模板,还需要和下面的输入表通过公式建立关联。比如图2中的单元格C2中的“案由”来自于输入表对应的案由信息,即C2=输入表!C3。

在Excel中建立输入表

这里的输入表是为了输入31项信息,通过映射表的公式,31项信息自动变成填入Word模板的180多项信息,输入表的界面图3所示。在输入的过程中,需要注意将时间格式的数据变成文本格式,这样替换的时候不会出现问题。

2.3 VBA实现查找替换

在Excel中完成前面三步后,后面就是通过VBA代码实现关键的查找替换功能。程序的实现逻辑是:首先读取Excel中的映射表,找到第一个文书模板并复制一份,打开复制的模板从“数据1”开始查找并替换,直到“数据X”为止。关闭文件,并重复上一步操作,直到17个文件全部完成替换,最后弹出对话框,提示文书全部生成。VBA中关键的代码如图4所示。工具中还可对某些参数设置功能,实现对模板文件的定位和快速修改。

3 应用效果

通过该工具的使用,不仅案审员文书制作的效率提升了近300%左右,制作时间从原来的100多分钟缩短到30分钟左右,而且文书差错率较同期也有20%左右的下降。通过这种以模板基础,在Excel中对模板文件进行操作的方式不仅适用于行政处罚文书的制作,对格式合同等多种制式文书都可以适用。

参考文献

[1]EXCEL Home.别怕,Excel VBA其实很简单[M].北京:人民邮电出版社,2012.

快速生成 篇5

电力是国家基础性能源产业, 在国民经济、人民生活和抗灾救灾中具有举足轻重的作用。现代经济社会发展对电力的需求持续增加, 一旦发生电力供应中断事件, 将给社会、经济秩序和人民群众生活带来巨大影响[1]。2008年以来, 各类自然灾害频发, 南方雨雪冰冻、汶川地震、玉树地震、舟曲泥石流灾害、雅安地震和每年登陆沿海地区的台风等自然灾害、电力突发事件等[2], 对电网设施造成严重损毁, 同时, 电网遭受外力破坏情况时有发生, 严重影响了电网的安全稳定运行, 给人民生命财产与社会和谐稳定带来严重危害和影响[3]。

在电力应急抢险救灾过程中, 快速对人、财、物及电网负荷损失数据进行填报、汇总统计、整理分析, 可以使决策层了解受损动态, 掌握重建及恢复情况, 是电力应急管理中最重要的环节之一, 既为将损失减少到最低和实施决策提供实时的数据保障, 又为总结经验和建立应急机制提供强大的数据支持[4]。

1 电力应急信息的概念、分类及报表组件

1.1 电力应急信息的概念及分类

针对2008年汶川地震、2010年玉树地震、2013年四川芦山地震等地震地质灾害及每年的台风、雨雪冰冻、强降雨等各类自然灾害的应急处置, 本文将电力应急信息定义为突发事件发生发展过程中产生的事件发展、灾情损失、现场处置和抢修恢复等信息及情况, 并归纳总结出电力应急信息按业务分为人员、变电站、输电线路、杆塔、用户、设备、其他等七大类型[5]。

1) 人员:主要包括人员伤亡、失踪、受伤、重伤的人数, 已到达、在途中、已集结待命的抢修救援队伍及人数等。

2) 变电站:主要包括电压等级、变电站名称、变电站停运及恢复的数量、停运类型、停运时间、故障情况、影响供电情况、直接经济损失 (万元) 、负荷损失 (MW) 、计划抢修恢复时间、抢修进展情况、恢复情况、恢复时间等。

3) 输电线路:主要包括电压等级、线路名称、线路停运及恢复的数量、线路类型、停运类型、停运时间、跳闸情况、故障情况、影响供电情况、直接经济损失 (万元) 、负荷损失 (MW) 、计划抢修恢复时间、抢修进展情况、恢复情况、恢复时间等。

4) 杆塔:主要包括所属单位、杆塔编号、杆塔倒杆及恢复的数量、故障类型、发现时间、受损长度 (公里) 、是否恢复、恢复时间等。

5) 电力用户:主要包括电压等级、停运及恢复情况、用户级别、停电户数、恢复供电户数等。

6) 设备:主要包括设备名称、调集数量、调集容量、到达数量及容量、投入救灾的数量及容量。

7) 其他:主要包括电厂名称、机组情况, 水库24 h水位 (水库水情) , 大坝检测项目及监测点、监测时间, 降水量 (雨情) , 供电总量、煤电耗用情况等。

1.2 报表组件

针对突发事件来临时快速生成报表, 并高效填报、汇总及统计电力应急数据的需求, 本文引入了报表组件。报表组件是本文设计的电力应急信息报表快速生成方法中组成报表的最小原子颗粒, 根据电力应急信息的分类, 将报表组件分为变电站组件、输电线路组件、输电线路铁塔倒塔组件、人员伤亡组件、应急抢修队伍及人员组件、重要电力用户组件等7个专业类别, 共计46个组件。

通过报表组件生成一张电力应急信息报表的过程可演示如下。首先假定需要生成一张报表名为受损变电站停运及恢复情况统计表, 定义为报表m (见图1和图2) 。

经过如图1和图2的分析知, 报表m需要使用4个报表组件, 一个组织机构组件 (定义为Si) 和重复使用3次变电站组件 (定义为Sj) , 即500 k V变电站组件、220 k V变电站组件、110 k V变电站组件, 其中i, j[1, n], n6。所以该报表快速生成的表达式为m=Si+500 k VSj+220 k VSj+110 k VSj。

电力应急信息报表要表达的内容越多, 报表组件之间的关系就越多, 结构就越复杂。要执行一个报表, 有时需要多个报表组件排列组合并行执行, 其复杂度较大。如生成一张变电站线路停运及恢复情况表, 需要变电站组件也需要线路组件, 经过依次排列组合后, 可以快速生成一张新的电力应急信息报表, 从提高应急处置效率的角度来讲, 这种利用多个报表组件合并执行的快速生成报表方法比重新画一张报表省时省力的多。

2 电力应急信息报表系统结构

根据上述思路, 本文设计了电力应急信息报表系统, 作为电力应急指挥信息系统的组成部分之一, 该应用主要分为报表管理系统和报表处理系统。电力应急信息报表系统的总体结构如图3所示。

2.1 报表管理系统

报表管理系统是管理电力应急信息报表的基础数据和与其相关数据的系统, 主要功能包括报表事件关联维护、报表填报机构定义、报表基本信息定义、报表组成结构配置、报表组件定义维护等。

1) 报表事件关联维护:将具体发生的电力突发事件与报表建立一对一或一对多的对应关系, 使各省、地市等机构通过该事件查询出需要填报或统计的报表。

2) 报表填报机构定义:目的是针对这次电力安全事件, 指定需要填报的省、地市等机构, 并及时通知相关机构或单位填报相应的报表。

3) 报表基本信息定义:定义报表模板的基本信息, 包括报表名称、填报周期、报表填报模板和统计模板的名称、事件类型、报表的类型、状态等信息。

4) 报表组成结构配置:将报表组件通过可视化的定义方式进行组合配置, 通过重用现有报表组件的方式, 减少开发工作量, 提高应急处置效率, 实现快速生成电力应急信息报表的需求。

5) 报表组件定义维护:为报表组件提供管理功能, 包括对报表组件的含义说明、参数配置说明、组件保存位置等信息的维护。

2.2 报表处理系统

报表处理系统由报表组件库和报表处理引擎构成, 负责生成最终的报表, 是按照报表结构进行报表组件组装的技术实现部分。

报表处理引擎服务器主要驱动报表组件构成最终的报表, 并提供柱状图、饼状图、折线图等图表展示方式。

3 报表快速生成流程及步骤

报表为用户提供了直观、综合的业务结果查看方式, 其制作过程和执行效率影响系统开发效率和性能。本文提出了简洁、高效的电力应急信息报表快速生成流程[6] (见图4) 。

报表生成的步骤如下。

1) 建立报表基本信息, 包括报表名称、填报周期、报表类型和备注等信息。

2) 根据业务分析需要的报表组件, 在报表组件库中寻找相应的业务组件, 可利用报表组成结构配置中的结构序号、报表编号、结构名称、结构组件报表等将所需组件按一定的次序排列组合。

3) 报表组件库在建立时需根据业务分析, 尽量合并内容相似、形式相同的组件, 提高表格的可复用度, 通过报表组成结构配置扩展报表组件库。

4) 在展示填报报表时, 通过组件名称, 在报表处理引擎服务器中查找别名一致的报表组件;根据报表组成结构配置的组合方式将报表组件结合, 并根据报表处理引擎服务器中的报表处理引擎将填报报表展示出来供填报。

5) 在展示统计报表时, 根据报表基本信息寻找到相关统计报表的模板名称, 选择需要统计的起始时间和结束时间, 通过组件名称, 在报表处理引擎服务器中查找别名一致的报表组件;根据报表组成结构配置的组合方式将报表组件结合, 并根据报表处理引擎服务器中的报表处理引擎将统计报表展示出来供分析。

6) 报表处理引擎可将数据在表格、柱状图、饼状图、折线图等图表中做展示。

7) 至此, 完成报表从制作到通过报表处理引擎服务器展示的全过程。

4 电力应急信息报表生成方法的优点

本方法采用B/S和C/S结构混合应用, 可以使用户在界面友好的系统平台下, 简单快速地完成报表的设计工作[7], 并能准确美观地完成报表的展现工作。用户可以在系统的报表组件库中找到相应的报表组件, 按某种规则排列组合可以实现具体的报表模板, 做到了模板的复用, 可实现较高的开发效率, 而且简单易用。系统用B/S结构实现的部分, 主要用于用户对报表模板的选择和灵活配置;系统用C/S结构实现的部分, 主要用于完成报表组件库以及每个组件的定义, 将用户定义的报表的具体样式和系统产生的数据进行融合, 并最终实现报表的展现。

例如表1所示的某省公司城网低压电力设施受损和恢复情况填报表, 在同一张报表上需要组合低压线路、电杆2个不同的报表组件, 采用低压线路填报组件和电杆填报组件的方式将该报表拆成2个组件。为保证报表结构的完整性, 在填报时, 所有报表组件都完成填报任务才能结束填报。填报报表只需要填写报表中当日损失或当日恢复情况, 统计报表显示出一定时间段内的累计损失值或累计恢复值。之所以在填报表中不出现累计值, 是为了避免在填报该报表时, 出现人为的累计错误, 导致不必要的误差, 从而减轻填报人员的工作量, 提高报表的使用效率。这种方法的优点如下。

1) 细粒度业务组件式设计, 可以灵活配置, 能够重复利用报表业务组件, 快速生成报表, 减少开发周期, 提高开发效率。

2) 组件库种类多, 涵盖面广, 数据结构合理, 业务耦合较小, 能快速高效的制作报表模板, 适应用户的各种需求。

3) 能够多级部署, 可以设计填报报表和统计报表, 具有数据校验和纠错功能, 保证数据的有效性及完整性。

4) 由报表管理系统、报表处理系统2部分组成, 报表管理系统由报表事件关联维护、报表填报机构定义、报表基本信息定义、报表组成结构配置、报表组件定义维护等一系列管理功能组成, 用于使用报表组件来配置管理事件相关的报表结构, 并对报表组件进行管理维护。报表处理系统由多个可被复用的细粒度报表组件与报表处理引擎构成, 负责生成最终的填报与统计报表。

5 结语

常见的报表往往有很复杂的标题行和列, 树形标题也很常见。制作报表模板关键在于数据库的设计、数据集的编写和报表模板的设计, 本文提出了一种把电力应急信息报表快速生成方法, 将其应用于应急指挥信息系统中, 可满足决策层对电力突发事件应急信息展示多样性、图表展示等多种需求, 易于快速开发、使用方便、可反复使用、参数设置少是本文的关键, 开展电力应急信息报表快速生产方法的研究能够提高电力行业的应急管理水平, 提高公司提高处置效率, 提升公司社会形象, 有效保障电网安全和公共安全, 为公司履行社会责任提供支持。

摘要:文章给出了一种电力应急信息报表快速生成方法, 对电力应急信息的概念、分类进行了阐述, 分析了报表组件的组成, 详细介绍了电力应急信息报表系统的架构和生成步骤, 总结了本方法的优点, 将其应用在电力应急指挥系统中, 能解决对电力系统中因自然灾害等引起的各类电力突发事件应急信息的快速填报、汇总统计、整理分析。通过本方法的应用, 能够提高应急人员在应急处置中事故处置决策能力, 大大提高应急处置和抢修的效率, 缩短应急处置时间, 把电力突发事件造成的损失降到最低。

关键词:电力应急信息,报表,电力突发事件,应急处置

参考文献

[1]陈希.电网应急平台研究与建设[M].北京:中国电力出版社, 2010.

[2]朱朝阳, 于振, 刘超.电力应急管理理论与技术体系研究[J].电网技术, 2011, 35 (2) :178–182.ZHU Chao-yang, YU Zhen, LIU Chao.Research on theory and technical system for power emergency management[J].Power System Technology, 2011, 35 (2) :178–182.

[3]门永生, 金龙哲, 朱朝阳, 等.电力突发事件应急标准体系框架研究[J].电信科学, 2013 (11) :104–108.MEN Yong-sheng, JIN Long-zhe, ZHU Chao-yang, et al.Research on emergency standard framework of power emergencies[J].Telecommunications Science, 2013 (11) :104–108.

[4]赵炜妹, 丁辉.基于突发事件本体模型的智能推理过程在应急案例搜索中的应用[C]//2011电力通信管理暨智能电网通信技术论坛论文集, 2011.

[5]刘超, 周刚, 王理金, 等.电网企业对外停电事件应急处置理念与流程[C]//2012年电力通信管理暨智能电网通信技术论坛论文集, 2012.

[6]王秋生, 肖莹莹, 杨浩, 等.实验室信息管理系统中动态报表自动生成技术[J].工业计量, 2011, 21 (3) :26–29.WANG Qiu-sheng, XIAO Yin g-ying, YANG Hao, et al.Automatic generation of dynamic report in laboratory information management system[J].Industrial Measurement, 2011, 21 (3) :26–29.

快速生成 篇6

关键词:虚拟装配,仿真动画,快速生成,装配路径

0引言

在一个产品的生产环节中,装配是个很重要的节点。装配的工作效率和工作质量对产品的制造周期和产品的质量都有着极大的影响。随着数控机床的广泛应用,装配工作却仍是以人为主,主要依赖于工作人员的技艺水平。因此,装配质量又成了提高产品精度的瓶颈环节,利用计算机进行装配工艺设计成了现代制造系统计算机应用的难点。提高装配的工作效率和工作质量,降低装配成本,提高装配的规范化程度是虚拟装配的重要任务[1]。

本文所研究的用于虚拟装配培训的虚拟装配仿真动画的快速生成技术在保证建模软件强大的装配仿真优势的情况下,针对VRML动画编码制作过程进行分析总结,最终在CAD软件装配仿真开发环境下使用插件式开发平台的方式实现了VRML动画生成,大大提高了机械产品虚拟装配仿真动画的开发与应用范围。

1系统平台的总体设计

1.1系统平台的功能架构

根据VRML动画的开发需要,本文所述的虚拟装配培训仿真动画生成平台总共分为三大功能模块,三维模型导出、虚拟动画定义、虚拟动画导出。 如图1所示。三维模型导出是通过二次开发获取零件模型在整个机械装配体中的三维关系,并根据模型结构树录入零部件间的装配关系信息,并自动生成虚拟场景三维模型。虚拟动画定义是通过可视化操作定义或输入运动参数等信息,制作机械产品的VRML仿真动画。

1.2系统平台的流程设计

针对机械设备的VRML动画开发进行调研,总结了制作的一般过程,根据实际存在的问题及需求确立课题研究的总体思路,制定如图2所示的开发设计流程图。首先,CAD软件中建立模型并导入; 其次,将CAD系统中运动仿真关键参数转换成VRML场景中的参数,实现场景衔接; 然后,将转换后的参数填入标准格式代码中,实现了VRML运动仿真代码生成; 最后,将VRML运动仿真动画代码从生成系统中导出,成为一个. wrl文件。

2装配仿真动画制作的装配路径动画原理与碰撞检查

2.1装配路径动画原理

虚拟场景中的装配运动是有其物理运动规律的,多是以平移、旋转为主,以及既有平移又有旋转的运动,因此,装配运动可以看作是一系列具有确定运动规律的运动段的总和,即:

这里的相邻运动段mi与mi + 1之间的转折点就是运动关键点。为了便于分析与制作动画,本文将装配运动从一个关键点到另一个关键点之间的任何一种运动均简化为平动与转动或平动加转动的合成,才能适用于装配运动的实现[3]。以螺栓螺帽的装配为例,图3中螺帽从P0位置到预定装配位置P3要发生了三次变换,P0到P1位置是一次平移变换,P1到P2是旋转变换,P2到P3是平移变换,共确定出四个关键点。

根据用户和虚拟环境的交互方式,装配路径生成有两种方式: 用户预先指定装配路径的关键点,装配路径以离散点的形式进行定义与记录,通过离散点插值产生连续的装配路径; 将输入设备( 如鼠标、 激光笔、操纵杆等) 的运动与部件的运动关联,用户通过虚拟环境交互,直接控制装配路径[4]。在虚拟装配仿真动画的开发过程中,主要通过前者来生成装配路径,首先指定各部件在空间若干关键点处的平移、旋转、缩放的变化量,然后将这些数据连同模型一起导出,以VRML格式文件存储。装配路径随模型加载到场景中,用户在场景中选择要装配的部件,部件就沿装配路径运动,实现装配仿真[5]。

如果只记录关键点位置,还不足以精确描述装配的细节,所以在演示过程中采用插值法细化关键点之间的位移变化,以图3关键点为例,在“P0 → P1”的路径段设置装配时间后,就会作匀速直线运动,同理在“P1→P2”的路径段作匀速旋转运动。通过插值法运算就能使用户更流畅地观看整个装配过程,不会有跳跃感。

2.2碰撞检查

碰撞检测用于监测两对象的接触关系,以及何时、何处形成碰撞,根据机械设备物理外形的复杂性和检测精度,计算两几何模型间的相互位置。因此对简单模型例如平面与球状物体的判断比较容易, 而对自由曲 面等复杂 结构碰撞 所需的计 算量较大。

目前常用的碰撞检测算法有四种[6]: 几何分析法、扫描法、包围盒法、空间分解法。在VRML中Collision节点的碰撞检测实际上采用的是包围盒法。VRML利用Collision节点简单地实现了碰撞检测,当一个给定的节点经过某些变换( 例如被平移、 旋转、缩放等) 时,测定是否会遭遇以另一个节点形式存在的障碍物,通过ECMAScript接口,利用Collidee和Collision对象实现VRML环境下物体之间的碰撞检测。前者作为被变换的节点的代理物,包含有变换矩阵等相关参数,承载了变换矩阵的参数和其它相关数据; 后者描述了在一次碰撞的情况下, 和另一个节点相撞的一个节点的要点[7],存储有每一个待检测是否产生碰撞的表面的位置,法线,面的序号以及路径等信息。具体的属性以及成员函数如表1 - 2所示。

3虚拟装配仿真动画的快速生成技术的实现

3.1基于模板的代码生成模块的流程

基于模板的代码生成模块的流程如图4所示。 实现生成的VRML代码包括四部分: 模型节点代码、动画原型节点PROTO、动画代码和动画连续播放脚本代码。模型节点代码中包含了模型描述信息; 动画原型节点定义了动画的参数和内部的逻辑运算关系,在此,定义一个生成模块使用的模板,来完成原型节点的封装; 数据定义文件是通过键码定义或者对话框输入的形式,对动画参数设定,由于该部分参数数据量不是很大,所以,在程序实现中,并没有采用数据库单独存放,而是直接定义了一个矩阵存放; 动画代码也就是将动画原型节点输入参数进行实例化,生成了一步装配动画的动画代码; 动画连续播放脚本代码是指制作虚拟装配仿真动画时, 动画是按照装配步骤来制作的,每一步的装配对应着一步动画,在每步动画之间需要实现连续播放,这就需要生成动画连续播放脚本代码。动画连续播放脚本代码是根据每一步动画节点引用以及每步动画的持续时间来生成的。

写出代码文件功能最终将模型节点代码、动画原型节点PROTO、动画代码、动画连续播放脚本代码整合到一个VRML文件中。具体的整合方法是: 通过函数creat VRML( ) 新建VRML文档,然后通过参数赋值的方式将模型节点代码、动画原型节点PROTO、动画代码、动画连续播放脚本代码分别赋给四个文本参数,将这四个参数的内容写入新建的VRML文档。

3.2虚拟装配仿真动画的快速生成的实现

3.2.1最小运动单元装配仿真动画生成的实现

生成模板中对应的变量实际上在Solidworks运动仿真中都具有一个对应参数,生成一步装配仿真动画的过程,实际上就是将对应的参数赋予给模板中的变量的过程。其对应关系如表3所示。

由此可知,生成程序抛去赋予的过程,还必须要有获取Solidworks中对应参数的功能,以实现鼠标选取的零部件包含空间位姿信息的变换矩阵的功能,其代码实现如下:

在实际开发过程中,坐标属性会出现偏差,究其原因,是Solidworks软件与VRML的空间坐标系的不同,这有必要实现两者坐标系的统一,然后进行赋值生成。为此,设计一个输入界面来完成,如图5所示。

3.2.2由Solidworks向VRML场景坐标转换及完整装配仿真动画生成

Solidworks环境下,用卡氏右手立体坐标系统描述空间位置,三维模型相对于世界坐标系原点的位置和方向可以用一个包含16个元素的4 × 4阶矩阵表示。如图6所示,从变换功能上可将此4阶方阵分为四个子矩阵,其中左上角的3 × 3矩阵可产生比例、旋转等变换; 左下方三个ti变量分别产生沿x轴、y轴、z轴的平移变换; 右下角的s产生全局比例变换; 右侧pi可实现投影变换。

本课题研究的是机械产品的虚拟动画,针对其中的刚性物体而言,运动形式主要有两种形式: 平移和旋转,绝大多数的运动都是以这两种运动形式复合而成。位于坐标( x,y,z) 的几何模型,平移到原点,并绕过坐标原点的任意倾斜轴线旋转 θ 角时,其变换矩阵为:

其中,θ 代表零件在装配体中绕任意轴旋转的角度, n1,n2,n3为该轴的方向余弦,x,y,z分别为该零件的在空间中的位置。

在VRML场景中通过利用Solidworks API函数获取矩阵中每个元素的值,并通过Vrml Pad编辑器的API函数接受所有的值,从而获得虚拟场景中所需要的translation和rotation的值。部分代码如下:

这样,就把Solidworks三维场景中三维模型的位置关系,转换成VRML虚拟场景中识别的参数, 实现了两者坐标变换方式的统一。

单个零部件装配的过程,是由数个最小运动单元组成的,他们之间需要有脚本文件链接起来,才能使得装配仿真动画可以连贯地运行下去。

连续播放脚本实际上是一种逻辑上的关联顺序,可以实现上一步最小运动单元动画运行之后跳转到下一步动画。这种逻辑上的关系,使得完成该步最小运动单元装配动画的编辑后,点击下一步 ( 如图5所示) ,生成程序将自动在该步动画代码后面追加连续播放脚本,并给对应变量赋值。通过对单个零部件装配过程分解出的最小运动单元装配仿真动画进行串联,可以得出单个零部件的完整装配仿真动画。

4机械手虚拟装配仿真动画生成实例应用

根据虚拟装配仿真动画生成的理论,结合机械手的虚拟装配动画的生成过程,验证该理论的可行性。首先,用Solidworks打开定义约束关系的机械手的三维模型,运行“vrml动画制作”模块,系统会自动通过遍历装配体的形式把机械手的零件的名称按照一定的规则列在界面中,以方便虚拟装配动画的制作,用户可以点击相应的零件进行该零件装配动画制作时相关参数的设置,最后确定生成虚拟装配动画文件。具体操作如图7所示。

5结束语

快速生成 篇7

在软件测试中最重要也是最复杂的就是对数据的测试, 测试数据的准确性关系到整个设计的是否合理性, 特别是对于数据的设计和生成。在近期的一次项目开发中我们发现如果通过Excel中的Microsoft VBA编程与项目开发中oracle数据库进行连接设计, 可以比较容易的生成大量合理数据进行测试, 大大的提高了测试效率。

1 应用程序开发

在实现过程中我们的步骤如下:

1) 建立数据库连接和保存数据使用到的类模块.

建立数据库连的核心代码如下:

2) 根据EXCEL内容生成Sql语句并执行, 由于篇幅有限, 现仅将Insert部分功能设计代码附上, 如表1所示。EXCEL表内容里面, 橙色背景是主键数据, 蓝色背景是非主键数据

通过此项功能就可以利用EXCEL的强大数据处理功能对ORACLE数据库进行数据添加。

2 程序操作流程图

程序操作流程图如图1所示。

3 结束语

在软件开发中数据测试环节, 当需要大量符合业务逻辑的数据的时候, 利用Excel中的Microsoft VBA与所开发应用的数据库连接, 生成数据, 可以大大的提高测试速度与精度。

摘要:该文主要讨论在程序测试如何利用Excel中的Microsoft VBA语言技术, 与ORACLE数据库连接生成大量数据来满足测试需求, 提高测试速度。

关键词:测试数据,数据库,VBA

参考文献

快速生成 篇8

1 示例简况

假设有一基本建设项目, 使用国有建设单位会计制度, 其账簿设置如下:

1.1 项目分类及项目信息

(1) 项目下设A、B、C三个分项工程, 项目编码分别为101、102、103。

(2) 每个分项工程下设2个单位工程, 项目名称及编码分别为:A-1单位工程, 编码10101;A-2单位工程, 编码10102, 以此类推。

(3) 每个单位工程下还设有明细工程, 项目名称及编码依同样规则设置, 即:A-1-1明细工程, 编码1010101;A-1-2明细工程, 编码1010102, 以此类推。

1.2 科目设置

(1) 一级科目按国有建设单位会计制度设置, 包括:101建筑安装工程投资、102设备投资、103待摊投资等科目。

(2) 明细科目按项目核算需求设置。101建筑安装工程投资下设有:10101建筑工程投资、10102安装工程投资;102设备投资下设有:10201在安装设备、10202不需安装设备;103待摊投资下设有:10301建设单位管理费、10303勘察设计费。

1.3 报表设置

其报表名称为“***基本建设项目投资完成情况表 (截至*年*月*日) ”, 反映截止至某一时点的项目投资完成情况, 格式如下:

(1) 横向表头为占用类科目, 主要包括三大投资及往来款的一至二级科目。

(2) 纵向表头为各级项目, 按项目编码依次排列。

(3) 表体内容反映某项目某科目截至指定时点的支出数。

2 在用友软件中设置“项目一览表”

在用友软件中, 能够提供上述报表所需基础数据的制式报表是项目一览表, 设置方式如下:

(1) 选择“总账—项目成本一览表”功能。 (2) 设置项目成本一览表查询条件。

日期:起始日期为账套启用日期, 终止日期为报告要求截止日期。

选择进行成本统计的科目:按报表横向标题栏选择1级或2级科目 (上下级科目不能同时选择, 因此涉及2级科目的选择2级科目, 1级科目支出数在Excel表中通过合计公式生成) 。

选择进行冲减统计的科目:可根据需要选择, 本例中暂不设置。

包含未记账凭证:按需要选择是否包含。

设置完成后可点击“保存”, 将上述设置保存为项目一览表模板。

显示项目:可对项目范围作选择, 本例不作设置, 默认为全部项目。

(3) 生成项目成本一览表。需生成金额方向分别为借方和贷方的两张一览表, 并将所生成的数据表全部导出为Excel工作表, 可分别将标签名定义为“借方一览表”、“贷方一览表”。

3 生成报表

3.1 设置报表模板

按照“一、示例简况”中的报表格式设置模板, 并为工作表标签取名为“报表”。将软件导出的“借方一览表”、“贷方一览表”与设置的模板“报表”3个工作表并列在一个Excel工作簿中。

3.2 添加取数函数

在合计及小计栏添加相应的SUM函数。

在各科目支出数栏添加SUMIFS函数, 从一览表中取数, 以“A-1-1明细工程”的“建筑安装工程”科目支出数为例, 在单元格F9中录入如下公式:=SUMIF (借方一览表!SA:SA, 报表!SB9, 借方一览表!D:D) -SUMIF (贷方一览表!SA:SA, 报表!SB9, 贷方一览表!D:D) 。其他单元格公式照此录入, 也可以复制和填充后作细微修改。

3.3 定期更新报表

保存已添加好公式的报表, 以后期间只需将“借方一览表”、“贷方一览表”两个工作表通过复制、粘贴的方式更新为软件最新导出的一览表即可。

4 其他应用

快速生成 篇9

目前有限元分析已被广泛地应用到产品设计过程之中[1]。CAD系统产生的模型由于要满足设计、加工等方面的需要, 往往包含一些对于有限元分析来说比较复杂的细节。为了能在精度损失允许的范围内尽量减少分析时间, 通常的做法是在有限元分析之前对CAD模型进行必要的简化处理, 如细节移除和降维。而当前的简化算法一般以几何尺寸作为简化的标准, 而不是实际的物理条件如载荷、材料属性等[2], 所以通过一般简化算法产生的简化模型往往是不准确的。因此, 为得到所要求的分析精度, 需要对简化模型进行多次变更 (可以根据分析人员的经验或者误差估计算法的指导) , 如恢复某个被移除的细节或者对某个降维产生的中面或中线进行增厚处理等[3]。这也决定了造型系统必须能够提供这些不同细节层次 (LOD) 和抽象层次 (LOA) 的分析模型。为此, Lee[4]提出了基于特征的多分辨造型技术, 以特征作为细节移除和降维的基本单位, 通过组合不同细节层次和抽象层次的特征来产生多分辨的分析模型。这里存在的一个问题是, 由于上述不同分辨的模型之间的变动往往较小, 如果对每一个分辨的模型都进行整体的重新网格化, 必然造成巨大时间耗费。因此, 如何在这些不同分辨的模型之间重用已有网格, 避免进行整个模型的重新网格生成, 就显得尤为重要。

本研究提出一种基于特征的多分辨FEM模型快速生成方法, 目标是在分析过程中能够根据分析精度的要求, 快速生成保证质量的FEM模型。本研究相关工作主要包括如下两方面:多分辨分析模型生成[5,6], 设计变动以后的基于网格重用的FEM模型快速生成[7,8,9]。

1 基本概念和方法概述

1.1 基本概念

定义1 特征:特征是指带有工程语义的几何形状, 已经被广泛地应用于产品生命周期的不同阶段, 如设计、分析、加工等。

定义2 设计特征:设计特征是指包含设计意图的几何形状, 包括实体特征、过渡特征、阵列特征等。本研究仅讨论实体特征, 并将实体特征分为两类:正实体特征和负实体特征。过渡特征和阵列特征也可以转化为实体特征。

定义3 降维:降维简单地说是用低维的边、面来代替高维的实体以节省分析的时间, 如细长的实体 (某个维度上的尺寸远大于另外两个) 可以用带截面属性的边 (中边) 代替, 薄的实体 (某个维度上的尺寸远小于另外两个) 可以用带厚度属性的面 (中面) 代替。

定义4 面对:基于面配对[10]的方法是对实体模型进行降维的一种方法。两个面F1, F2可以组成面对必须满足如下条件:①F1, F2平行;②F1, F2的法向相反;③F1, F2之间的距离小于给定阈值T。如图1中的F8与F10, F4和F2, F7与F5, F1与F5就是可以组成面对的面。中面可以通过对面对中的面进行插值或对其中一个面进行偏移得到, 如图1中粗实线标出的面。

定义5 分析特征:这里采用文献[11]中的定义, 将分析特征定义为可降维的连通子区域, 包括梁、壳、实体3种类型。梁特征由中边组成, 壳特征由中面组成。由于这里的实体特征与设计特征中的定义重叠, 以下提到的分析特征仅指梁、壳两类。

定义6 接口:“接口”概念一般用于表示不同维度的几何对象之间的接触部分[12]。由于接口两侧单元的自由度和形函数都不一样, 保证两侧单元的节点在接口处的一致性能得到更高的分析精度。这里笔者使用“接口”概念表示特征之间的接触关系, 并作为特征进行网格生成的约束。

这里使用Feature对象统一表示上述两类特征。每个Feature对象使用feature_type属性表示特征的类型;LOD属性表示特征的细节层次;LOA属性表示特征的抽象层次, 如梁、壳, 或实体;entity_list属性保存与特征相关的几何对象, 如通孔特征会有一个圆柱实体对象与其相关, 壳特征会有中面与其相关。笔者在每个几何对象与其所属的网格单元之间建立了关联, 如body对象与体单元, face对象与面单元等, 从而建立起特征对象与网格单元之间的所属关系。另外, 设计特征还包含最终B-Rep模型中属于该特征的面。

1.2 方法概述

多分辨FEM模型生成的方法框架图如图2所示。鉴于满足不同分析精度要求的零件的多分辨FEM模型均可由零件模型中的全部或部分设计特征或分析特征对应的网格模型组合而成, 笔者首先对零件模型中的所有设计特征和分析特征本身进行网格划分。然后在分析过程中, 对于给定分析精度下形成的简化模型, 通过将简化模型中所包含的所有设计特征和分析特征所对应的网格模型进行组合形成所需的FEM模型。为了保证特征网格之间的组合质量, 笔者对每个特征进行保证特征之间接触部分网格一致的网格划分。其中, 设计特征可以从CAD系统导出或利用特征识别技术从零件模型中提取。分析特征采用基于面配对的方法由设计特征映射过来。

2 特征之间的接口分类

为了保证网格的质量, 特征的网格生成以接口作为约束, 为此首先需要确定出每个特征所涉及的接口及其类型。这里对这些特征之间可能存在的接口类型进行了讨论。为引述方便, 笔者将不同特征之间相互接触的几何对象称为“引用对象”, 将“引用对象”之间的相交部分称为“接口对象”。“接口对象”是作为“引用对象”网格生成的约束。特征之间的接口分类如表1所示, 并对接口对象进行了加粗显示, 其中相互接触的两个特征由F1, F2标出。

3 带约束的特征网格生成

本节将讨论不同接口类型中涉及的几何对象之间的约束情况, 并给出一种带约束的网格生成方法。如表2所示, 根据约束对象和被约束对象的维度, 对几何对象之间的约束关系进行了分类, 并对约束对象进行了加粗显示。由于简化模型中一般不存在低维几何对象在三维实体对象内部的情况, 这里不做讨论。简化模型中出现的非流型的情况 (有些情况需要经过求交和分割处理) 基本都可以归结到这几种类型, 如三维实体边界上的约束可以归结到实体的面、边上的约束。第5类约束和第6类约束之间的不同点是:第6类约束除了要求同约束面边界上的一维剖分保持一致外, 还要求同约束面内的二维剖分一致。

本研究提出的带接口约束的网格生成方法主要基于波前法实现。选择波前法, 是因为这种方法对几何边界的适应能力强[13], 比较适合处理这里涉及的非流型模型的情况。在使用波前法进行剖分时, 二维剖分的波前是由面的边界边剖分产生的线段集合, 三维剖分的波前是由实体的边界面剖分产生的面片集合。这里主要通过约束波前来达到约束网格生成的目的, 具体处理方法如下:

(1) 对于带零维点约束的一维剖分的情况, 如果约束点的位置在被约束边的端点处, 则不用特殊处理。如果约束点的位置在被约束边的内部, 处理方法是沿着约束点将被约束边分成两部分再分别剖分。

(2) 对于带零维点约束的二维剖分的情况, 如果约束点在被约束面的边界上, 则可以归结为点对边的约束。如果约束点在被约束面的内部, 处理方法是添加一条过约束点的边, 这样就转化为第4类约束。

(3) 对于带一维边约束的一维剖分的情况, 处理方法是先对约束边进行一维剖分, 然后将被约束边沿着约束边分成几部分, 其中与约束边重合部分的单元直接从约束边拷贝。

(4) 对于带一维边约束的二维剖分的情况, 处理步骤是:①先处理二维剖分域中可能存在的低维约束的情况, 如约束边与约束边或约束边与边界边相交则产生第一类约束, 重合则产生第三类约束。②将约束边的边单元拷贝两份作为被约束的二维剖分域的波前, 并保证两份单元方向相反。如果约束边是不闭合的, 那么这些单元首尾相连组成了一个退化的内环波前。如果约束边是闭合的, 那么这些单元会组成两个绕向相反的波前环, 一个向约束边包围的内部区域推进, 另外一个向约束边的外围推进。③对于约束边重合的情况, 还需要额外的处理。如果与约束边重合的边是被约束的二维剖分域的边界, 那么删除刚才拷贝的属于该约束边的单元。如果与约束边重合的边也是约束边, 那么删除属于其中一条约束边的单元。

(5) 对于带二维面约束的二维剖分的情况。具体步骤是先对二维约束面进行边界边的剖分, 将这些边界边作为被约束面的一维约束, 这里的处理方式同第5类约束。不同之处在于, 这里不需要对约束边包围的内部区域进行剖分, 因为内部区域的面片单元需要直接从约束面拷贝, 如果约束面与被约束面法向相反还需要对这些面片的法向进行反向。所以这里只需拷贝一份约束边的边单元, 这些边单元首尾相连组成闭环, 绕向与被约束面的内环绕向一致。这样就避免了对约束边包围的内部区域进行再次剖分。

4 多分辨FEM模型生成

多分辨FEM模型是指根据不同的细节层次 (LOD) 和抽象层次 (LOA) 选择不同的特征以及对应的网格, 从而组合产生的一系列不同分辨的FEM模型。由于每个特征对应的网格在带约束的网格生成阶段已经保证了接口部分的一致性, 在这一步可以对每个特征对应的网格进行自由组合。

4.1 特征之间的重排列

在讨论具体步骤之前, 笔者先考虑下特征重排列的问题。在特征造型中, 结果实体模型的产生过程一般满足如下定义:

Μn=Πi=0niFi, where0F0=0F0 (1)

式中 ⨂i—布尔操作, 包括布尔加 (求两者的并集) , 使用符号U表示;布尔减 (在前一个对象中减去两个对象之间的交集) , 使用符号-表示;Fi—设计特征, 其中正特征与布尔加 (U) 对应, 负特征与布尔减 (-) 对应;Mn—应用n次布尔操作产生的最终结果模型。

如果将一对存在相交关系的正特征和负特征之间的次序进行对调, 那么最终产生的实体模型将会不同。如图3所示, 图3 (a) 是在现有模型M0的基础上添加了4个特征:F1 (平板阵列) 、F2 (圆柱通孔) 、F3 (方形凸台) 、F4 (圆柱凸台) ;在图3 (b) 中, 笔者将特征F1、F2之间的次序进行对调, 由于两者存在相交, 使得F1平板阵列特征原本应该被切除的部分没有被切除, 造成了最终的结果模型和次序对调前不一致。Lee提出的“特征有效体”概念解决了这一问题, 即无论特征的次序如何调整, 使用该方法都能得到同样的实体模型。这里笔者同样要面对特征重排列的问题, 所不同的是, 笔者的目标是尽可能地重用已有网格。针对同样的输入模型, 笔者仍然只需要对所有设计特征和分析特征进行一次网格生成, 但是通过特征次序的调整得到了与输入模型不同的FEM模型, 进一步提高了多分辨FEM模型的利用率。

4.2 多分辨FEM模型生成过程

多分辨FEM模型的生成过程与特征建模的过程类似, 定义如下:

FEΜn=Πi=0niFi, where0F0=0F0 (2)

式中 Fi′—特征对应的网格, 包括实体对应的体网格、中面对应的面网格或中线对应的边网格, 由特征的LOA属性来确定具体选择哪种网格, 由LOD属性确定特征是否参加运算;⨂i′—网格之间的布尔操作, 包括布尔加 (求两者对应网格单元的并集) ;布尔减 (在前一个对象对应的网格中移除两个对象共同拥有的网格单元) ;FEMn—应用n次上述布尔操作产生的FEM模型。

在接口确定阶段, 笔者对设计特征和分析特征之间的相交关系进行了识别, 并把特征之间的相交部分保存在相关特征的entity_list里, 而且在网格生成阶段又保证了相交部分的网格满足了相应的约束, 所以笔者在实现上述两类布尔操作时, 并不是进行网格单元的实际对比, 而是比较两个特征entity_list里几何对象的ID:布尔加 (求两个特征包含的几何对象ID的并集) , 布尔减 (在前一个特征中减去两个特征包含的几何对象ID的交集) 。当最终模型里面包含的所有几何对象ID确定以后, 最终的FEM模型也就确定了。另外, 为了支持特征重排列, 笔者在特征表示中加入creation_order属性表示特征参加布尔运算的次序。这里还存在一个问题是:由于上述特征生成网格的顺序和组合的顺序不一致, 最终产生的FEM模型在节点序号上很可能是不连续的。节点序号不连续会给后面的分析过程带来不便。所以这里还需要对FEM模型中的节点进行重新编号。

5 实验结果与分析

本研究算法采用C++语言在WinXP系统上实现, 所用内核是ACIS 19, 网格划分部分基于NETGEN开源代码。带不同接口约束的特征生成网格的结果如图4所示, 为了清楚地显示, 两个特征进行了相对偏移。从图中可以看出, 本研究给出的算法不仅很好地处理了各种非流型模型的情况, 也保证了特征之间接触部分网格的一致性。多分辨FEM模型生成的一个例子如图5所示。原始输入模型特征建模的次序是F0-F1-…F8。这里仅列出了按照特征建立的原始次序产生的多分辨FEM, 特征次序重排列以后产生的FEM模型并未列出。图的第1列是输入模型中包含的所有设计特征和分析特征生成网格的结果;图的其余3列是根据特征的不同细节层次 (LOD) 和抽象层次 (LOA) 组合产生的不同分辨的FEM模型。从上往下, FEM模型的细节层次 (LOD) 逐步降低, 每向下一层移除一个特征;从左往右, FEM模型的抽象层次 (LOA) 逐步提高, 第3列是对F3平板阵列特征进行降维处理, 第4列是对F0基座特征进行降维处理。可以看到, 通过本算法只需要进行一次网格生成, 就能组合产生分析过程中所需要的各种分辨的FEM模型, 而不需要任何额外的全局或局部网格重构操作。

此外, 有研究表明[14], 对于很多分析应用, 使用六面体网格比四面体网格能够得到更高的分析精度。虽然本研究提出的方法目前主要针对四面体网格, 但是可以变更网格生成部分, 改用基于六面体网格的生成算法, 就能得到基于六面体网格的多分辨FEM模型, 方法的整体思路不变。当然基于六面体网格的生成算法需要考虑更多复杂的情况, 如网格生成的收敛性问题等。

6 结束语

本研究提出了一种基于特征的多分辨FEM模型快速生成方法, 能快速生成分析过程中需要的各种分辨的FEM模型。该方法的主要特点在于:①仅通过对特征的网格模型进行组合生成零件的多分辨FEM模型, 而不用独立生成每一个分辨的FEM模型, 因此算法效率高;②通过对特征进行以相关接口为约束的网格划分, 有效保证了特征网格之间在接口处具有一致性。目前该方法还不能处理增加新特征或对已有特征的尺寸修改等情况, 因此未来工作将是扩展现有方法, 使其能够处理这些情况。

【快速生成】推荐阅读:

原位生成07-19

过程生成05-18

生成因素05-29

动态生成05-31

构建生成06-28

质量生成06-30

优化生成07-02

生成07-03

三维生成07-06

风险生成07-07

上一篇:三维反演下一篇:混合交通网络设计