3. 2读取零件数量及相关属性
明细栏自动生成与调整模块是整个二维参数化CAD系统的一部分,要反映的是参数化设计完成之后各个零件和标准件的个数及相关属性。实际上,在输人一组参数并进行驱动(特别是参数变化范围较大)之后,装配体中的零件种类和个数往往会发生变化。为此,只有在驱动完成之后再进行零件个数的读取才能保证最后生成的明细栏内容的正确性。具体读取方式主要采用了选择和遍历技术,逐个遍历装配体模型中零件树的种类与个数并进行统计后写人文件,格式采用:"零件序号/数量"的方式。需要注意的是,装配完成之后应该把装配模型中零件树的顺序按照明细栏的最后要求进行重新排列,目的是能够保证写入文件时记录的数据是按照明细栏的顺序排列的,减少排列出错的可能性。
数据读取的流程如图3所示:
3.3初步生成明细栏
初步生成明细栏是比较重要的一步,通过调用API函数InsertBomTable2,插人预先设置好的明细栏模板,并根据读取零件个数时所保存的文件的行数及其零件序号的最大值判断将要生成的明细栏的行数。接下来,写人记录的"零件序号/数量"的信息,并通过零件序号信息访问对应的零件,读取零件建模时输入的自定义属性值,并以填人或更新TableAnn的Text属性值的方式依次写入到相应的位置。
3. 4调整序号空缺
在装配体中,考虑到某些标准件没有进行装配,装配零件树中也没有相应的零件,在进行读取时就不可能读取这些未装配的零件信息,所以在明细栏相应的位置进行添加空缺行的操作,以便于后续工作中可以进行人工添加,具体方法是对生成的明细栏序号进行连续性判断,只要有空缺的,就插入一个空行,并写人相应的序号值。
相关程序如下:
说明:循环判断是否存在序号不连贯的现象,如果存在,判断某处需要插人几个空行,通过TableAnn的InsertRow函数插人到明细栏中,并在序号一栏写人空缺的序号值。
3.5修改部分零部件名称
参数化驱动完成之后,生成的新的装配体中所有的零部件已经通过零件更名的方式获得了新的名称,但是在2.1所述的零件自定义属性中设置的名称(PartNo)却没有随之发生改变。为了保证明细栏的零件名称属性能够与新生成的系列零件一致,必须进行更名的操作。
核心代码为:
说明:Var(vi)是读取零件个数时记录的值,s为第i行中"代号"列的值,如果值"s"与"A2167"(某零件模型的原代号)有重复部分,把"A2167"用最初输人的代号fi1cN0的值代替,完成修改零部件名称.
4结束语
基于SolidWorks的工程图明细栏自动生成与调整技术在三维参数化系统中的应用,使整个系统实现了明细栏的自动添加与调整,布局合理、序号连贯、信息详实准确。该技术解决了人工输人明细栏工作量大且烦琐,软件本身的明细栏功能不能够很好地符合国家标准和企业需要等问题,提升了整个三维参数化CAD系统的自动化水平,加快了作图速度。该技术也可供使用其他二维CAD软件的技术人员作为参考。