基于Pro/E的图形协同感知技术研究

图形协同感知技术是协同设计的一项关键技术,主要完成协同设计中对于三维设计操作的描述。对于基于特征的三维造型工具,三维模型的设计过程就是对模型特征的增减和更改的过程。从这一点考虑,协同设计系统在支持协同设计时,只需交流设计者对三维模型特征所进行的操作的描述信息,就可以实现三维图形的协同感知。因此,图形协同感知问题集中在了特征操作数据的挖掘和特征操作的再现上。
基于Pro/E平台的协同设计系统CoopCAD中,采用了将三维造型设计时的特征操作信息转化成计算机编程语言可识别的数据结构描述,并设计了特征操作数据挖掘模块和特征操作再现模块,实现了基于Pro/E的协同设计中图形协同感知。
1 特征操作信息数据结构的设计
CoopCAD系统所采用的特征操作信息的数据结构设计如下:
struct proe_feat_operation_info
{
UserName;∥进行此次操作的协同用户
FeatureId;∥特征标志号
Operation;∥操作种类
FeatData;∥特征的树形信息
}
UserName记录着特征操作的实施者,Featureld唯一标志着某一特征,Operation是一个宏变量,它记录了操作的种类(生成新特征、更改特征、删除特征、阵列特征……)。
FeatData记录了描述特征的树形信息,结构如下:
struct featdata
{
ElemTree:∥特征元素树
tree-sum;∥特征元素树大小
SelData;∥特征元素树中的选择信息
SketchDam;∥特征元素树中草绘信息
}
特征元素树(ElemTree)是Pro/E定义的一种工作空间结构,其树形结构中的各个分支分别对应着特征各种特性的描述,开发者能够通过一定的函数和方法填充或更改其数值,进而使它可以描述不同类型的特征。
图1显示的是Pro/E中凸台特征的特征元素树结构。树中的根结点和支节点称为元素,每一个元素都用ProElemen定义,元素在树中的位置以相应的ID号来确定。将多种类型元素按照Pro/E定义的树状结构进行组合,便构成了代表某一种类型特征的特征元素树。
FeatData中的ElemTree记录了所有的结点及其属性所需的数据,而SelData和SketchData结构记录了所有已存在的几何项目的参考、草绘元素的参考、所有的三维尺寸值三项所需的所有数据。
2特征操作数据挖掘
协同设计中的特征操作数据挖掘,是把设计者的特征操作转换成相应的数据结构描述(proe-feat-operation-info),其获得的数据信息是协同设计各端点间所交流的主要信息,是设计模型达到实时共享的关键。CoopCAD系统中的特征数据挖掘是通过设计的Pro/E特征操作数据管理器模块,其负责控制和管理各个子模块,并协调它们之间的任务调度。
特征数据挖掘过程是由两个环节来完成:
第一,设置特征相关事件触发器,使协同设计程序能够及时获知Pro/E中与特征相关事件的发生,并对不同的特征操作作出响应。
第二,针对不同的特征操作,通过特征数据分析器解析出特征的树形信息(FeatData)。
图2展示了特征数据挖掘的具体流程。特征数据分析器的分析结果就是特征操作的数据结构描述(proe-feat--operation-info)。
2.1特征操作相关事件触发器
特征操作的相关事件触发器是特征数据挖掘模块与Pro/E联系最紧密的部分,它负责监视Pro/E中的各种该模块感兴趣的特征操作事件。特征数据挖掘模块主要感兴趣的Pro/E特征操作事件主要包括:
1)PRO-FEATURE-CREATE--新特征创建事件;
2)PRO-FEATURE-REDEFINE--特征被重定义事件;
3)PRO_FEATURE-REGEN--特征再生事件;
4)PRO-FEATURE-DELETE--特征删除事件。
事件响应函数在相对应的Pro/E事件发生时被自动调用,通知Pro/E特征操作数据管理器这个事件发生,使管理器及时指派特征数据分析器对该特征操作事件进行分析以获取特征操作数据。
特征操作的相关事件触发器中的每一种事件都对应着独立的处理函数,这使得它具有很好的扩展性和维护性,这也增强了整个协同设计系统的柔性,为适应更广泛的协同设计事务提供可能。
2.2特征数据分析器
特征数据分析器是整个特征数据挖掘模块中的核心部分,它完成了与Pro/E相关的特征操作向其数据结构描述的转化。在某种程度上,这个部分也是整个协同设计系统的基础,它为系统的其余模块提供了最直接的数据依据。
分析器所分析的特征操作包括创建新特征、重定义特征、删除特征和阵列特征。对于不同的特征操作,分析器所采用的分析方式既有相同之处也有不同之处。对于所有的特征操作,proe_feat_operation-info中的Operation(操作种类)和FeatureId(特征标志号)是必需的,除了特征的删除操作不再需要其它分析数据以外,另三种操作均需要进行进一步地分析。
1)创建新特征。对于新创建的特征,分析器需要将新特征的FeatData(特征的树形信息)完全解析出来,包括特征元素树的全部结构、特征元素树大小、特征元素树中的选择信息和特征元素树中的草绘信息。分析器所获得的所有元素信息最终按照严格的逻辑顺序记录到FeatData的ElemTree结构中,选择信息和草绘信息另外记录在FeatData的SelData和SketchData结构中,并与相关元素一一对应。这样新特征的数据信息就完全解析出来并以规范的结构记录下来,为将来的特征再现提供了可靠高效的数据依托。
2)重定义特征。以一般的观点来看,就特征数据分析器所承担的工作量而言,重定义一个特征要小于新创建一个特征,但该协同设计系统的数据挖掘模块将特征的重定义操作与创建新特征基本等同看待。这是由Pro/E的开发方式所限定造成的,其要求辨别特征的重定义部分同样需要对特征进行完全的分析操作。
3)删除特征。分析特征的删除操作是数据挖掘模块中最易实现的,它只需要获知所删除特征的ID即可,分析器也只须对proe_feat_operation_infe中的Operation(操作种类)和FeatureId(特征标志号)分别做好记录就可以了。
4)阵列特征。阵列特征是一项比较特殊的操作,特征数据分析器在分析该种信息结构之前需要做较多的预分析工作,由于Pro/E的开发接口不提供直接的阵列事件,因此特征数据挖掘模块从其它的Pro/E特征操作事件中间接判断阵列事件(进行特征的阵列操作必然发生特征再生,分析器通过捕捉此事件再进一步判断阵列事件是否发生)。另一方面与分析创建新特征操作不同的是,分析器在记录FeatData时不再需要分析是否存在草绘信息,而是改为分析是否存在多值信息。如上所述,特征数据挖掘模块通过特征操作事件触发器和特征数据分析器两个子模块协调操作,以简洁有效的信息转换机制建立起CoopCAD系统,在Pro/E设计平台上采集协同感知数据的稳定的信息通道。最后,它将特征操作的数据结构描述发送到协同操作代理模块中,并由其经过一定的处理后转换成协同感知信息发送到协同设计网络上。
3特征操作再现
协同设计中的特征操作再现是CoopCAD系统中协同感知技术的最终体现者,其作用和特征数据挖掘模块相反,利用特征操作的数据结构描述,将这一数据结构描述中的特征信息重新组合并联系起来,构成Pro/E能识别的特征表述,并最终在Pro/E设计平台上重现这一特征操作。
特征操作再现模块主要由特征操作分类器和特征操作执行器两部分组成。当特征操作再现模块从协同操作代理模块接收到特征操作的数据结构描述后,首先将其交给分类器进行分类处理:分类器根据特征操作信息(proe_feat_operation_nfo)中的Operation变量的值确定此特征操作的种类,然后由不同的操作种类,将接收到的特征操作数据结构描述传递给特征操作执行器的不同部分进行特征再现。特征操作执行器对不同的特征操作采取不同的特征再现策略。
再现创建新特征的操作需要将特征的特征树信息完全再度创建出来,其过程主要是从FeatData的ElemTree中顺序取出各个元素,再将它们按照严格的元素树形组织结构联系在一起,才能最终由此树形结构完全相同地再现此特征。
再现重定义特征的操作基本与再现创建新特征相同。再现删除特征操作只需根据FeatureId(特征标志号)由开发接口调用ProFeatureDelete函数即可。阵列特征操作的再现和创建新特征的再现过程基本相同,但在再现阵列操作时不需要重新构建革绘信息,需要构建多值信息。

 

返回Pro/e文章列表>>>