首页 > 方案案例 > 正文

ActiveX控件技术在PDM系统三维图档管理中的应用

2009-12-18 10:09:26  来源:万方数据

摘要:研究了ActiveX控件技术在图档浏览中的应用,在PDM系统中利用三维模型浏览控件SEPartX和二维工程图浏览控件SEDraftX,来实现对三维模型和其相应二维工程图的动态交互式浏览,该技术避免了图
关键词: 计算机应用 图档管理

  产品数据管理是一种管理与产品相关信息的工具,它对产品设计、制造、维护阶段的信息进行存储和控制。图档管理系统是企业PDM系统的一个子系统,它主要管理和使用产品设计中的图形文件和相关的文档信息。在制造企业中,图档是企业的核心,而在制造业信息化的今天,图文档管理则是PDM系统的核心。随着计算机辅助设计技术的不断提高,图形数据已经不再是单纯的二维工程图,还有许多三维模型,这些三维模型文件都比较大,不适合网上传播,这就对图档管理提出了新的要求。目前的研究已经很多,但多数集中在对二维文档尤其是AutoCAD的*.dwg的浏览上;三维文档的管理只注重产品结构,图档浏览只能通过驱动CAD系统打开相应文档来实现,这就不能做到真正的CAD与PDM的无缝集成,而且CAD图档被打开之后,技术资料的安全性面临挑战;同时对于三维模型的研究,静态浏览较多,对于动态浏览较少。因此,PDM系统内部二维和三维图档的无缝、动态和交互式浏览是其最基本的技术核心。运用ActiveX控件技术,对三维浏览控件进行编程和设计,实现对三维模型和其相应二维工程图的动态浏览,为产品数据管理系统提供虚拟可视化环境。

  1 ActiVeX控件和Solid Edge的ActiveX Automation对象模型

  Activex控件也叫作OCX控件,一般存放在扩展名为.OCX的文件中,它是一种面向对象的组件系统,这些组件对象为用户提供了各种不同的功能,使得不同软件供应商提供的组件可在二进制级进行相互连接和通信,对象通过接口实现组件之间及组件与系统之间的相互作用。ActiveX控件提供一些方法(Methods)和属性(Properties)供客户程序使用,客户程序一般称为自动化控制器或容器应用程序,通过调用方法、设置属性来控制和使用ActiveX控件。在特定条件下,ActiveX还可以产生相当于Windows编程中的通知消息的事件(Events),以通知客户程序当前发生了什么事情。对Activex控件进行编程关键就在于如何使用它的方法、属性和事件。Activex控件的前身是OLE控件,它基于COM服务器进行操作,与开发平台无关,在一种编程语言上开发的Activex控件可以无须任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样。ActiveX控件在不同的编程语言之间架起了一座桥梁,拓展了各种编程语言开发程序的能力,可实现快速小型的组件重用、实现代码共享,从而提高编程效率,缩短开发周期。

  Solid Edge提供了许多的二次开发手段。ActiveX Automation作为Solid Edge中提供的编程接口,允许使用任何自己熟悉的可以作为Automation客户的开发工具从外部访问SolidEdge的Automation对象,充分利用solid Edge提供的功能。Solid Edge将内部的可编程的Amomation对象以层次结构组织起来,要掌握Solid Edge的开发,首先必须理解其层次结构,下面以Pan(模型)层次树为例来说明对象的访问路径(见图1)。顶层对象是Application对象,代表启动的Solid Edge应用程序的一个实例,通过Application对象可以定位到其它对象。第2层是Documents(文档集),包括Part Document(零件文档)、Assembly Document(装配体文档)、Draft Document(工程图档)、Sheet MetalD0cument(钣金文档)。第3层是具体的某个文档如Pan Document,Document对象代表当前在Solid Edge应用程序窗口中打开并操作的一个Solid Edge图形文件。第4层是模型Models(模型集)对象和Hole(孔)对象。第5层是具体的模型和孔。接下来是Feature(特征)。要访问一个对象,必须从层次树的顶部向底部遍历,直至找到需要访问的对象。

  

对象层次结构图

 

  图l 对象层次结构图

  2 基于ActiveX控件的三维PDM图档管理

  利用三维设计软件提供的Activex控件,可以跨平台编程使用,下面介绍s01id Edge提供的ActiveX控件在PDM系统中的编程和应用:在Solid Edge软件中,有两个浏览器控件:SEPanX和SEDraftX,SEPanX控件用来浏览Solid Edge的零件图(后缀为par)和装配图(后缀为asm);SEDraftx控件用来浏览由零件图和装配图转换而来的二维图(后缀为dft)。

  在使用该浏览器控件前,必须安装和加载相关软件和控件,并调试好编程环境。首先,安装Solid Edge软件,并安装浏览器控件SEPartX和SEDraftX。然后在编程环境的组件选择项中选择SEDralftX ActiveX Control Module和Solid Edgepart Viewer control选项,加载组件。如果没有找到这两个组件,可以通过加载SEDraftX.ocx和SEPanx.ocx文件将它们加载到组件列表中。接着,在引用中选取与Solid Edge有关的solid Edge库;Solid Edge装配类型库,Solid Edge常数类型库,Solid Edge二维图档库类型库,Solid Edge文件属性对象库,Solid Edge工作框架类型库,Solid Edge工作框架支持类型库,Solid Edge几何类型库,Solid Edge零件类型库等。

  下面以VB6.0的环境为例加以说明:

  VB6.0提供两个函数调用Solid Edge:Createobiect和Getobiect。CreateObject用以新建Solid Edge应用对象的实例;GetObject既可以新建一个对象实例,又可以连接到一个已存在的实例。通常在solid Edge尚未运行,Visual Basic程序启动Solid Edge;当Solid Edge运行时,VisualBasic程序直接访问应用对象。然后按照SolidEdge的对象层次结构进行访问,语句如下:

  Set objApp=

  GetObject(,“SolidEdge.Application”)

  If Err Then

  Err.Clear

  Set objApp=CreateObject(“SolidEdge.Application”)

  EndIf

  Set objDocs=objApp.Documents

  Set objDoc=objDocs.Add(”SolidEdge.PanDocument”)

  …

  2.1 利用浏览控件实现三维和二维图形文件的动态浏览

  (1)新建一个Form,在Form中添加一PictureBox控件。

  (2)在PicutrueBox控件上添加一个二维浏览器控件SEDraft或三维浏览器控件SEPartX。

  (3)初始化这两个控件

  1)通过MouseAction属性设置它们的鼠标移动属性,在二维浏览器控件中通常将其设置为“pan”(移动);在三维浏览器控件中通常将其设置为“rotate”(旋转);当需要将图形放大缩小时,将属性设置为“zoom”(缩放)。

  2)通过ShowToolbar属性设置它们的工具栏显示属性,通常设置为“False”。

  3)通过BorderStrlye属性设置它们的边框属性,通常设置为无。

  4)通过Top,Left,Width,Height这4项属性来设置浏览窗口在屏幕中的位置。通常在取得Picture的宽度和高度之后将其赋值给浏览控件的Width和Heigh。而Top和Left设置为0。

  5)通过BackColor属性设置浏览的背景颜色。根据整个程序的风格来设定。

  6)通过Visible属性设置浏览器可见与否。通常当只使用一个浏览器时,设置为可见,而如果同时在一个位置使用两个浏览器,需要将它们交替设置为可见和不可见。

  7)将控件的AutoFit属性设置为“True”,可以缩放一个对象以使其充满整个框架,反之则设置为“False”。立体图的表达分为“平行投影”和“透视投影”,将控件的ViewPerSpective属性设置为“True”,可以显示三维模型的“透视投影”,设置为“False”,则显示“平行投影”。

  8)三维模型的渲染可通过设置控件的DisplayMode属性来变换。属性设置为“Smooth”,渲染模式为平滑着色;属性设置为“VHL”,渲染模式为线框消隐;属性设置为“Wireframe”,渲染模式为线框着色。

  9)设置控件的“viewType”属性可以显示模型的各个方向的视图。属性设置为“iso”,显示轴测图;属性设置为“top”,显示俯视图:属性设置为“front”,显示主视图:属性设置为“left”,显示左视图:属性设置为“bottom”,显示仰视图:属性设置为“back”,显示后视图;属性设置为“right”,显示右视图。

  10)通过相应的文件属性(二维浏览器的DraftFile属性和三维文档PartFile属性)指定需要浏览的文档。即可以浏览相应的图档,点击图标rotate,可旋转三维模型;点击图标zoom,鼠标往下拖,放大模型,鼠标往上拖,缩小模型;点击图标pan,平移图档;点击图标fit,显示视图充满整个框架;点击图标perspective,显示三维模型透视图;点击图标shade,渲染模式在平滑着色和线框着色之间切换;点击图标甜named view,显示三维模型分别在线框模式和渲染模式下的IS0视图和六面(top、front、left、bottom、back、right)视图。

  2.2 利用浏览控件实现三维和二维图形文件的打印

  通过上述的方法,可以基本解决图档浏览问题。如果需要涉及文档浏览状态下的打印问题,需要按照以下的步骤进行。对于三维图档(包括*.par和*.asm),先获取控件的模型文档,并将其增强图元文件拷贝到系统剪贴板中,从而将增强图元文件读取到一个图片对象中,最后调用过程PrintDrawing打印该图片。二维工程图(*.dft)浏览状态下的打印和三维图档类似,不同之处在于Solid Edge的一个二维图档中可以包含多幅工作页(sheet),必须先依次获取各幅工作页并引用其内存,最后依次打印。以下介绍三维图档浏览状态下打印的详细步骤:

  (1)对于图档的打印,通过其ReadyState的值判断该文档是否处于浏览状态。不在该状态下的图档不能被打印。当ReadyState的值为4时,该图档可以被打印。

  (2)将当前模块的鼠标指示器保存为OldMousePointer,以便打印完成以后恢复其值。然后将鼠标指示器值设置为vbHourglass,使鼠标在等待打印的期间变成时钟沙漏形式。

  (3)清空剪贴板,用调用三维浏览控件的CopyEMFTOClipboard方法将增强图元文件拷贝到剪贴板, 语句为“Call SEpartXl.CopyEMFToClipboard”。接着再将剪贴板中的内容读取到一个图片对象,调用PrintDrawing过程打印。

  (4)PrintDrawing过程包含三个参数:由增强图元文件转换而来的图片对象、打印设备和三维文档路径。该过程先设置图纸的方向,在TWIPS模式下计算左边和顶部的页边距,计算图纸上实际的图形区域;重新计算图纸的宽或高以维持图形的比例:将图形尺寸从HIMETRIC模式转换为TWIPS模式(TWIPS模式和HIMETRIC模式都是描述在屏幕和打印机显示或打印的窗体的一种坐标体系,TWIPS模式每个逻辑单位为打印点的l/20,即l/1400英寸,x正方向向右,y方向向上;HIMETRIC模式每个逻辑单位转换为O.0l毫米,x正方向向右,y的正方向向上);通过Device.PaintPicture方法打印图型;设置字体:打印图名;恢复旧的字体设置,恢复旧的鼠标设置。

  对于有多幅工作页(sheet)的二维图档,需要将上述PrintDrawing过程重复多次,以便打印每一个工作页。

  通过上述的编程开发,可以实现对于SolidEdge三维零件模型(后缀为.par)、三维装配模型(后缀为.asm)和二维工程图(后缀为.dft)的浏览和打印功能,与直接打开CAD文档的唯一区别是不能对图形文档进行修改,其他功能等同于CAD环境,而且没有图形数据的转换,避免了数据丢失。在PDM环境中,不同职能的用户对图档拥有不同的权限,设计人员对于自己的设计项目在设计期间拥有完全权限,图档提交后,需要使用该图档,必须通过上级批准。同项目小组成员并行设计时需要参考图档,只能浏览,不可以直接修改图档。总工程师和项目经理可根据企业的相关制度浏览或直接进入图档。其他无关人员未经批准不能浏览或打开图档。因此,浏览功能为保护企业的核心技术资料提供了技术保障。同时,某个CAD文档不能在同一时刻被多人打开和操作,而基于ActiveX控件的浏览器允许在企业内部网和Internet上通过嵌入IE实现同一时刻对同一文档的并行、异地访问和远程打印,并且数据传输量小,速度快。运用该浏览控件,仅需要在服务器端口安装CAD软件,客户端只需下载OPENSE插件,即可实现三维交互式网上浏览。

  3 应用实例

  下面是自主开发的一个PDM系统,运用ActiveX浏览控件编程实现了图形动态可视。如图2所示,左边的树型结构表达产品的层次结构,右上方的列表表达产品的详细数据,右下的图形浏览器可快速浏览图档。当用鼠标点击左边的树形列表时,可以查看产品的层次结构,譬如在“小车”产品下有许多零部件节点,其中包括“卷筒组”。用鼠标点击卷筒组节点,右上方列表中将出现卷筒的详细数据。点击该列表中的数据,其下方的浏览器中将出现卷筒组的装配图(浏览器左下方)和装配结构树(浏览器左上方)。用鼠标右击浏览器中的卷筒组.aSm,设置成“explore”模式,浏览器的右方将显示该卷筒组的零件分解图。

  

部件三维模型及分解图浏览

 

  图2 部件三维模型及分解图浏览

  此外。还可以通过“count”统计部件所属的零件个数。

  点击“显示相应二维工程图”按钮,将图档的浏览状态改为二维状态,可浏览该文件的相应二维工程图。在此状态下,按钮的文字变为“显示相应三维模型图”,图档的浏览状态又回到三维状态。所以通过该按钮,可轮流浏览相应的二维和三维图档,实现两者之间的转换。

  点击“打印二维工程图”按钮可以在二维浏览状态下打印相应的二维图档。

  点击“打印三维模型图”按钮可以在三维浏览状态下打印相应的三维图档。

  点击“打开文档”按钮,可以进入到图档的CAD状态下,进行文件的修改,浏览,存盘等操作。

  点击卷筒组的下属零件,如“轴承座”可以看到该零件的三维图形。如需要知道零部件的详细路径,可以点击“显示图档路径”按钮。

  4 结束语

  利用Activex控件技术为产品数据管理系统提供图档管理的核心浏览技术。由于该方法不需要安装相应的CAD软件,使之可以进一步扩展到远程应用,远程计算机通过网络,下载浏览控件,可在普通网页中动态浏览和打印三维和二维文档。该方法适用于多种编程语言,与平台无关,可移植性强,编程效率高,开发周期短,为实现基于Web的三维PDM系统图档浏览功能提供了一种较为实用的方法。


第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。