高丽华
摘要:整个系统基于AutoCAD VBA技术进行二次开发,针对不同类型的齿轮,根据用户输入的参数,产生相应的齿轮外形,再根据需要自动生成需要的视图。另外,在课题中为了提高绘图的效率,对图纸的常规设置包括图框线及标题栏的插入也实现了自动化。齿轮系统的开发,实现了AutoCAD功能的拓展,能很好地满足机械行业产品的设计需求。
Abstract: The overall system technology carries on the re-development based on AutoCAD VBA, in view of the different type's gear, according to the Parameters entered by the users, the shape of the gear will to be produced, According to the needs of the users to produce the view automatically which will again need . Moreover, in topic to enhance the cartography the efficiency, it has realized the automation to the blueprint conventional establishment including the chart frame and the title block insertion. The developmence of commonly used gear system has realized the AutoCAD function development, and this can satisfy the design demand of the mechanical profession product well.
关键词:齿轮;AutoCAD;VBA
Key words: gear;AutoCAD;VBA
中圖分类号:TP319 文献标识码:A 文章编号:1674-957X(2021)17-0198-02
0 引言
利用AutoCAD VBA语言实现齿轮绘图过程的自动化是提高效率和减少重复性劳动的最佳方法。也就是说,只要用户在对话框中输入齿轮的必要参数,AutoCAD就会自动地绘出齿轮的零件图,使整个设计过程简化。这样就会节省更多的人力物力,使产品开发人员更好地专注于其他方面的产品问题。系统开发完成了常用齿轮中的直齿圆柱齿轮、直齿圆柱斜齿轮、直齿圆锥齿轮,蜗轮、蜗杆等的绘制。同时通过编程实现了图框线、标题栏及齿轮参数表的自动插入。
1 系统开发实现总论
1.1 系统实现的设计思想 根据用户输入的参数不同,系统就会产生不同外形的的齿轮零件。针对齿轮设计,在AutoCAD VBA基础平台上进行功能扩展,将机械设计进行简化,无须查找资料,也可以在AutoCAD中设计出所需的零件,并直接生成数据报告和零件图。首先确定齿轮绘制所需要的一些基本参数,通过它们的组合使用就可以将齿轮的外形绘制出来。再用其他的内部命令,如图层,线性的定制命令,进行相应的修改后,就可以绘制出所需要的图形来。机械零件的参数表用来说明机械零件图中零件的名称、参数和材料等信息。
1.2 AutoCAD二次开发工具的选择 ①目前AutoLisp的使用程序运行速度慢,已经逐渐被其它几种开发工具所取代。②VBA开发工具:尽管ARX开发技术功能强大,而且VB开发工具又简单易用,但是也存在一些不足。VB开发的软件必须脱离开AutoCAD,在VB的集成环境下进行调试,使用起来二者不是一个有机整体,因而不太方便。为改善这些缺点,在AutoCAD上出现了内置的VBA。
2 系统实现的技术路线
2.1 参数化绘图的特点 实现对AutoCAD的二次开发,其中一个重要的内容是实现参数化绘图。参数化绘图也是CAD系统的一个重要的方面和特色。
2.2 参数化绘图的实现绘图的基本思路 确定齿轮的基本点的坐标,然后赋值给数组,如图1所示。一个齿轮可以分为几部分绘制出来,综合应用直线(AddLine),圆弧(AddArc),圆(AddCircle)的绘制命令就可以将图形绘制出来了。而对话框的作用就是通过用户输入的模数、齿数、压力角等,计算出齿轮绘制需要的直径,通过绘图命令绘制出相应线段或圆弧(圆),进而绘制出该齿轮的图形。在绘制图形中可综合应用多段线、镜像、复制、移动等命令。
3 编程思路、主要代码及注意事项
3.1 图框线的绘制
在图纸图框绘制的过程中,先确定其插入点,然后应用AddLine命令绘制出相应长度的线段。在编写程序时应注意各直线段端点坐标的计算,防止出现坐标点的计算错误。程序的运行结果,如图1所示。
3.2 标题栏的绘制及程序代码的说明
标题栏的绘制,首先可以绘制出标题栏的总体格式框架,可以使用AddLine和Pline命令,二者相结合。注意各端点数组的赋值,防止出现线段绘制的错误。然后应用AddText命令,插入文本。注意文本插入点各数组的赋值。以下为部分程序代码:
' 给标题栏线段各端点坐标赋值
Dim line As AcadLine
a1(0)=sj1(0)-140:a1(1)=sj1(1)+21:a1(2)=0
a2(0)=sj1(0)-140+10:a2(1)=sj1(1)+21:a2(2)=0
a3(0)=sj1(0)-140+35:a3(1)=sj1(1)+21:a3(2)=0
……
a22(0)=sj1(0)-140+110:a22(1)=sj1(1):a22(2)=0
a23(0)=sj1(0):a23(1)=sj1(1):a23(2)=0
' 給文本插入点坐标赋值
aa8(0)=sj1(0)-140+2:aa8(1)=sj1(1)+14+2:aa8(2)=0
aa9(0)=sj1(0)-140+10+2:aa9(1)=sj1(1)+14+2:aa9(2)=0
aa10(0)=sj1(0)-140+35+2:aa10(1)=sj1(1)+14+2:aa10(2)
=0
aa12(0)=sj1(0)-140+110+2:aa12(1)=sj1(1)+14+2:aa12(2)=0
……
aa18(0)=sj1(0)-140+60+13:aa18(1)=sj1(1)+7+5:aa18(2)=0
aa20(0)=sj1(0)-140+12:aa20(1)=sj1(1)+2:aa20(2)=0
aa21(0)=sj1(0)-140+60+13:aa21(1)=sj1(1)+2:aa21(2)=0
aa22(0)=sj1(0)-140+110+8.5:aa22(1)=sj1(1)+6:aa22(2)
=0
' 绘制标题栏各线段
Set line = ThisDrawing.ModelSpace.AddLine(a1, a20)
line.Lineweight = acLnWt040
Set line = ThisDrawing.ModelSpace.AddLine(a1, a7)
line.Lineweight = acLnWt040
Set line = ThisDrawing.ModelSpace.AddLine(a7, a23)
……
Set line = ThisDrawing.ModelSpace.AddLine(a12, a14)
Set line = ThisDrawing.ModelSpace.AddLine(a15, a19)
' 写入标题栏的文本
Dim text As AcadText
Set text = ThisDrawing.ModelSpace.AddText("制图", aa8, 4)
Set text = ThisDrawing.ModelSpace.AddText("审核", aa15, 4)
……
Set text = ThisDrawing.ModelSpace.AddText(cl, aa21, 4)
Set text = ThisDrawing.ModelSpace.AddText(th, aa22, 4)
End Sub
程序的运行结果,如图2所示。
3.3 参数表的绘制及程序代码的说明
参数表的绘制程序不再详细说明,其思路与标题栏的绘制相似,程序的运行结果,如表1所示。
其他的齿轮参数表,不再说明,其绘制原理与之相同。
3.4 常用齿轮图形的绘制
齿轮图形的绘制是研究的重点。
圆柱齿轮的参数输入界面如图3所示,其中,“计算参数”命令按钮控件是通过用户输入齿数、模数等参数计算相应的齿轮的其他参数。“确定参数”命令按钮控件是通过中间变量将计算得到的齿轮一些参数赋值给程序中的公用参数,这样可以简化程序中变量的定义,“取消”命令按钮控件是卸载窗体用的。程序的运行结果,如图4所示。圆锥齿轮和蜗轮、蜗杆等的绘制方式与之相同,不再说明。
4 结束语
针对齿轮结构的相似性,实现了参数化设计。
参考文献:
[1]李长勋.AutoCAD VBA程序开发技术[M].北京:国防工业出版社,2004.
[2]张帆.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006.
[3]牛又奇,孙建国.新编Visual Basic程序设计教程[M].江苏:苏州大学出版社,2013.