武汉绘芯科技有限公司欢迎您!
10余年经验沉淀展览展示运动控制的专家
全国咨询热线:027-87052087
联系我们
武汉绘芯科技有限公司
电话:027-87052087
手机:13329706647
邮箱:956693667@qq.com
地址:武汉市江夏区藏龙岛谭湖一路8号
联系人:黄先生
您的位置: 滑轨屏|绘芯科技 > 知识库 >
知识库

DELMIA软件的二次开发技术

日期:2016-07-30 15:04:11 来源:未知 点击

DELMIA作为一款面向装配工艺工程师的CAD /CAM软件,随着在中国制造行业应用领域的普及和深入,企业DELMIA的个性化要求不断提高,所以应及早推广和掌握DELMIA的二次开发技术, 以满足国内制造业发展的需求。

一、前言

   
数字化技术的应用从根本上改变了传统的飞机设计与制造方式,最大幅度地提高了产品的设计水平与开发速度,最大限度地减少了设计返工与制造返修。法国达索系统DELMIA在世界数字化制造领域一直处于领先地位,成都飞机公司是国内首家在飞机的装配工艺中以DELMIA平台实施了数字化装配工艺设计与过程仿真技术的厂家,取得了显著的效益。

DELMIA
软件系统包括两个相互关联的独立软件,DPEDELMIA Process Engineer)与DPMDigital Process Manufacturing),前者为数字化工艺规划平台,它建立产品数据、资源数据和工艺结构,并将三者有效地关联在一起,实现工艺方案的评估、各种数据的统计计算、装配工艺结果的输出等;后者提供工艺细节规划和验证应用的环境,以产品、工装的三维模型并结合DPE已设计好的工艺流程进行数字化装配过程的仿真验证,二者通过唯一的PPR Hub数据库共享数据。DPE最早针对航空制造业和汽车制造行业而开发的,系统提供的默认模板通用性较强,具有友好的用户界面及用户使用习惯。由于飞机制造行业的特点及各企业在技术标准方面、数据管理方面、输入输出需求方面的差异,使得DPE的通用模板难以应对不同的用户,而二次开发能较好地解决这个问题。DELMIA的二次开发主要指对DPE进行二次开发,按照企业的不同需求,进行客户化定制。

二、PTSplantypesets)定制

    DPE
管理的数据包括三部分:P-产品(product)、P-工艺(process)、R-资源(resource)。每个企业有多个项目,每个项目有自己的数据结构树,PPR数据从属于结构树上的不同节点(类似于文件夹和文件),它们在结构树上的层次关系、显示方式和具有的各种属性由系统库中的结构模板决定,系统库的改变会影响到所有的项目。PTS定制实质就是定制系统库中的结构模板。

    1.
建立企业的数据类型(Tpye)和层次关系

   
进入DPE系统库,新建本企业的数据结构模板,按企业的技术标准在模板下平行建立节点(一种数据类型对应一个节点),如产品下有数据类型:子装配件、零件、标准件、上机材料、工艺材料等;工艺下有数据类型:工位、AO、工序等;资源下有数据类型:公司、车间、工位、装配夹具、地辅工装、工具等。各数据类型之间存在隶属层次关系,DPE系统提供了拖拽的方法将一种数据类型节点拖到另一种数据类型节点下来建立它们之间的上下级关系。实际的项目应用中,装配件下有子装配件,子装配件下还有子装配件,因此对于子装配件这种数据类型需要在其设置上勾上“recursiv(递归)选项。
   09120401.jpg

下载 (64.55 KB)

2009-12-4 09:51


图一  数据类型及层次关系

    2.
建立、设置数据类型的属性

    DPE
系统提供了大量的基本类型,它们具有各种各样的属性,基本上能覆盖绝大部分工业上的应用。由于定制的数据类型都是基于基本类型而建立的,它可以继承基本类型的各种属性,也可以手工建立属性,我们推荐尽可能使用继承、少许修改的方法。我们选中基本类型需要的属性,通过右键下拉菜单的“overwrite”命令在数据类型的属性节点下建立类型属性,每一种数据类型属性的右窗口中显示了45种特性,他们定义了数据类型的属性在页面上的外观、属性的单位、精度、字符长度、范围、是否只读、程序调用时的类型名称等等信息,我们只需要对它们进行简单的修改和设置。

下载 (65.69 KB)

2009-12-4 09:51


图二  数据类型的属性


三、程序开发

   
基于上面建立的PTS,我们就可以进行新项目的建立,但此时项目中数据对象都是静态的,不能随着用户的操作而改变,还不能满足使用要求。下列情况下还需要程序支持(控制):a. 批量输入产品、工装数据时;b. 输出装配工艺设计结果(AOMBOM、各种报表)时;c. 操作会影响到数据对象的某些属性值时;d. 按一定的数学运算法则计算时;e. 进行用户权限的辅助管理时。

    DPE
的程序以VB ScriptVBA语言编写,同时系统提供了近百种函数,可以应用在数据处理、查询、版本、用户权限、图形控制等各方面。程序的管理与执行有三种方式:a. Script Command(脚本) 可以存在于系统库和项目库中,在数据对象节点上以右键下拉菜单命令的方式执行;b. VBA MacrosVBA宏) 可以定制较复杂的用户界面,在数据对象节点上以右键下拉菜单命令的方式执行,只能存在于项目库中,因此创建新项目时需要重新建立或复制VBA宏;c. Script Action(类似于VB中的事件) 由用户的操作来触发本事件,可以存在于系统库和项目库中。

   
任何PPR Hub数据库中的数据对象都隶属于某一特定的项目,一个数据对象一旦建立就在项目库中建立了一个根对象,它具有唯一的标识符“baseid”,同时在项目的PPR树上可以表现出多个实例(例如一个零件可以装配在产品的多处地方),实例具有唯一的标识符“id”,用户开发的程序就是通过这两个唯一的标识符访问数据对象。针对根对象和实例的访问需要引用不同的标识符。

   
项目根节点的标识符按以下方法获得:
project_id = Data.GetAttributeById(object_id, "ergoproject")

   
根对象与实例的标识符有以下关系:
object_baseid = Data.GetAttributeById(object_id, "ergocompbase")

   
数据对象的上一级节点的标识符按以下方法获得:
parent_id = Data.GetAttributeById(object_id, " ergocompbase_parent ")

   
遍历数据对象下的所有子节点:
Sub main(object_id)
Child_id = Data.GetFirstChild(object_id, " nodes ")
  If Child_id <> "" Then
   Do While Child_id <> ""
    Call main(Child_id)
     ……
     
对某个数据对象进行操作
     ……
    Child_id = Data.GetNextChild(object_id, " nodes ")
  Loop
End If
End Sub

四、用户管理

   
一个企业有多个项目,每个项目下包含许多不同类型的数据对象,数据存在于PPR Hub数据库供大家共享,此时,用户管理在项目的实施中显得尤其重要。不同用户对于不同项目、不同类型的数据对象应具有不同的访问权限,因此DPE中需要按用户在企业中的角色来分配相应的权限。

    DPE
采取了与windows相似的用户管理方法,按用户和组划分,每个人对应一个用户,每个用户可以隶属多个组,访问权限既可指定给用户,也可以指定给组。权限分为三类:a. 功能权限  决定用户是否具有打印、保存、更改密码、执行程序、新建项目等功能;b.PTS中数据类型是否具有读、写、更改、拒绝访问等权限,它的设置会影响到DPE中的每一个项目;c. 对项目库中每一个具体数据对象是否具有读、写、更改、拒绝访问等权限,它只针对当前项目有效。如果同时对项目中的数据对象和PTS中的数据类型指定了访问权限,这时权限的作用有优先顺序,由高到低是:用户对数据对象的权限用户对数据类型的权限组对数据对象的权限组对数据类型的权限。

   
实际应用中,DPE用户管理还不能完全解决权限分配问题,例如:产品数据对于普通工艺员来说是不可更改的,但是工艺员将产品连接到工序上时,产品属性数量值应该随之减少,由于工艺员对产品数据的权限设定为只读,执行连接时,系统不允许这样的操作,而如果设定工艺员有更改产品的权限,又会导致产品数据失去保护作用。怎么办?使用程序驱动的方式可以较好地解决这个问题,工艺员执行连接操作时激活事件,事件处理程序中添加代码,获得用户对当前产品数据的权限并存储起来,同时临时设置用户对当前产品数据具有“change”权限,在进行相应操作后恢复对原产品数据的访问权限,这是一种后台执行的方式,对工艺员来说是不可见的,有效地保护了数据。程序代码如下:

    Function sa_link(object_id)
User_id = Rights.GetCurrentUser() ‘
获得当前登录用户
TempRight = Rights.GetSingleRight(object_id , User_id) ‘
存储对象原来的权限
Call Rights.SetSingleRight(object_id , User_id, 782) ‘
设置“change”权限
     …
  
对当前数据对象进行操作
     …
Call Rights.SetSingleRight(object_id ,User_id,TempRight)‘
恢复对象原来的权限
        End Function
程序中“782”(十进制)对应“1100001110”(二进制),每一位代表的权限值如下:
09120403.jpg

下载 (16.52 KB)

2009-12-4 09:51




五、结束语

    DELMIA
作为一款面向装配工艺工程师的CAD /CAM软件,随着在中国各制造行业应用领域的普及和深入,企业对DELMIA的个性化要求不断提高,所以应及早推广和掌握DELMIA的二次开发技术, 以满足国内制造业发展的需求。

 


在线客服
联系方式

热线电话

13329706647

上班时间

周一到周五

公司电话

027-87052087

二维码
线