DELMIA软件的二次开发技术

上传人:鲁** 文档编号:504943153 上传时间:2023-01-26 格式:DOCX 页数:5 大小:39.55KB
返回 下载 相关 举报
DELMIA软件的二次开发技术_第1页
第1页 / 共5页
DELMIA软件的二次开发技术_第2页
第2页 / 共5页
DELMIA软件的二次开发技术_第3页
第3页 / 共5页
DELMIA软件的二次开发技术_第4页
第4页 / 共5页
DELMIA软件的二次开发技术_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《DELMIA软件的二次开发技术》由会员分享,可在线阅读,更多相关《DELMIA软件的二次开发技术(5页珍藏版)》请在金锄头文库上搜索。

1、DELMIA作为一款面向装配工艺工程师的CAD /CAM软件,随着在中国各制造行业应 用领域的普及和深入,企业对 DELMIA 的个性化要求不断提高,所以应及早推广和掌握 DELMIA的二次开发技术,以满足国内制造业发展的需求。一、前言数字化技术的应用从根本上改变了传统的飞机设计与制造方式,最大幅度地提高了产品 的设计水平与开发速度,最大限度地减少了设计返工与制造返修。法国达索系统的DELMIA 在世界数字化制造领域一直处于领先地位,成都飞机公司是国内首家在飞机的装配工艺中以 DELMIA为平台实施了数字化装配工艺设计与过程仿真技术的厂家,取得了显著的效益。DELMIA软件系统包括两个相互关联

2、的独立软件,DPE(DELMIA Process Engineer)与DPM (Digital Process Manufacturing),前者为数字化工艺规划平台,它建立产品数据、资源数据 和工艺结构,并将三者有效地关联在一起,实现工艺方案的评估、各种数据的统计计算、装 配工艺结果的输出等;后者提供工艺细节规划和验证应用的环境,以产品、工装的三维模型 并结合DPE已设计好的工艺流程进行数字化装配过程的仿真验证,二者通过唯一的PPR Hub 数据库共享数据。 DPE 最早针对航空制造业和汽车制造行业而开发的,系统提供的默认模 板通用性较强,具有友好的用户界面及用户使用习惯。由于飞机制造行业的

3、特点及各企业在 技术标准方面、数据管理方面、输入输出需求方面的差异,使得DPE的通用模板难以应对 不同的用户,而二次开发能较好地解决这个问题。DELMIA的二次开发主要指对DPE进行 二次开发,按照企业的不同需求,进行客户化定制。二、PTS (plantypesets)定制DPE管理的数据包括三部分:P-产品(product)、P-工艺(process)、R-资源(resource)。 每个企业有多个项目,每个项目有自己的数据结构树,PPR数据从属于结构树上的不同节点 (类似于文件夹和文件),它们在结构树上的层次关系、显示方式和具有的各种属性由系统 库中的结构模板决定,系统库的改变会影响到所有

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

5、需要在其设置上勾上“recursiv (递归)”选项。+ T Car&jvMia+ PracwMn-芒S PjYrtS+ 曰 Rfi*t+勺函30刊M s 曰 hrfbavwwn 勺 reow+ 卜计-Ul rE 亡J CcniJjmjftieSwl Mgb蛀KtcwiivIdtnufitr AUIdintifiK TLBSarlinf; Cril图一 数据类型及层次关系2.建立、设置数据类型的属性DPE 系统提供了大量的基本类型,它们具有各种各样的属性,基本上能覆盖绝大部分工 业上的应用。由于定制的数据类型都是基于基本类型而建立的,它可以继承基本类型的各种 属性,也可以手工建立属性,我们推荐

6、尽可能使用继承、少许修改的方法。我们选中基本类 型需要的属性,通过右键下拉菜单的“overwrite”命令在数据类型的属性节点下建立类型属 性,每一种数据类型属性的右窗口中显示了45 种特性,他们定义了数据类型的属性在页面 上的外观、属性的单位、精度、字符长度、范围、是否只读、程序调用时的类型名称等等信息,我们只需要对它们进行简单的修改和设置。图二 数据类型的属性三、程序开发基于上面建立的PTS,我们就可以进行新项目的建立,但此时项目中数据对象都是静态的,不能随着用户的操作而改变,还不能满足使用要求。下列情况下还需要程序支持(控制):a.批量输入产品、工装数据时;b.输出装配工艺设计结果(AO

7、、MBOM、各种报表)时; c.操作会影响到数据对象的某些属性值时;d.按一定的数学运算法则计算时;e.进行用户 权限的辅助管理时。DPE的程序以VB Script、VBA语言编写,同时系统提供了近百种函数,可以应用在数 据处理、查询、版本、用户权限、图形控制等各方面。程序的管理与执行有三种方式:a. Script Command(脚本)可以存在于系统库和项目库中,在数据对象节点上以右键下拉菜单命令 的方式执行;b. VBA Macros (VBA宏)可以定制较复杂的用户界面,在数据对象节点上 以右键下拉菜单命令的方式执行,只能存在于项目库中,因此创建新项目时需要重新建立或 复制VBA宏;c.

8、 Script Action(类似于VB中的事件)由用户的操作来触发本事件,可以 存在于系统库和项目库中。任何PPR Hub数据库中的数据对象都隶属于某一特定的项目,一个数据对象一旦建立就 在项目库中建立了一个根对象,它具有唯一的标识符baseid”,同时在项目的PPR树上可以 表现出多个实例(例如一个零件可以装配在产品的多处地方),实例具有唯一的标识符id”, 用户开发的程序就是通过这两个唯一的标识符访问数据对象。针对根对象和实例的访问需要 引用不同的标识符。项目根节点的标识符按以下方法获得:project_id = Data.GetAttributeById(object_id, ergo

9、project)根对象与实例的标识符有以下关系: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 ThenDo While Child_id Call main(C

10、hild_id)对某个数据对象进行操作Child_id = Data.GetNextChild(object_id, nodes )LoopEnd IfEnd Sub四、用户管理一个企业有多个项目,每个项目下包含许多不同类型的数据对象,数据存在于PPR Hub 数据库供大家共享,此时,用户管理在项目的实施中显得尤其重要。不同用户对于不同项目、 不同类型的数据对象应具有不同的访问权限,因此DPE中需要按用户在企业中的角色来分 配相应的权限。DPE 采取了与 windows 相似的用户管理方法,按用户和组划分,每个人对应一个用户, 每个用户可以隶属多个组,访问权限既可指定给用户,也可以指定给组。权

11、限分为三类:a. 功能权限决定用户是否具有打印、保存、更改密码、执行程序、新建项目等功能;b.对PTS 中数据类型是否具有读、写、更改、拒绝访问等权限,它的设置会影响到DPE中的每一个 项目; c. 对项目库中每一个具体数据对象是否具有读、写、更改、拒绝访问等权限,它只 针对当前项目有效。如果同时对项目中的数据对象和PTS中的数据类型指定了访问权限, 这时权限的作用有优先顺序,由高到低是:用户对数据对象的权限-用户对数据类型的权限 -组对数据对象的权限-组对数据类型的权限。实际应用中,DPE用户管理还不能完全解决权限分配问题,例如:产品数据对于普通工 艺员来说是不可更改的,但是工艺员将产品连接

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

13、hts.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”(二进制),每一位代表的权限值如下:Remove ChildA(fdEldChange RigthsTake OwnershipEraseCreateChangeExcirteReadNoAccessII000nIIIq

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号