本文简要介绍了与Solid Edge二次开发相关的ActiveX Automation技术,以及采用VB二次开发Solid Edge的基本原理和方法。为读者提供了采用VB二次开发Solid Edge的整体思路。
一、引言
Solid Edge是EDS公司推出的普及型主流CAD软件包,是EDS PLM系统的一个分支。基于特征的参数化、变量化设计技术,使其操作方便,简单易学。此外,Solid Edge还为用户提供了采用标准Windows“对象链接与嵌入(OLE)”技术和“部件对象模式(COM)”技术的应用程序接口,开发者和用户能够通过使用Visual Basic、Visual C++以及任何一种支持ActiveX Automation技术的工具,对Solid Edge进行二次开发,来适应用户的一些特殊要求,减少重复性建模制图工作,全面扩展Solid Edge的功能或将其功能集成到客户应用程序中,以实现Solid Edge的完全客户化。本文介绍了基于ActiveX Automation技术开发Solid Edge的基本原理。
二、 ActiveX Automation技术与Solid Edge的对象层次结构
1. ActiveX Automation技术
ActiveX Automation是Microsoft公司提出的一个基于COM的技术标准,以前被称为OLE技术,其宗旨是在windows系统的统一管理下,协调不同的应用程序,准许这些应用程序之间相互沟通、相互控制。它通过在两个程序间安排对话,达到一个程序控制另一个程序的目的。其过程为:首先一个应用程序决定引发ActiveX Automation操作,这个应用程序自动成为C1ient,被它调用的应用程序成为Server。Server收到对话请求后,决定暴露哪些对象给C1ient。在给定时刻,由C1ient决定实际使用哪些对象,然后ActiveX Automation命令被传给Server,由Server对命令作出反应。Client可以持续地发出命令,Server忠实地执行每一条命令,最后由Server提出终止对话。
这里将So1id Edge理解为一个服务程序(Server),而二次开发出来的程序为客户程序(C1ient)。用户只要在客户程序上进行操作,客户程序将驱动So1id Edge完成相关的工作,用户无需全面掌握Solid Edge。
2.So1id Edge的对象层次结构
对象之间通过被称为对象模型或对象层次结构的形式相互联系。So1id Edge的对象层次结构可以描述为自上而下的树结构,其根节点对象就是一个应用。So1id Edge拥有4种工作环境:零件(Part)、钣金(Sheet Metal)、装配(Assembly)和工程图(Drdt)。其中,零件和钣金共用一个对象层次结构,而装配和工程图分别拥有各自独立的层次结构。根节点作为应用对象,是惟一一个允许开发程序直接访问的对象,可以也只能通过该对象才能访问其下级的所有对象。图1所示为装配环境的简单对象层次结构,Application指Solid Edge应用程序,Documents是一个集合对象,它包含了前面所提到的四种工作环境。要访问某一工作环境,首先必须得到它的文档对象(Document)。这里为了进入装配环境,用到了装配文档对象AssemblyDocument。