您的位置:网站首页 > CAD新闻

AutoCAD模块化在通用件库开发中的应用

时间:2012-03-28 09:54:39 来源:未知

一、引言

  笔者所在公司主产品是传动件,主要有齿轮、链轮、同步带轮和皮带轮等。有时一天需要加工数十种不同的产品,制图的工作量很大。如果完全满足车间生产需要,需要配备34名制图员。采用传统方式绘图,完成一个简单的传动件需要0.5小时左右,而复杂的非标产品(如有端面槽、锥孔结构)则需要0.751小时。另外一些大规格的链轮需要在加工中心铣齿完成,需要齿形图编制CNC程序,因此精确画出齿形就更重要。

  鉴于公司95%以上传动件结构有很多类似的地方,为了提高制图效率,开发一款传动件制图的专用软件很有必要。

  二、模块化编程的原因

公司试生产时,主要产品是链轮,笔者用VBA做了一个链轮绘图程序。随着生产规模的扩大,同步带轮、齿轮和皮带轮产品越来越多,需要在程序中增加绘制相关特征等功能。导致程序代码过多、结构复杂、修改困难,程序运行易出错。这种情况下,笔者尝试模块化编程,将相似的程序块和功能块分离出来,做成公用的模块,供不同的传动件程序调用。

  三、模块化拆分

  模块化拆分最为关键,一是将图形拆分成不同的功能块,二是将程序公用代码做成模块。

  1.图形模块化

  图1是一个典型的链轮传动件图样,可以按图2拆成四部分:齿形模块;②轮毂模块;③辐板(减轻孔)模块;

  孔模块。我们生产的绝大部分传动件(链轮、齿轮、皮带轮和同步带轮等)都可以拆分成这4个模块中的全部或部分模块。由于不同传动件的齿形差异,所以齿形模块这部分是不可以共用的。轮毂模块中的轮毂是广义的轮毂,包含两边没有轮毂(齿板)和轮毂低于平面等形状的图形。辐板模块是选用模块。孔包含直孔模块和成孔模块(台阶孔、键槽孔和锥孔等)两部分,可进行选择。

经过这样拆分后,仅有齿形模块为专用模块。不同的传动件制图时,要先选用相应的齿形模块,然后根据需要调用公共模块,即可组合实现不同的图形。

  2.公用代码模块

  画图时,要设置不同的线型:粗实线、细实线、中心线和虚线等,这个部分可以设成一个公用图层模块(SetLayers),通过这个模块调用不同线型。另外,笔者对CAD计算点、距离和画圆弧等功能进行了扩展,并加入了一些计算弦长、圆弧角等功能函数,将这块做成了公用函数模块(WhlsFun)。基本上所有的传动件(皮带轮除外)都有齿顶圆、节圆(分度圆)、齿根圆、节距和齿数等参数,这部分定义成公用参数模块(WhlsData),参数类型都是Global

  四、程序设计及实现

  1.程序结构

程序模块如图3所示。程序结构、各个模块之间的相互关系如图4

 

  程序运行流程:通过ThisDrawing中的Wheels函数调用frmMain,通过选择进入不同的传动件界面,其中WhlsHubThrHole这两个模块因为大多数零件都要调用,所以直接在传动件窗体中调用赋值。如果需要辐板设计和成孔设计,则将相应的信息传递到ConWhls模块中,然后调用相应的模块,完成后,通过ConWhls返回相应的传动件模块,完成传动件设计。点画图按钮,选择左右视图的插入点,完成图形绘制。

  2.程序运行界面

按图5~图8运行界面流程,输入相应的参数,最后返

  3.程序设计思路和要点

  公司产品中,齿板、单边轮毂和双边轮毂三种结构最常见,孔多数为直孔。所以,除了齿型参数外,轮毂结构、直孔尺寸输入也放在传动件窗体上(frmSprocketfrmGearfrmPulleyfrmTimePulley)。点击参数计算按钮后,调用“WhlsHub”“ThrHole”模块,将相应参数赋值。这样不需要调用其他窗体即可完成大多数的传动件绘图。

  “ConWhls”模块中主要设置了三个参数:“IntegerPartType”用于保存传动件模块信息,参数“BoolchkList(0to3)”保存需要调用模块的信息,“BoolDesignList(0to3)”保存已经设计过后的模块信息。

  进行辐板、成孔设计时,先将传动件模块信息、需要调用模块信息保存到“ConWhls”模块“PartType”“chkList”中,然后再进入相关模块设计。设计完成后,将数据保存过的模块列表保存到“ConWhls”模块“DesignList”中,然后根据“PartType”值返回不同的传动件窗体,完成给各个模块设计。画图时,在传动件窗体中先完成齿形,然后调用“ConWhls”中的“DrawViews”过程,根据“DesignList”值调用各个模块的画图过程,再调用“WhlsHub.DrawHubView”过程,并判断是否需要调用“ThrHole.DrawThrHoleView”过程。

  为了保证各个模块能吻合到一起,要将左右视图的插入点和各个模块视图插入点保持一致,左视图所有模块的插入点为圆中心(ptCen),右视图所有模块的插入点为左端面的中心点(ptCenR),另外设置一个参数View“View=0”调用左视图,“View=1”调用右视图,这样通过过程DrawViews(ptCen0)DrawViews(ptCenR1)可以分别画各个模块的左、右视图。

  五、使用效果

  本程序能方便地实现多种传动件(链轮、齿轮、同步同轮、V型带轮、平皮带轮和多楔带轮)的设计,而且可以很容易地实现程序的扩展,如产品类型扩展到渐开线花键,结构扩展到轴类零件。

  传动件程序推广使用后,公司95%以上的产品只需812分,即可完成图形的绘制(包括标注等时间,绘图只需要0.51)。一个人即可完成原先34人的工作量,为公司节省了大量的人力、物力,达到满意的效果。

  由于齿型都是按照标准绘制,链轮的齿形图可直接导入GibbsCAM中编制铣齿程序;剖视面(右视面)可直接用来编制数控车床程序,这都减少了CNC编程的制图准备时间。

  六、结语

  模块化编程,尤其适合大型程序的编制,编程工作量减小,修改也方便快捷。将程序做成不同的模块,可读性增强;代码量减少了约30%50%,代码重用率高。将相似的零件结构拆成不同的模块绘制,也是一种新颖的编程思路。