剪式升降平台计算说明书自动生成
2018-06-21李日东仲梁维
李日东 仲梁维
摘 要:为适应数字化技术的发展要求,自动、规范、方便地生成机械产品的设计计算说明书,结合Word文档的模板技术,通过Visual Studio开发平台添加Microsoft.Office.Interop.Word引用对Word进行二次开发。采用VB.NET语言编写剪式升降平台设计计算说明书的自动生成代码,根据设计者选定的参数,系统将根据力学计算代码自动生成说明书的计算过程、计算结果、型材选择以及说明书生成时间等信息。實践表明,该方法适用范围广、机制简单、灵活方便,大大提高了设计人员的工作效率,并降低了劳动强度。同时,对其它机械产品计算说明书或实验报告的自动生成具有一定参考价值。
关键词:剪式升降平台;计算说明书;VB.NET;Word
DOI:10.11907/rjdk.172759
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2018)005-0076-04
Abstract:In order to adapt to the development of digital technology, we manage to generate automatic, standardized, convenient mechanical product design specifications, combined with Word document template technology by adding Microsoft. Office. Interop. Word to Visual Studio development platform for secondary Word develoment. Based on the language compiling scissor platform, we design auto-generated code of calculation instruction. Premised on the chosen parameters and dunamics , the system processes information including calculation process and its results, material selection and generation time of the automatic code generation instruction. By practice it is proved that the method has a wide range of application, simple mechanism and high flexibility and convenience, and it greatly improves efficiency of designers and relieves their labor intensity. Meanwhile it provides certain reference value for automatic generation of mechanical product specifications and test reports.
Key Words:scissor lifting platform; calculation specification; VB.NET; Word
0 引言
剪式升降平台是现代企业仓库重要的机械产品之一[1],剪式升降平台设计中的一个重要环节是平台型材节点强度、刚度、支撑力的计算及型钢选型,并自动生成说明书。剪式升降平台计算公式复杂、计算量大,需要基于输入的不同型号参数要求,自动生成相应的计算说明书。如果仅通过编程进行计算并直接输出结果,则不能直观地看到计算过程,也不便于调整相关参数以优化平台设计[2]。
计算机辅助设计时必然会产生大量数据公式,按照预先设定的格式记录这些数据和公式显得尤为重要。Microsoft Word 是现代社会使用最广泛的办公软件之一,可适用于各种文档和报告制作。由于产品设计计算说明书的模板和样式不经常变换,变换量最大的是文档公式与计算数据,在此情况下很容易产生人工录入错误,造成不必要的损失。因此,Word文档自动生成功能的开发具有重要的应用价值[3-6]。
剪式升降平台计算涉及大量公式和数据,本文以VB.NET语言为基础,通过添加Microsoft.Office.Interop.Word(12.0.0.0)引用,对Word进行二次开发,以实现不同参数下剪式升降平台说明书大量公式和数据的自动生成,从而实现完整计算说明书的生成。功能实现的前提是计算机已安装Word应用程序,并且在Visual Studio编译环境下,添加了Microsoft Word 16.0 Object Library 引用。
1 Word中主要结构成员
Microsoft Office是微软公司开发的一套基于Windows操作系统的办公软件套装[7],其是一个开放平台,允许用户使用 VB.NET 语言进行二次开发。本文升降平台计算说明书自动生成技术是Word基于COM的面向对象设计方法[7]。
Word 拥有一个十分庞大而复杂的对象模型,Microsoft Office Word 2016对象按层次顺序排列,层次结构顶端的 2个主类是 Application 和Document 类。Application对象提供整个应用程序的包装,每个Document对象表示单个Word文档,这里只列举几个相关对象作简要介绍。对象结构如图1所示[8]。
(1)Application对象。在VisualStudio编译器中编写Word程序代码时,只有先声明一个Application对象,才能访问Word中的其它相关对象和集合。
(2)Document對象。Document 对象是 Documents 集合的成员。Documents 集合中包含当前在 Word 中打开的所有 Document 对象,即Word中能够打开不同文档,前者只是后者的一个单一对象。文档对象建立在Application基础上,首先声明一个应用程序,然后建立一个Document对象。当在Word中操作一个文档时,当前操作的文档则被称为活跃文档。
2 计算说明书模板编写
首先利用Word2016的排版功能,录入剪式升降平台各支撑点、液压缸推力的力学计算公式以及型钢强度刚度校核公式。因为本文需要生成升降平台高度H(3 000-5 000)、宽度W(1 500-2 200)以及承载重量(1 000-5 000)不同参数情况下的计算说明书,以下所需的力学公式以及所求铰点和液压缸推力将随所选参数的不同而改变。
2.1 支撑臂各铰点力计算
输入分布载荷q与铰点 A、B、G、H的平衡方程求解各铰点力,本文只输入了其中几个求解铰点力的公式,其它铰点求解方法类似,这里不再赘述。
首先对KI杆和JM杆受力进行分析,因为要将液压的力先从I点转化到K点,从J点转化到M点,再分析求解液压的力。本文中只录入求解KI点受力公式,杆JM、IJ和支撑臂DB、DH受力分析与KI类似。
2.3 强度刚度校核
剪式升降平台说明书模板上已计算极限情况下型材的强度与刚度校核,根据条件满足强度和刚度要求。
2.4 剪式升降平台部分力学计算
平台力学计算代码包括计算承载平台的均布载荷及力FG(承载平台导轨滚轮端)、均布载荷及力FH(承载平台吊耳固定端)、液压缸与水平方向夹角、液压缸受力、升降过程中不同位置时矩形钢所受弯矩MFmax,并计算IJ距离最大值、IJ距离最小值、升降过程中I点的最大力即液压最大压力,以及各铰点所能承受的最大力。本文只给出了其中主要铰点力、液压缸与水平方向夹角α,以及升降过程中I点的最大力,即液压最大压力的代码,具体如下:
//计算承载平台的均布载荷及力F_H(承载平台吊耳固定端)
Public Function Compute_F_H(ByVal M As Single, ByVal L1 As Single, ByVal X As Single) As Single
q=M*9.8/L1
_FBFH=q*L1-(q*L1*L1)/(2*(L1-X))
Compute_F_H=q*L1-(q*L1*L1)/(2*(L1-X))
End Function
//计算液压缸与水平方向夹角α
Public Function Compute_alpha(ByVal theta As Single) As Single
Dim L2,L3 As Single
_theta=theta*180/PI
L2=Int(L1/(Cos(3.5*PI/180)))
_L2=L2
L_DK=(5/22)*L2 '单位mm
L_BM=(138/2200)*L2 '单位mm
L3=200 '单位mm
L_IJx=(L2-L_BM-L_DK)*Cos(theta)-L3*(Cos(60*PI/180-theta)+Cos(35*PI/180+theta))
L_IJy=(L2-L_BM+L_DK)*Sin(theta)+L3*(Sin(60*PI/180-theta)+Sin(35*PI/180+theta))
Compute_alpha=Atan(L_IJy/L_IJx) '单位弧度rad
End Function
//升降过程中I点的最大力,即液压最大压力
Public Function Compute_F_Imax(ByVal M As Single, ByVal H1 As Single) As Single
Dim L1 As Single,L2 As Single
Dim X1 As Single,X_max As Single
Dim F_G As Single,F_H As Single,F_A As Single
Dim theta As Single,alpha As Single
Dim F_I As Single
Dim F_Imax As Single
L1=Int(H1/1.531)
L2=Int(L1/(Cos(3.5*PI/180)))
X_max=L1-Sqrt(L2*L2-H1*H1/4)
X1=0
While X1 F_H=Compute_F_H(M,L1,X1) F_G=Compute_F_G(M,L1,X1) F_A=F_G theta=Acos((L1-X1)/L2) alpha=Compute_alpha(theta) F_I=Compute_F_I(F_A,F_H,theta,alpha) If F_Imax F_Imax=F_I End If X1=X1+10 End While F_Imax=F_Imax/2
Compute_F_Imax=F_Imax
End Function
3 实现方法
本文以剪式升降平台设计计算说明书自动生成功能为例,简要介绍在Visual Studio 编译环境下,利用VB.NET语言如何进行参数设置,以及如何调用说明书模板自动生成说明书。该实例内容是在给定升降平台高度H(3 000-5 000)、宽度W(1 500-2 200)以及承载重量(1 000-5 000)参数不同情况下计算各铰点力、液压缸推力以及型材强度、刚度校核,然后自动生成计算说明书。具体操作流程如图4所示。
3.1 计算说明书生成流程
此部分代码即为生成说明书之前的准备工作,在设计升降平台模型前有3种情况:①文档不存在,而且尚未开始设计,无法进行说明书生成;②文档不存在,已经开始设计,可直接生成新说明书;③说明书之前已建立,可直接打开已生成的计算说明书。以下为生成计算说明书流程的部分代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
num_changed=num_changed+1
address_road_old=Mid(address_old,1,15)
If Dir(address_road_old & "说明书汇总\" & TextBox_design_id.Text & ".doc")="" And num_changed=0 Then
MsgBox("尚未開始设计,生成新说明书前请确认是否已驱动模型")
ElseIf Dir(address_new & "说明书汇总\" & TextBox_design_id.Text & ".doc")="" And num_changed=1 Then
ins_book()'-----调用说明书子过程
ElseIf num_changed2=222 Then
ins_book()'-----调用说明书子过程
Else
Dim rrWordApp=CreateObject("Word.Application")
Dim rrWord As Object
rrWord=rrWordApp.Documents.Open(address_road_old & "说明书汇总\" & TextBox_design_id.Text & ".doc")
rrWordApp.Visible=True
End If
num_changed2=0
num_changed=0
End Sub
3.2 计算说明书自动生成
以下为说明书自动生成的主要代码,中间一段省略的代码与上一行相同,只是变量不同,所以不再赘述。首先定义一个Word应用程序,声明一个Word文档,将Word模板赋给Word应用程序。运用Word API中的find.execute方法,查找计算说明书模板中各铰点力、平台支撑臂、液压缸推力以及液压缸与支撑臂夹角。当用户输入不同参数,以下涉及的数据均会随着参数改变而改变。部分代码如下:
Sub ins_book()
Dim WordApp=CreateObject("Word.Application")
'Dim Word=WordApp.Documents.Open("E:\剪式升降平台参数化设计\剪式升降平台设计说明书.doc")
Dim Word As Object
Word=WordApp.Documents.Open(address_road_old & "说明书模板\" & "剪式升降平台设计说明书.doc")
WordApp.Visible=True
'Label32.Text=timer_date
Word.Content.Find.Execute("[number]",,,,,,,TextBox_design_id.Text,2) Word.Content.Find.Execute("[xxxxxxxx]",,,,,,,,,Label34.Text,2)
Word.Content.Find.Execute("[L1]",,,,,,,,,_L1,2)
………
Word.Content.Find.Execute("[FD]",,,,,,,,,_FD,2)
Word.SaveAs(address_road_old & "说明书汇总\" & TextBox_design_id.Text & ".doc")
WordApp.Documents.close()
WordApp.Application.Quit()
Beep()
Dim ralert As DialogResult=MsgBox("说明书已经生成,是否打开说明书?", vbYesNo + vbQuestion+vbDefaultButton2)
If ralert=DialogResult.Yes Then
Dim rWordApp=CreateObject("Word.Application")
Dim rWord As Object
rWord=rWordApp.Documents.Open(address_road_old & "說明书汇总\" & TextBox_design_id.Text & ".doc")
rWordApp.Visible=True
End If
End Sub
3 结语
升降平台计算说明书是剪式升降平台设计过程中的一个重要环节,涉及公式繁杂,计算量大。如果能采用上述方法直接生成计算结果,既方便快捷,又能避免错误录入数据,从而节省了人力[9]。利用VB.NET对Word进行二次开发[10],经输入参数后自动生成计算说明书,计算了各铰点力、上下滑动支撑臂受力、上下固定支撑臂受力、液压缸推力以及液压缸与支撑臂夹角,还计算并校核了平台支撑臂型材的强度、刚度和弯矩。最后根据计算的液压缸推力与工作压力选取液压缸的内径和活塞直径。根据计算结果和公式最终自动生成了剪式升降平台计算说明书。当平台系统驱动完成,点击初始界面上的“导出说明书”按钮,即将剪式升降平台设计说明书保存在Word中。该功能的实现为剪式升降平台的快速设计以及设计参数管理提供了有效保障,而且对企业产品设计及其计算说明书的自动生成也有一定参考价值,可在企业的实际生产中发挥积极作用。
参考文献:
[1] 杜旭东,仲梁维.剪叉式液压升降平台快速设计系统[J].中国水运,2017,17(1):129-132.
[2] 吴炎明,阚勇,胡保林,等.基于C#.Net的罐笼计算说明书自动生成技术研究[J].矿山机械,2009(13):54-57.
[3] 沈媛媛,刘益成,郑恭明.利用VBA在Word中实现试卷的自动生成[J].电脑学习,2007(1):25-26.
[4] 金波.考试试卷自动生成的VBA实现[J].长江大学学报:自科版,2004(4):90-91.
[5] 金良锋,周文祥.Word实验报告的自动生成[J].中国测试技术,2007,33(4):112-115.
[6] 刘春雷,吴重光.用VC实现Word自动生成操作的研究与应用[J].计算机工程与设计,2004,25(8):1954-1956.
[7] 林卓然.VB语言程序设计[M].北京:电子工业出版社,2012.
[8] Word 2010[EB/OL].https://msdn.microsoft.com/en-us/library/office/ff601860(v=office.14).aspx.
[9] 马永志,张纪鹏,郑艺华,等.汽车散热器设计计算平台文档自动生成研究[J].青岛大学学报:工程技术版,2013,28(4):71-75.
[10] 钟葳,童水光.锅炉智能CAD的技术和方法研究[J].浙江大学学报:工学版,2006,40(4):572-576.
(责任编辑:黄 健)