基于数据库的DELMIA虚拟人姿势参数化建模 来源: 发布时间:2015-04-10 浏览次数:169

基于数据库的DELMIA虚拟人姿势参数化建模

 Parametric Modeling of Visual Human Posture in DELMIA based-on Database

 袁允伟 乔玉炜 陈品华

(上海行健职业学院 上海 200072

      摘  要:数字虚拟人是DELMIA人机工程模块的重要组成部分。文章分析了DELMIA二次开发和DELMIA人体姿势的参数化建模的原理,研究了应用C#.NET编程语言在VS.NET开发环境下,基于数据库对DELMIA二次开发的关键技术和基本架构,最后给出了数字虚拟人姿势参数化建模的实例进行验证。

    关键词DELMIA 二次开发 数据库 数字虚拟人 人体姿势 

Abstract: The digit visual human module is one of the important parts in DELMIA Ergonomics. This paper analyzed the principle of DELMIA secondary development and the parametric modeling of DELMIA human body posture, and put forward the framework that adopt VS.NET develop environment and C#.NET program language, according to DELMIA secondary development by database , and provided the example of the rapid parametric modeling of the body posture of digit visual human.

Key words:  DELMIA, secondary development, database, digit visual human,body posture

引 言

 DELMIA(Digital Enterprise Lean Manufacturing Interactive Application,数字企业精益制造交互式应用)是法国达索公司公司继CATIA软件之后的又一大型软件。DELMIA广泛应用于航空航天、船舶汽车、电气电子等现代制造业。DELMIA人机工程模块提供了与工业生产虚拟环境集成的人体模型,将人和机器设备融于一个系统,对人机工程进行仿真,使人和机器设备相互适应,保障生产、维修和使用过程中人体的舒适性安全性,并提高工作效率。

数字虚拟人是DELMIA人机工程模块的重要组成部分。利用DELMIA软件可以创建数字虚拟人的各种动作姿态,但是对复杂的动作,手工参数设定过程繁琐,不便于教学和使用,参数数据也不易复用和分享。

本文的研究是以数据库技术为基础,采用数据库技术,建立人体姿势参数库,将人体动作姿势的数据参数存储在数据库中,利用DELMIA的二次开发接口,用外部程序操控DELMIA进行符合人体动作姿势的数字虚拟人快速参数化建模。

1   DELMIA软件的二次开发

   DELMIA软件的二次开发能实现CATIA软件目前不易实现的功能,提高工作效率。DELMIA二次开发必须调用CATIA软件本身提供的开发的接口。DELMIA支持两种二次开发方式:进程内应用程序方式和进程外应用程序方式。进程内应用程序方式是使用宏方式。在进程外应用程序方式中DELMIA提供了两种二次开发的技术:CAA C++技术和Automation技术。本文采用进程外应用程序方式的Automation技术,其原理是DELMIA作为提供Dispatch接口的服务器,二次开发的应用程序作为客户端通过Dispatch接口操控DELMIA程序。二次开发的应用程序并不是直接获取及处理DELMIA数据,而是在DELMIA进程之外,外部程序间接地通过DELMIA暴露的COM组件对象的方法和属性来获取、设置及处理数据。

    组件对象模型(Component Object Model,COM)是微软公司开发组件的一种规范,COM组件独立于编程语言,是建立在二进制可执行代码级的基础上。因为,COM对象可以用C++、C#和VB等任意一种语言调用,所以,DELMIA的二次开发程序可以用VB语言,也可以用C#语言编写。

DELMIA Automation中,程序和数据都被封装成了对象的形式,并形成逐层分枝的树状结构。Application是根对象,下面又派生出许多子对象。每一个对象都有其自己的操纵集合的方法和属性。DELMIA文档包含多种类型,如零件(Part)、产品(Product)等。

DELMIA人体姿势的参数化建模

利用DELMIA人机工程模块Ergonomics的Human Builder子模块可以快速创建虚拟人。DELMIA提供了站立、坐、伸展、跪等几种人体姿势,而现实环境中采用的各种人体姿势用DELMIA的Posture Editor人体姿势编辑功能人工设置来实现的。DELMIA的人体模型有头、锁骨、手臂、肘、手、手指、腰等30多个关节部位,许多的关节部位有3个自由度,总共有68个自由度。对复杂的人体姿势,需要人工设置和调整大量的自由度参数,不仅操作繁琐而且工作难度大。

DELMIA人体姿势的参数化建模是利用DELMIA提供COM组件进行二次开发。外部程序通过调用和设置人体模型的关节对象和自由度对象的参数,精确地进行快速建模,大大提高了建模效率和准确性。60多个自由度可产生成千上万种人体姿势,DELMIA人体姿势的参数化建模将参数存储在数据库,形成人体姿势数据库,可方便人体姿势数据的复用和分类管理,便于同其他PDM产品集成整合。参数化建模甚至可以通过外部程序进行间歇性的关节自由度参数设置,变换姿势形成动态仿真效果。

基于数据库的DELMIA二次开发的架构

    VS.NET是微软公司的集成开发平台,功能强,开发效率高。VS.NET与数据库、CATIA和DELMIA开放的二次开发COM组件能无缝连接和组合。

    在VS.NET平台中提供了VB.NET、C#.NET等多种高级语言。C#语言是强类型定义语言,语法严谨,C#语言是微软在.NET环境中的主推的编程语言,采用C#语言容易与其他PDM系统的集成。尽管,目前DELMIA二次开发案例采用C#的极少,要采用C#.NET进行DELMIA二次开发有不少困难,但是值得探索。

delmia_1.png

     图1  基于数据库的DELMIA参数化建模的技术架构

    图1所示基于数据库的DELMIA参数化建模的技术架构,在VS.NET开发环境中,采用C#.NET或VB.NET编程语言,开发DELMIA参数化设计的应用程序,程序通过数据库的COM组件访问数据库,取得数据后,通过DELMIA的COM组件,操控DELMIA软件建立人体姿势模型。

在上述架构中,人体姿势参数和数据分离与DELMIA图纸文件,独立存储在数据库中,提高系统的稳定性和安全性,实现数据共享和复用,为大型应用项目集成提供基础。

DELMIA和CATIA尽管都是独立产品,功能不同,但是内部架构是一致的,内核相同的,它们的提供的二次开发的COM组件可以互用。

 

3   基于DM数据库的DELMIA人体姿势参数化建模实例 

DM数据库是国产大型数据库,实例采用DM6.0安全版数据库,在Visual Studio .NET 2010环境下,用C#.NET2010编程语言,调用DM数据库的数据和启动和操控DELMIA软件。图2所示为实例C#.NET2010程序读取和更新DM数据库的人体模型姿势参数,调用DELMIA V5R18软件快速建模的程序流程。

delmia_2.png

           图2  人体姿态调整程序框图

3.1 创建VS.NET的解决方案

  (1)启动Visual Studio .NET 2010,在适当的目录地址,新建Visual Studio 空白解决方案

  (2)在解决方案内,添加Visual C# 语言的Windows窗体应用程序项目

  (3)在Windows窗体应用程序项目中新建Windows 窗体程序,在窗体页面和程序中实现对数据库的连接,数据的增删改,以及根据数据调用DELMIA软件,快速建模。

3.2建立C#.NET 的项目和Windows Form 窗体

   (1)在项目中添加引入 DELMIA的COM库函数

   (2)在Windows Form 窗体程序中引入命名空间

在窗体的程序代码页中引入DELMIA和数据库的相应命名空间。

(3)在窗体程序中实现对数据库数据的存取更新

实例中人体模型姿势参数是存放在DM 数据库的数据表中。窗体程序与数据库通过OleDb进行连接。在窗体页面和程序中实现对数据库的连接,数据的增删改,以及根据从数据库中获取的参数,调用DELMIA软件快速进行人体姿势造型的建模。

窗体程序与DM数据库通过OleDb进行连接。

connectionString="Provider=DMOLEDB.1;Data Source=LOCALHOST;Password=SYSDBA;User ID=SYSDBA;Initial Catalog=CATIA_GEAR1"

人体姿势的参数和相关数据要能够浏览、增加、删除和修改更新。在窗体程序的设计页,加入DataGridView控件和listView控件,引入BindingSource1数据源对象、DataSet数据集对象和TableAdapter数据表接口对象,实现与DM数据库的连接和对数据的操作处理。最后,将选中的DataGridView控件中的参数传送到DELMIA人体姿势快速建模子程序模块。

3.3 DELMIA人体姿势快速建模子程序模块

1)首先用C#.NET 2010 在DELMIA程序外启动或调用DELMIA软件,创建和调用DELMIA应用对象,建立DELMIA的文档文件和产品文档。

//定义DelmiaApp为INFITF应用对象

INFITF.Application DelmiaApp;

//如DELMIA已打开,则调用DELMIA应用对象;如DELMIA未打开,则创建DELMIA对象

DelmiaApp = (INFITF.Application)Activator. CreateInstance(Type.GetTypeFromProgID("DELMIA.Application"));

DelmiaApp.Visible = true;

    ……

//创建DELMIA文档对象

INFITF.Documents documents1;

documents1 = DelmiaApp.Documents;

//创建DELMIA产品文档对象

ProductDocument productDocument1;

productDocument1=(ProductDocument) documents1. Add("Product");

Product product1;

product1 = productDocument1.Product;

2)定义sWKHmiWorkbench人体工作台对象,和SWKManikin虚拟人对象,创建sWKManikin1虚拟人实体对象。

SWKHumanModelingItf.SWKHmiWorkbench sWKHmiWorkbench1;

sWKHmiWorkbench1= (SWKHumanModelingItf. SWKHmiWorkbench)product1.GetTechnologicalObject ("HumanWorkbench");

SWKHumanModelingItf.SWKManikin sWKManikin1;

sWKManikin1 = (SWKHumanModelingItf.SWKManikin) sWKHmiWorkbench1.CreateManikin("Manikin1",SWKHumanModelingItf.SWKAnthroSex.SWKAnthroSexMale, p1, n1);

sWKManikin1.set_Name(Name1);

……         

其中:

SWKHumanModelingItf.SWKAnthroSex.SWKAnthroSexMale 为男性;如女性则为SWKHumanModelingItf. SWKAnthroSex.SWKAnthroSexFemale。

p1变量为人体模型的百分位,DELMIA人机工程模块提供了5、50和95百分位的男女人体模型库。

n1变量为虚拟人模型的国籍,0为美国,1为加拿大,……

Name1变量为虚拟人的名字。

3)定义人体Body对象,分别获取人体各关节部位SWKSegment对象,取得各关节自由度SWKDOF对象,根据数据库传递的参数,分别设置自由度参数。

SWKHumanModelingItf.SWKBody sWKbodyl;

sWKbodyl = sWKManikin1.Body;

// '获取虚拟人关节对象, SHeNe为头颈

SWKHumanModelingItf.SWKSegment sWKSegment1;

sWKSegment1=(SWKHumanModelingItf.SWKSegment)sWKbodyl.GetItem("SHeNe");

SWKHumanModelingItf.SWKDOF sWKDOF01;

sWKDOF01=(SWKHumanModelingItf.SWKDOF)sWKSegment1.GetItem("DOF1");

sWKDOF01.Value = SHeNedof1;

……

程序中的“SHeNe”为头颈关节部位代码,另外,“RSArCl”、“RSArAr”分别为右锁骨、右臂关节部位代码,……。

“DOF1”为第一自由度代码,另外,“DOF2”、“DOF3”为第二、第三自由度代码。

   SHeNedof1 变量为程序中的头颈关节的第一自由度参数变量。

    图3是C#.NET编写的外部程序存取数据库数据后,调用DELMIA参数化建模的效果图。

    delmia_3.png

 图3 基于数据库的DELMIA人体姿势参数化建模效果图

4 结束语

    本文提出了基于数据库的DELMIA二次开发的架构,可采用C#编程语言进行DELMIA的二次开发,拓展DELMIA软件的功能。基于数据库的人体姿势的参数化建模实例,有助于建立人体姿势参数库,适应教学培训和仿真设计仿真的需要。

   参考文献

[1]刘金林,曾凡明,苏启军,巫影.基于CATIA的人体工程学在船舶动力装置虚拟设计中的应用研究[J].武汉理工大学学报,2008(8): 658 -660

[2]王占海,翟庆刚.DELMIA二次开发技术初探[J]. 西安航空技术高等专科学校学报,2010(1):1-3

[3]谭慧猛,王琛,吴东琦.DELMIA人机工程在支线飞机概念总装仿真中的应用[J].制造业信息化,2009(11):89-90

[4]王恒,姜楠.基于CATIA二次开发的人体模型关节驱动系统设计[J].扬州大学学报,2011(2):70-73

[5]王建芳.某轻型飞机的虚拟装配技术及DELMIA人机工程的二次开发研究[D]. 沈阳航空工业学院,2010