您的位置:网站首页 > Solidworks

基于SolidWorks的工程图明细栏自动生成与调整技术

时间:2010-06-02 08:00:00 来源:
副标题#e#     明细栏作为工程图的重要组成部分,它用于反映各零部件之间相互关系及其代号(标准件号)、名称、数量、材料等属性信息。为此,如何在三维模型参数化驱动之后生成正确、符合要求的明细栏,是获得高质量工程图的必要前提,也是保证整个三维参数化设计系统可靠性的重要基础川。在SolidWorks2005中提供了2种建立明细栏的方式:一种是基于Exccl表的形式;另一种是完全基于SolidWorks自行开发的、比Excel表功能更强大更方便的明细栏形式。尽管第二种添加方法明显优于前者,但是要能够在参数驱动之后的工程图中自动添加合适的明细栏,不参与任何的人工辅助,必须通过程序控制。基于参数化模型驱动的工程图明细栏自动生成与调整技术是以SolidWorks对于明细栏的后一种添加方法为基础,采用VB语言以及SolidWorks API函数进行工程图明细栏的自动生成与调整,主要包括明细栏模板调用、行数计算、序号调整、高度及列宽的控制以及明细栏内容的填充与修改。
   
    1总体设计思想
   
    三维参数化设计的思想是采用约束来表达产品模型的形状特征,并用一组参数来控制设计结果,从而通过变换一组参数值方便地创建了一系列形状类似的零件,并通过强度和刚度验算合格,自动生成产品的三维模型和工程图。从图1可以看出,明细栏的自动生成与调整是整个三维参数化设计过程的重要组成部分。
   


    在本文所测试的对象产品中,采用先根据企业的需求建立明细栏模板,再通过程序进行添加的方法来实现工程图中明细栏的添加。由于它是在新的装配体零部件更名完成后进行这一系列的操作,因此就不会出现明细栏无法识别的情况;同时在模型参数化驱动完成后,通过相关程序统计部件中的零件数目,并存储在专门的文件或程序控件中,这样在通过程序初步添加明细栏以后写人相应零部件的数量、名称、材料、质量等属性,最后就可以在最终工程图中完成符合企业要求的明细栏的添加过程。
   
    2实现方法与技术

   
    针对三维参数化设计中工程图明细栏的特殊要求,SolidWorks自身提供了BomFeatureBOMTable TableAnnotation等API函数便于技术人员利用二次开发技术控制明细栏的生成与调用。所以,程序控制明细栏生成与调整的过程就是调用SolidWorks相关API函数的过程,具体调用的函数类型及使用方法描述如下。
   
    BOMTable对象是SolidWorks API提供的指向明细栏的对象,它是View对象的下级对象,通过ModelDoc2对象的下一级对象SelectionMgr对象的GetSelectedObject5方法获得指向需要建立明细栏的视图的View对象,同时通过View对象InsertBomTable2方法就可以实现程序建立明细栏,在明细栏建立之后通过View对象的GetBomTable方法可以获得指向明细栏的指针,得到指向BOMTable对象的指针后,就可以操作明细栏的属性。在建立明细栏获得指向BOMTable对象指针后,通过BOMTable对象的BomFeature方法可以获得指向BomFeature对象的指针,通过BomFeature对象的ConfigurationTableTypeKeepMissingItemsSequenceStartNumber等属性和方法就可以对明细栏的模版、类型、是否保持丢失项目以及起始序号等属性进行获取和设置,明细栏出现空白行的情况可以通过I3omFeature对象的GetTableAnnotations方法获取指向TableAnnotation对象的指针,通过TableAnnotation对象的DeleteRow方法就可以删除空白的行,通过TableAnnotation的Text属性可以实现零件数量的更新。TabIeAnnotation对象是控制整个BOM最关键的对象,通过该对象的属性和方法的控制可以基木实现对BOM属性的完全设置。
   
    3具体实现步骤
   
    3.1零部件模型的建模要求

   
    在工程图中生成明细栏时,每个零件的相关属性都是要能与材料明细栏所对应的列进行自动链接的,目的是能够通过链接自动在明细栏对应位置写入相关属性。为此,必须在零部件建模时设置其相关属性,图2为某零件的自定义属性,其中与明细栏相关的属性包括重量(Weight)、材料(Materi-al)、序号(No )、代号(DrawingNo )、名称(YartNo)等。