近期热点
·如何释放C盘空间 27招具体优化技巧
·系统安装妙法:无光驱、无启动盘安装Windows系统
·CIO要提升企业管理的掌控能力
·SolidWorks Rx 系统诊断与分析 ( 下 )
·SolidWorks Rx 系统诊断与分析 ( 上 )
·第四届中国制造业ERP应用年会征文
 相关文章
·DELMIA三维数字化装配工艺设计与仿真技术应用研究
·DELMIA,数字化制造领域的领跑者
·郭朝红:DELMIA数字化制造解决方案
·DELMIA在飞机工艺设计与过程仿真的应用
·SIMULIA-未来的分析仿真平台
·DELMIA介绍
 相关新闻
·
德国大众汽车在装配环节全面部署达索系统DELMIA Process Engineer软件
·
波音为787全球团队实施达索新版数字工具
·
达索PLM解决方案研讨会顺利举行
·
丰田通过虚拟组装大大消除冲模问题
 相关热贴
·[求助]谁有DELMIA QUEST的学习资料?急盼
·离散数字仿真软件DELMIA/QUEST
·有大虾学过DELMIA/QUEST的吗,想请教
 相关商城商品
 
 
当前位置:技术信息化 -> CAPP
 
DELMIA软件的二次开发技术
发表时间:2007-4-2 贾朝定   来源:e-works
关键字:DELMIA 二次开发 数字化装配工艺 
DELMIA作为一款面向装配工艺工程师的CAD /CAM软件,随着在中国各制造行业应用领域的普及和深入,企业对DELMIA的个性化要求不断提高,所以应及早推广和掌握DELMIA的二次开发技术, 以满足国内制造业发展的需求。

三、程序开发

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

    DPE的程序以VB Script、VBA语言编写,同时系统提供了近百种函数,可以应用在数据处理、查询、版本、用户权限、图形控制等各方面。程序的管理与执行有三种方式:a. Script Command(脚本) 可以存在于系统库和项目库中,在数据对象节点上以右键下拉菜单命令的方式执行;b. VBA Macros(VBA宏) 可以定制较复杂的用户界面,在数据对象节点上以右键下拉菜单命令的方式执行,只能存在于项目库中,因此创建新项目时需要重新建立或复制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”(二进制),每一位代表的权限值如下:

Remove

Child

Add

Child

Change

Rigths

Take

Ownership

Erase

Create

Change

Excute

Read

No

Access

1

1

0

0

0

0

1

1

1

0



五、结束语

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

本文系e-works专稿,未经授权严禁转载。
 
2页,当前第2
责任编辑:王阳