钣金展开自动计算软件设计
2020-05-21
(中车株洲电力机车有限公司,湖南 株洲 412001)
0 引言
钣金加工是机械生产的一个重要组成部分,特别是在航空、轨道交通、家电、仪器仪表等行业,钣金零件的应用非常广泛。当前,大多采用的是先利用现有软件计算展开长度,然后结合展开长度绘制零配件展开图。对于形状较为简单、折弯次数相对较少的配件而言,这种方法效率较高,容易实施。而对于形状较为复杂,折弯次数较多的零件,仍需要进行手动计算,这种方法效率则较低。
针对上述现象,本文拟对钣金展开计算软件进行优化,主要研究三、四道折弯内的复杂钣金件展开的计算方法,使之能够便捷得到多道折弯钣金件的相关展开尺寸参数。
1 中性层法计算钣金件展开长度
目前较常规的计算方法是以截面中性层来计算展开长度,下面简单地介绍该种计算方法。
1.1 利用中性层系数计算展开长度
从理论分析可知,要计算折弯件的展开长度,首先要将折弯件分成若干直线段和圆弧段的基本几何单元,分别计算出各单元部分的长度,然后求出各部分单元长度的总和,得到折弯件的展开长度。
而在一般情况下,材料在折弯前后,长度在拉伸和压缩之间,必然存在一个总长度不变中间的一层材料,即中性层。确定钣金折弯件的展开长度,计算折弯段的中性层长度。中性层离折弯段内侧的位置L(见图1),一般由折弯半径r和板料厚度t的比值确定。
图1 中性层离圆弧内侧的距离L
L=xt
式中:t—材料厚度
x—中性层位置系数
x=(ρ-r)/t
ρ=r+xt
式中:ρ—从半径r的中心至折弯中性线的距离,即中性线的弯曲半径。
从上式可知,中性层位置系数x随弯曲内经r与板料厚度t的比值变化而进行变化。一般情况下,从理论计算而言,其值如表1所示。
表1 理论中性层位置系数x值
虽然在相同材质的情况下,中性层位置系数x主要由r/t所决定。但是由于影响板料弯曲的实际因素很多,例如模具类型,弯曲方式等因素均会影响板料的实际展开长度,因而中性层位置系数x的值由实验以及经验进行确定相对来说更加准确。
1.2 钣金件展开长度的计算公式
由上述可确定钣金件折弯部分中性层的展开长度l
l=πρα/180°
式中:α—弯曲中心角
设直线部分长度分别为a,b,如图2所示,则展开长度为:
图2 展开长度示意图
L=a+b+l=a+b+πρα/180
=a+b+π(r+xt)α/180°
在工程实际中使用的图纸,一般只标注零件的外尺寸,采用上式计算需要进行尺寸转换,运用时不方便。故而,本文在综合国内外相关资料的基础上,采用如下公式:
L=L1+L2+m
式中:
L—展开长度
L1,L2—钣金件的折弯边长
m—计算补偿值
其值的计算方法见表2所示。
α—折弯角度;t—钣金件厚度;R—工件内折弯半径;K—中性层系数,具体值见表1。
使用以上公式计算时,很多因素(如材料性能、模具情况及板厚附加值等)没有考虑在内,因而可能产生较大的误差。所以只适用于形状简单,折弯次数少和公差等级要求不高的钣金折弯件。对于形状复杂,折弯次数多及精度要求高的钣金折弯件,应用上述公式进行初步计算,经过试压后才能够最后确定合适的零件形状和尺寸。
表2 钣金件展开长度补偿长度表
2 基于Visual Basic的钣金展开自动计算系统设计
2.1 钣金展开自动计算系统的总体设计
由于VB语言的易用性和可移植强的特点,本文拟采用Visual Basic语言平台搭建钣金展开自动计算软件,根据需求分析,钣金自动展开计算系统有两大基本功能:计算和绘图。软件的总体设计框图如图3所示。在进入程序后,分为两个步骤。
1)计算,根据设计折弯钣金件的尺寸参数,计算出展开长度和折弯线位置的尺寸,并填入到输出界面中。
2)绘图,根据计算结果,对AutoCAD进行二次开发,绘制钣金件的简单的二维图,包括展开长度和折弯线位置。
2.2 钣金自动展开计算系统的登录界面设计
在进入主界面之前,软件设置了一个欢迎登录界面,如图4所示。欢迎界面主要由两个标签框、一个组合列表框、两个按钮组成,软件在钣金件不同的折弯次数的展开计算都建立了不同窗体,操作者通过下拉选择组合列表框对应的选项,并单击确定按钮后,软件可以进入对应次数的展开计算界面。操作者单击退出按钮,便可以直接退出本软件。欢迎登录界面的主要代码如下所示。
图3 钣金自动展开计算软件总体设计框图
图4 钣金自动展开计算系统的欢迎界面
Private Sub Command1_Click()
If (Combo1.ListIndex=0) Then
Form1.Hide
Form2.Show
End If
If (Combo1.ListIndex=1) Then
Form1.Hide
Form3.Show
End If
If(Combo1.ListIndex=2) Then
Form1.Hide
Form4.Show
End If
If (Combo1.ListIndex=3) Then
Form1.Hide
Form5.Show
End If
End Sub
Private Sub Command2_Click()
Unload Form1
End Sub
Private Sub Form_Load()
Combo1.AddItem "1次折弯"
Combo1.AddItem "2次折弯"
Combo1.AddItem "3次折弯"
Combo1.AddItem "4次折弯"
End Sub
2.3 钣金展开自动计算系统的主界面设计
当操作者进入软件的主界面后,可以看到对应折弯次数的计算界面,本文以钣金三道折弯展开界面为例,如图5、图6所示。在主界面系统里,用户需要按照图片提示输入折弯边长Li、板厚t、折弯角度α、β、γ、折弯半径Ri等参数,系统可以自动地计算得出各折弯线的位置尺寸、展开长度。以钣金三道折弯展开计算为例,软件的计算方法是将钣金件分割成3个1次折弯的小部分,折弯边长分别为LA和LB/2、LB/2和LC/2、LC/2和LD,利用第二节介绍的中性层系数法计算各小部分的展开长度和补偿长度,各部分展开长度相加便是所求的展开长度,对于折弯线位置,距离两端的折弯线尺寸与1次折弯计算方法相同,中间的折弯线位置尺寸等于LA和LB/2段的展开长度与中间段折弯线距LB/2端的尺寸之和。
此外,软件对AutoCAD进行二次开发,当输出这些尺寸参数后并单击绘图按钮,系统调用AutoCAD软件对钣金件进行简单的展开图和折弯线的绘制。
此外,当操作者在输入参数时,出现某项参数为空、某段折弯边长Li为负数或者折弯半径Ri If(Text1.Text=""Or Text2.Text=""Or Text3.Text=""Or Text4.Text=""Or Text5.Text=""Or Text10.Text=""Or Text11.Text=""Or Text12.Text=""Or Text12.Text=""Or Text13.Text="") Then Dim m As String m=MsgBox("输入参数不能为空!",vbOKCancel,"提示") Text7.Text="" Text8.Text="" Text9.Text="" ElseIf (LA<=0 Or LB<=0 Or LC<=0 Or LD<=0 Or t<=0 Or R1<=0 Or R2<=0 Or R3<=0 Or R1 Dim v As String v=MsgBox("您输入的参数不正确! ",vbOKCancel,"提示") Text7.Text="" Text8.Text="" Text9.Text="" End else 图7 钣金三道折弯展开自动计算容错界面 通过1.1的介绍,可以看出钣金件的展开长度与中性层位置系数有着很大的关系。在表1中,每一个折弯半径与板厚的比值r/t都对应着特定的中性层系数x的值。而这些对应的数值只是一些离散的点,需要用连续的曲线近似地刻画或拟合离散点组所表示的坐标之间的函数关系,本软件采用线性拟合的方法对连续前后的R/t值和x值构建函数关系。即假定前后的R/t和x两个变量之间的关系是一次函数关系的——图象是直线,两个变量之间存在着“线性关系”。如图8所示,建立R/t值和x值的关系曲线,软件具体确定中性层系数的代码如下所示。 图8 x值与r/t的关系曲线 Public Function MyFunc(x As Double,y As Double) As Double Dim a As Double a=x/y Select Case a Case 0.1 To 0.3 MyFunc=0.2+0.1×a Case 0.3 To 0.4 MyFunc=0.23 Case 0.4 To 0.5 MyFunc=0.15+0.2×a Case 0.5 To 0.6 MyFunc=0.2+0.1×a Case 0.6 To 0.7 MyFunc=0.16+0.2×a Case 0.7 To 0.8 MyFunc=0.14+0.2×a Case 0.8 To 1 MyFunc=0.22+0.1×a Case 1 To 1.2 MyFunc=0.27+0.05×a Case 1.2 To 1.5 MyFunc=0.21+0.1×a Case 1.5 To 2 MyFunc=0.3+0.04×a Case 2 To 8 MyFunc=0.34+0.02×a Case 8 To 100000 MyFunc=0.5 End Select End Function 通过前面的程序对折弯钣金的展开长度和折弯线位置尺寸进行计算,下面软件将对Auto CAD进行二次开发,实现计算钣金折弯件的展开图的绘制。本模块的实现方法是首先与Auto CAD 软件建立相关接口的连接,用户输入基准点的坐标指定图元中其中一个p1点的坐标,然后根据输入的钣金宽度、软件输出参数(各折弯线位置尺寸、钣金件的展开长度)确定图元其他点的坐标,同时利用程序建立三种图幅的图层,分别为:粗实线层、细实线层、中心线层,最后程序利用不同线型实现不同点的相互之间连接。下面是软件对Auto CAD进行二次开发的主要代码。 '线型的添加 Dim entry As AcadLineType:Dim found As Boolean: Dim ltName(0 To 2) As String Dim j As Integer found=False '准备添加的3种线型 ltName(0)="BORDER" ltName(1)="CENTER" ltName(2)="DASHDOT" For j=0 To 2 '搜寻要添加的线型在线型集合中是否已存在 For Each entry In ThisDrawing.Linetypes If StrComp(entry.Name,ltName(j),1)=0 Then found=True Exit For End If Next '如果不存在则将其从线型文件acadiso.lin中加载 If Not (found) Then ThisDrawing.Linetypes.Load ltName(j),"acadiso.lin" End If Next '创建图层 Dim objLayer As AcadLayer '粗实线 Set objLayer=ThisDrawing.Layers.Add("粗实线") objLayer.color=acWhite objLayer.Linetype="Continuous" objLayer.Lineweight=acLnWt035 ThisDrawing.ActiveLayer=objLayer p1(1)=10:p1(2)=30:p1(2)=0 p2(0)=p1(0):p2(1)=p1(1) + Val(TextBox45.Text):p2(2)=0 p3(0)=p1(0)+Val(TextBox33.Text):p3(1)=p1(1):p3(2)=0 p4(0)=p1(0)+Val(TextBox33.Text):p4(1)=p1(1)+Val(TextBox45.Text):p4(2)=0 p5(0)=p1(0)+Val(TextBox34.Text):p5(1)=p1(1):p5(2)=0 p6(0)=p1(0)+Val(TextBox34.Text):p6(1)=p1(1)+Val(TextBox45.Text):p6(2)=0 p7(0)=p1(0)+Val(TextBox35.Text):p7(1)=p1(1):p7(2)=0 p8(0)=p1(0)+Val(TextBox35.Text):p8(1)=p1(1)+Val(TextBox45.Text):p8(2)=0 p9(0)=p1(0)+Val(TextBox36.Text):p9(1)=p1(1):p9(2)=0 p10(0)=p1(0)+Val(TextBox36.Text):p10(1)=p1(1)+Val(TextBox45.Text):p10(2)=0 p11(0)=p1(0)+Val(TextBox37.Text):p11(1)=p1(1):p11(2)=0 p12(0)=p1(0)+Val(TextBox37.Text):p12(1)=p1(1)+Val(TextBox45.Text): p12(2)=0 如图9所示,这是程序运行时生成的一个三次折弯钣金件的展开图,其中钣金展开的轮廓用粗实线表示,各个折弯线用细实线表示。 图9 程序生成的一个三次折弯钣金件的展开图 本软件以Visual Basic为开发工具,实现了钣金件展开长度、折弯线尺寸的自动便携计算,通过对CAD的二次开发对展开图的简单绘制,在一定程度上提高了办公效率和图纸尺寸的正确性。2.4 基于AutoCAD二次开发的钣金简单展开图的绘制
3 结语