1 引言
尽管无纸化生产已经出现在一些发达国家的某些工业领域,但由于经济与技术水平以及协作需要等方面的原因,二维工程图对于机械行业仍然至关重要。在设计生产制造的不同阶段,工程图都具有指导性作用。一幅合格的工程图应该包括零件的图形化表示、尺寸标注、物料说明、注释等详细表达设计意图与技术要求等信息,且布局美观。其中,尺寸与公差标注等不仅是一项耗时易错的工作,而且对同一个零件,不同的工程人员可能会选择不同的标注方案,图纸标注的规范性与质量完全取决于工程人员的经验和技术能力。标注的质量会影响生产制造的质量和效率,因此如何借助计算机辅助设计技术实现工程图的智能化与自动化标注.让工程技术人员从枯燥的标注工作中解脱出来,一直是机械制造行业的一个重要课题。
LI等提出了一种根据用户选择的标准来优化坐标标注位置排布的方法,并在NX上实现了该功能。该方法对于多孔的零件(例如多孔的注射模模架板)具有较好的效果。CHEN等研究了以CSG树结构与B-Rep数据结构表示的实体模型的自动标注,其方法是首先将实体上的面分为平面、圆柱面及其他类型面,然后通过特征提取、几何推理、人工智能的方法分别标注平面、圆柱面。袁波等提出了一种基于尺寸子集划分的自动布局算法,在寻找最佳尺寸布局时采用了模拟退火算法。张闻雷等提出了基于零件拓扑结构与特征形状等形体分析的自动标注以及基于特征包围盒的尺寸布局方法。黄学良等,采用网格化的方法,将标注布局问题简化为在状态矩阵中寻找符合某种条件的小块矩阵问题。卢远志等先后将排样思想、级域搜索的思想引入到标注的布局中,达到了防止尺寸干涉的目的,后来又研究了基于零件孔特征识别的自动标注方法。成彬等提出了基于无向图表示的儿何约束系统上的图结构描述尺寸标注模型的方法。陆国栋等提出了从三维特征模型出发基于分治思想的自动标注方法。上述研究方法对实现工程图的自动标注与布局,构建智能化的工程图标注系统做出了积极的探索和研究。但这些方法大多只对某些特定形状的零件有较好的结果,或者还需要一定的人工干预,离完全的自动标注还有一定的距离。
以下提出了一种针对三维参数化模型的工程图尺寸标注自动生成方法,首先自动生成二维视图,通过获取三维模型中丰富的几何形状、尺寸、公差、装配等信息,并根据标注实例库及标注规则自动产生尺寸标注,然后通过网格划分与包围盒的混合算法对尺寸进行自动布局,避免尺寸与尺寸、尺寸与图元之间的干涉,以满足工程上的实际应用。
2 尺寸自动标注与布局
2.1 尺寸自动标注与布局系统框架
图1描述了尺寸自动标注与布局的系统框架,按照标注准备、尺寸标注、尺寸布局的顺序实现尺寸的自动生成。
图1 尺寸自动标注与布局系统框架
2.2 标注准备
标注准备主要包括两方面的工作。
第1项工作是为尺寸标注创建图纸、标题栏以及所依附的视图等。这些视图主要包括前视图、左视图、俯视图、剖视图、局部视图、正等轴测图等等,视图的选择主要是依据零件的几何形状及一定的制图标准等。当前主流的商品化三维CAD软件,如NX、Pro/E、Solidworks等都提供了自动生成这些视图的API接口,开发人员只需根据自己的需要设定一些相关的视图参数,就可以通过程序自动生成这些视图,然后将这些视图按一定的参数化距离进行排布,使视图与视图之间的间距合理。
第2项工作是构建基于知识及实际生产经验的标注实例库与规则库。参考企业生产实际中的工程图经验、标准及机械制图手册中的规范或者国家标准,构建工程图标注基本实例库,通过这个实例库来确定需要标注的尺寸、标注样式以及大致的标注区域等,以便CAD系统作出自动标注。同时,明确标注的规则库,便于系统能够根据规则库中的规则做出合理的标注。如尺寸在各视图间的分配应遵守以下基本原则:
(1)尺寸不标注在不可见轮廓线上。
(2)主要定位尺寸应尽量布置在主要视图上。
(3)局部形状要素尽量集中标注。
(4)同一定形尺寸在剖视图中的标注优先于向视图。
2.3 工程图尺寸的自动标注
在尺寸标注过程中,标注对象的关联是一个很重要的过程。手工标注时,一般需要用户手动选中要标注的图元以使尺寸与图元关联。但自动标注没有这样的人工交互过程,而需要程序去实现该关联过程。通过下面2种关联方法的混合使用,快速有效地解决了自动标注过程中的对象关联问题。
2.3.1 二维图元的识别与标注
为避开三维特征识别、几何推理等技术瓶颈,确保尺寸标注的准确性、可靠性与完整性,可以将实体上的面(Face)、棱边(Edge)之间的尺寸标注全部转换为二维图上可见直线段(Line)或者圆弧(Arc)的标注。这样三维模型上面、棱边的标注问题转换为二维工程图上图元的识别问题。在工程图中,常见的图元有直线段、圆弧及其他曲线等。相对于三维模型的特征识别,二维图元的识别显得相对容易。经过二维图元的识别、分类后,二维图元主要分成直线段类、圆弧类和其他曲线。由于工程图一般只需要标注直线和圆弧类对象,只要把每个直线段和圆弧的标识符分别记录下来,存储到2组动态数组中,后续程序通过这些标识符就能直接访问到这些直线段、圆弧。
自动标注时,首先根据标注实例库,确定要标注的对象及标注样式。然后通过三维模型中的尺寸参数、装配定位参数计算出待标注对象上的某一点三维坐标。如果标注样式是水平或竖直的尺寸标注样式,则需要有2个标注对象,此时需要获取在2个标注对象上各一点的三维坐标。如果标注样式是直径或半径的标注样式,则需要获取该圆弧类标注对象圆心的三维坐标。获取三维坐标后,将三维坐标映射到二维视图上,得到该点的二维坐标。最后通过二维坐标在关联直线段动态数组(AssocLineVector)或关联圆弧动态数组(AssocArcVector)查找由二维坐标创建的二维点(2D-Point)距离最近的直线段或者离某圆弧圆心最近的圆弧,就可以在二维工程图上找到对应的关联对象,实现自动标注。图2详细地描述了水平或竖直的尺寸自动标注流程,圆弧尺寸的自动标注与此类似,不再赘述。现用一个具体实例说明尺寸的自动标注过程。
图2 二维图元识别的自动标注算法流程
例如要标注一块长方体的长度,在投影视图上,长方体投影成长方形,只需要找到长方形相对的两条边,便可以完成长度的标注。此时只需要告诉系统这两条直线段在二维视图中的位置即可。为得到这两条直线段的位置,可以通过获取参数化模型中长方体的装配定位坐标及该长方体板的长度,分别计算出该边上某一点的三维坐标,再将三维坐标点投影到二维视图上,寻找离该点距离为零(即小于一个误差精度值)的直线段,这样就可以标注一个长度尺寸。整个过程可以看成是模拟人工标注时鼠标选中两条直线段进行标注的过程,程序所做的只是帮助系统确定应该点击哪两个“点”,便可以选中这两条要标注的直线段。
这样的标注方法,对于参数化模型来说,程序只需做一次这样的标注,就能覆盖该参数化模型的一系列大小的尺寸标注,因为该算法的标注也是参数化的。该算法的优点是实现真正的关联,三维模型修改时,2D工程图自动更新,缺点则是标注对象的匹配计算量较大。
2.3.2 直接在三维模型中插入点(3D-Point)
二维图元的识别算法能实现尺寸与视图的真正关联,但识别起来速度较慢。当三维模型特征越复杂、越多时,二维图上投影出来的图元越多,标注起来就越耗时。为提高自动标注的速度,可采用直接在三维模型中插入三维点(3D-Point)的方法。将标注的对象全部用点代替,这样就减少了二维图元的遍历、识别。当由相关参数计算出待标注对象上的某一点三维坐标后,直接建立三维点,用这个三维点代替原来的标注对象,就省去了识别图元的过程,标注速度明显加快。但对于圆弧的标注,需插入3个点来表示这段圆弧,这就需要分别计算出这3个点的位置,在实际编写程序中较为麻烦。因此对于圆弧的标注,仍采用二维图元的识别方法,只是在识别过程中只筛选出圆弧,不考虑直线段,这样圆弧图元的识别速度较快。
上述2种方法的混合使用,很好地解决了图元关联的问题,同时有利于快速编写程序,最终实现快速自动标注。
2.4 工程图尺寸的自动布局
在工程图尺寸自动标注完成后,最容易出现的问题是标注内容相互重叠或干涉,如图3所示,包括:①标注文本与标注文本;②标注文本与标注线;③标注文本与图元等。
图3 干涉类型
为合理布局,尽量避免干涉,需要充分合理地运用二维视图中无标注文本、标注线和图元的空白区域,并参考以下尺寸布局规则:
规则1(尺寸标注的就近原则):优先将尺寸标注在标注对象的周围,便于读图人员快速锁定标注内容。
规则2:在规则1较难满足的情况下,考虑把标注内容的位置移动到三维参数化模型的包围盒投影图外。
采用对视图区域进行网格划分的算法搜索空白区域。首先根据三维模型的包围盒投影出的二维视图区域进行网格划分,得到m行n列的单元格。自动布局主要处理的是与标注文本相关的干涉,因此网格划分的间距应该与标注文本字体的大小相关。一般在CAD系统中,可以修改标注文本字体的高度,而字体的宽度与高度成一定比例,因此只修改字体的高度即可控制字体的大小。为充分利用空白区域,网格划分的间距要较小,同时要考虑算法执行的效率,因此当前算法的网格间距取字体高度的1/3。
在划分的网格中,每一个单元格用以下数据结构表示:
其中,item_tag可以唯一地标识出单元格,通过这个标识符就能直接获取到该单元格的状态;Item—status为占用状态,如果被占用则为真,不被占用为假。
尺寸自动布局算法的关键步骤如下:
步骤1:划分网格并进行预处理。网格间距相对于图元(直线段、圆弧)很小,因此通过判断图元与单元格的边界有无交点来确定图元在单元格的占用状态,最终获得所有网格当前的占用状态并用结构体sGridltem记录下来,存储到动态数组中。
步骤2:遍历其中一个尺寸标注,检查该尺寸的标注文本与其他标注文本、其他标注线是否有干涉,即判断该尺寸标注文本的包围盒与其他标注文本的包围盒、其他标注线的包围盒是否有交集。如果没有这2种干涉,执行下一步。如果存在干涉,直接跳至步骤4。
步骤3:检测该尺寸的标注文本与图元是否有干涉,即检查当前标注文本的包围盒所占的网格是否存在被图元占用的单元格。如果存在干涉,执行下一步。如果没有干涉,转至步骤7。
步骤4:确定该尺寸的局部就近标注区域,获取该区域的单元格占用情况,并执行下一步。局部就近标注区域的大小如图4虚线矩形所示,矩形区域长度为该标注尺寸的长度A加上2倍的标注文本高度h,宽度为标注文本高度h的4倍(标注文本高度h参数可以在界面中修改)。该就近标注区域关于这个尺寸的标注线对称,图4所示的虚线箭头为标注线可移动方向。根据这样确定的就近标注区域,再获取这个区域所有单元格的标识符及占用情况。
图4 竖直尺寸与水平尺寸的就近标注区域
步骤5:在局部就近标注区域搜索该标注文本包围盒所占网格大小的空白网格。一旦找到这样的空白网格区域后,立即移动标注文本到此区域,并转至步骤7。如未找到,则执行下一步。
步骤6:把尺寸标注放置在三维模型的包围盒投影视图边界外,对三维模型的包围盒投影视图外的尺寸按数值大小顺序、一定间隙有序排布,执行下一步。
步骤7:遍历下一个标注。如果标注遍历完,则执行下一步;如果未遍历完,则返回至步骤2。
步骤8:标注自动布局结束。
3 算法实现与标注实例
基于Siemens NX Open和Microsoft Visual Studio 2008开发了注射模智能设计系统,用以实现模架及其标准件的参数化设计、智能装配和辅助生成工程图、BOM表等设计文档。系统能够自动生成二维图,并且运用上述提出的尺寸自动标注及自动布局方法,取得了较好的辅助制图效果,不仅能够自动生成所需标注的模架尺寸,后期人工干预少,而且用户操作简单,算法执行效率高,获得了在生产实际中的推广应用。
系统实现中注意将具体算法独立出来,并利用Siemens NX Open提供的如下API函数,读取三维参数化模型中的相关参数,添加尺寸,移动尺寸等,使得尺寸自动标注算法易于实现:
采用以上算法对模架进行尺寸自动标注,操作界面与结果如图5所示(为使尺寸更清晰,图5中未标注的尺寸在该图纸的其他视图中已作出标注)。
图5 注射模模架自动标注与布局实例
4 结束语
(1)提出的工程图尺寸自动标注算法能够有效地解决三维参数化模型的尺寸标注问题,根据实例库的范例与标注规则,实现尺寸的自动标注。
(2)提出的工程图尺寸自动布局算法能够很好地解决标注中的干涉问题,达到后期人干预少、布局清晰、美观的要求。
(3)系统实现中注意将具体算法独立出来,从而只需要在相应的CAD系统(如Pro/E等)中替换API接口,就可以实现在CAD环境下尺寸自动标注与自动布局算法的集成。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/