首页 >> 剃齿机

Teamcenter二次开发中PSE产品结构的获取及自动排序功能的实现远程控制器

2022-07-29 17:43:39 控制器    

Teamcenter二次开发中PSE产品结构的获取及自动排序功能的实现

Teamcenter二次开发中PSE产品结构的获取及自动排序功能的实现 2011年12月03日 来源: 1 引言产品生命周期管理(Product Lifecycle Management,简称PLM)是覆盖了从产品诞生到消亡的产品全过程的、开放的、互操作的一整套应用方案[1]。PLM不仅仅只是一套软件、一个系统,更是一种先进的管理思想,使得当代企业能够面向客户市场,快速重组产品每个生命周期中的组织结构、业务过程和资源分配,从而能够使企业实现整体利益最大化。对实施PLM而言,由于各个企业的状况及要求都是不一样的,必须满足不同企业特殊的需要。因此,二次开发是PLM实施过程中必不可少的一个环节。2 Teamcenter系统架构Teamcenter原先是全球著名的软件咨询和服务公司UGS公司的产品,现被西门子收购。它是一个以产品为中心的、覆盖产品生命周期各种活动与数据的、基于Web协同的集成解决方案.Teamcenter Gngilleering 2005由四层架构组成,分别是:(1)客户层:包括富客户端和瘦客户端,此层主要用于和用户进行信息交互。(2)Web层:是一个运行在J2EE服务器(如事件服务器BEAWebLogic)上的一个Java应用程序,主要负责客户层和企业服务层信息的交换。(3)企业服务层:包括一系列对Teamcenter服务和服务管理器进行配置的资源,此层主要用于向下连接并操纵数据库,向上为应用组件服务,如Web处理机制、API应用集成接口等。(4)资源层:包括数据库、卷和文件管理系统,其中文件管理系统包括FMS和TCFS。①Teamcenter File Management System(FMS)用于从富/瘦客户端及Teamcenter Visualization上/下载数据。②Teamcenter File service(TCFS)提供各种与卷有关的服务。Teamcenter的开发包括客户端和服务器端的开发:客户端的开发可以使用Java语言,而服务器端的开发可以通过集成开发工具ITK及C语言来实现。Teamcenter服务器端提供了丰富的配置工具。应尽量利用Teamcenter服务器端已有的功能,以减少开发量及避免因系统升级可能导致的程序废弃。基于以上考虑,本文将二次开发的重心放在客户端。3 客户端开发环境的搭建3.1 程序注册Teamcenter Engineering客户端的二次开发分为注册程序与开发程序两个阶段。所谓注册程序,就是要在Teamcenter Engineering的程序组内增添程序人口。由于是在PSE的基础上添加一个新的功能菜单。因此可以通过在客户化程序包com\ugsolutions\iman\pse目录下新建一个名为pse_user.properties文件,在其中添加相应的注册程序,及建立相应的Java文件。具体注册内容如下:(1)在pse_user.properties中注册功能菜单的Java文件名及路径。com.ugsolutions.iman.pse.PSEApplication.MENUBAR=com.ugSolutions.iman.pse.HTPSEApplicationMenuBar其中,HTPSEApplicationMenuBar为排序菜单的Java文件名。(2)在pse_user.properties中注册排序子菜单名称和相应Java文件名及路径。SortActiorn.NAME=BOM\u6392\u5e8fSortAction=com.ht.pse.check.SortAction其中,\u6392\u5e8f可以通过在DOS环境中输入native2ascii编译获得;SortAction为排序事件的Java文件名。(3)新建相应的Java文件,HTPSEApplicationMenuBar.java用于在PSE菜单栏中添加一个父菜单及一个排序子菜单,程序全路径为com.ugsolution.iman.pse.HTPSEApplicationMenuBar;sortAction.java用于实现零组件在PSE中的排序,程序全路径为com.ht.pse.check.SortAction。新建的两个类所处的层次及调用关系如图2所示。

二次开发程序类所处的层次

3.2 开发工具程序注册后,接下来就需要对前述空壳源文件进行代码编写、调试及编译。所需要用的工具就是Java语言的编译环境,包括JDK或Eclipse这样的Java集成开发环境等。4 装配结构获取及自动排序功能每一个零组件的修订版下都有一张包含此零组件信息的属性表,根据企业的特殊要求,需要按各零组件修订版下属性表中的图号属性顺序输出报表。尽管Teamcenter的PSE具有很强大的功能,本身就能在PSE中对零组件按照其ltemID进行自动排序,或者可以通过手动改变Sequence No的值来调整产品结构。但是,由于企业的特殊要求,需要将装配件(包括总装配件下的所有子装配)下的所有零组件按其修订版下的属性表中的图号进行自动排序。因此,额外开发出一个专门的排序功能菜单以满足其要求。在对产品结构进行排序前,首先要先获取其装配结构,本文采用递归算法来获取其装配结构,以及采用冒泡排序算法来对各子装配进行排序。以下以测试产品结构为例分别介绍程序实现的基本方法。4.1 产品结构的获取递归的含义是:为了描述问题的某一状态,需要用到它的上一状态;而描述上一状态,也必须用到它(指上一状态)的上一状态,这种用自己来定义自己的方法,称为递归定义。程序设计中,在调用一个函数的过程中又出现直接或间接调用函数本身,这称为递归调用[2]。由于一个装配件下可能还存在着若干个子装配件,整个装配的层次依具体产品的不同而变化,因此不能用固定次数的循环来获取其整个产品结构,而使用递归算法很容易解决这个问题。程序的基本思路如下: (1)首先定义一方法BOMSort(IMANComponentBOMLine Topline),用于获取顶层装配的下一层的所有子对象,如上罩、可控硅部件、后板组件和前板组件,将其存放在一数组中如childlist口,然后按其各自属性表中的图号屑性进行排序,有关排序在4.2节排序功能的实现中介绍。(2)使用一循环程序分别判断上罩、可控硅部件、后板组件和前板组件下是否还有子装配:若有则重新调用BOMsort(IMANComponentBOMLine currentLine)方法获取其结构并对其子装配进行排序。(3)依此类推,直至完成对整个装配件最底层子装配的排序,整个程序类似于X重循环,只是X(产品装配结构的层次)随着产品结构的不同而变化。在测试产品结构中,X为3,即最多为三层装配。递归算法获取装配结构的流程图如图所示。图中,X表示装配的层次,ix表示第X层装配下第i个零组件的序号,数组如childlistx[]用于存放位置为X层装配下的各个零组件。

递归算法获取装配结构的流程图

4.2 排序功能的实现在获取产品装配/子装配结构后,同时需要对其按照各、零组件修订版屑性表中的图号属性从小到大进行排序,即图号小的在前。本文采用冒泡排序算法对产品装配结构进行排序。冒泡排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止[3]。冒泡排序法可以通过一个固定的二重循环来实现,排序功能的流程图如图所示。图中,i、j表示要比较的零组件在数组childlistx[]中的序号.Size为数组childlistx[]的大小。

排序功能流程图

本文实现了PSE产品结构的自动排序功能,满足了设计人员的特殊需求,避免了因手动排序带来的时间浪费及错误,提高了工作效率,为PLM系统在公司设计部门的全面推广铺平了道路,也是对Teamcenter Engineering原有功能的一个有力补充,也可以被其他PLM系统所借鉴。参考文献:[1] 凌卫青,严隽薇,王坚.面向PLM的产品数据管理技术及其工具分析[J].计算机工程,2005,31(24):1-3.[2] 卢荣华,柳炳祥,余玉沽,等.递归与循环算法分析[J].电脑知识与技术。2005(12):151-154.[3] 李好,王永强.冒泡排序算法的分析与改进[J].唐山学院学报,2006,19(4):102-103.[4] 赖朝安.IMAN的二次开发关键技术[J].计算机工程与应用。2001,37(24):25-26.(end)

上海牛皮癣医院

昆明健康热点昆明正规男科医院有哪些

贵阳经行抽搐医院

北京神游症医院

西安市高陵区季节的变化会对白癜风造成影响吗

友情链接