摘要:深入研究了二维消隐的原理,设计了零件视图内、外边界表示的数据结构,通过以零件视图的内外边界对图形实体的显示进行裁剪的方法实现了二维消隐。在实现中零件视图的设计信息保存在该视图的扩展数据域中,用户以交互方式定义零件视图及零件视图相互间的遮挡关系。关键词:消隐;零件视图;边界产品装配图是产品设计与制造中不可缺少的技术文档。为了提高装配图的绘图效率,充分利用已绘制好的零件图,仿照产品装配过程把许多零件视图“装配”到一起,并加以少量的编辑修改来绘制装配图,是二维CAD系统不可缺少的手段。因此,能否实现二维工程绘图的装配消隐是衡量二维CAD系统的重要指标。装配图的每个视图可以看作由几个零件的部分或全部视图进行遮挡消隐和装配而成。消隐是二维CAD系统向用户提供具有正确遮挡关系的零件装配图显示的功能。图形设计用户在使用绘制好的零件图构造装配图时,零件间的遮挡关系使得图纸中出现部分多余的线条,这种情况给用户带来很大不便,因此对零散的图形单元进行集成和在图中加入设计信息,从而使得计算机能够对这样的结构化图形进行处理,消隐的概念由此产生。消隐功能可以这样简单地描述:把零散的图形实体定义成零件视图块,并指定不同零件视图块的遮挡关系,用户通过命令的方式调用消隐功能,根据这些信息进行计算并构造具有正确遮挡关系的图形显示。1零件视图块[1]消隐是由于不同零件图之间的遮挡而产生的概念,零件视图块是消隐的基本单位,用户选择零散图形实体以块的方式生成零件视图块。零件视图块具有遮挡能力,不同的零件视图块可以具有不同的遮挡能力,这由用户指定零件视图块之间的遮挡关系并赋予消隐高度值的方法进行实现。消隐高度值的不同确定了零件视图块之间的遮挡关系,零件视图块之间的遮挡关系可以表示为1棵树,从树根到树叶逐级被遮挡,普通实体可以被任意零件视图块遮挡,它具有最低的消隐高度,这样零件视图之间的相互遮挡关系由它们的消隐高度值唯一确定。2消隐的原理[2]装配消隐的过程如图1所示,用户从图形实体数据中选择图形实体并定义为零件视图块,利用边界搜索算法得到该零件视图块的内外轮廓信息,这些信息作为用于消隐的零件图设计信息而被记录于零件视图块的扩展数据域中。然后用户指定零件视图块之间的遮挡关系,对零件视图块赋予消隐高度值,同样记录在零件视图块的扩展数据域中。最后系统利用零件视图块的轮廓信息、零件视图的消隐高度等数据,通过裁剪等基本算法进行消隐的计算处理,最后得到具有消隐效果的图形显示和打印结果。图1消隐过程示意图2.1由图形定义零件视图块消隐操作首先要把若干个没有逻辑联系的图形实体组合成零件视图块,并将用于消隐的设计信息存储在零件视图块的扩展数据域中,步骤如下:(1)检查图形实体集的外边界和内孔边界情况零件视图块必须具有封闭的外边界,为了找出图形实体集合形成的外边界,在利用边界搜索算法进行搜索时,应该选取在位于这一边界之外的参考点,最简单的选取方式是计算被选择实体集合共同的包围盒,任取包围盒之外的1点即满足要求。另外要检查选择的图形实体集形成的零件视图块的内孔情况。用户以交互方式选择决定内孔位置的标记点,同样利用基于参考点的边界搜索算法找出该点指示的内孔边界。如果用户选取的标记点是错误的,例如该标记点指示的是外边界或者已经定义的内孔边界,或者标记点不在希望搜索的内孔边界之内,那么内孔边界的检查将会指示出错或得不到需要的结果。(2)以选择的图形实体生成块利用块的生成函数把选择的图形实体集合组合成1个赋名的块,并插入该块的Insert实体,同时删除被选择的图形实体集合。(3)存储零件视图块的遮挡信息零件视图块的遮挡信息就是用于构造零件视图块的内外轮廓边界的基本数据为了重构零件视图块的内外边界,除了需要构成零件视图块的实体集外,还需要指示内孔的标记点序列,因此这里需要保存的数据主要就是各标记点数据,它们被存储在零件视图块实体的Xdata扩展数据域中。2.2建立零件视图块间的遮挡关系用户对零件视图块间的遮挡关系的指定通过Above命令来进行,该命令可以指定若干个零件视图块的遮挡能力大于另...