船用螺旋桨图样绘制软件的开发
2016-01-29舒永东邹宏毅董宏图
舒永东,邹宏毅,董宏图
(南京高精船用设备有限公司,江苏 南京 211103)
船用螺旋桨图样绘制软件的开发
舒永东,邹宏毅,董宏图
(南京高精船用设备有限公司,江苏 南京 211103)
摘要:介绍的船用螺旋桨图样绘制软件开发是在Excel与AutoCAD的基础上,通过各自的二次开发接口来编写VBA代码,并实现二者的连接、调用、绘图及表格转换等功能,从而能够根据螺旋桨型值表等参数自动快速地绘制出螺旋桨CAD图样,避免以前繁琐的螺旋桨图样绘制过程,降低劳动强度、节省工作时间,具有很好的推广前景。
关键词:船用螺旋桨;图样绘制软件;二次开发;自动快速
Development of Marine Propeller Drawing Software
SHU Yongdong, ZOU Hongyi, DENG Hongtu
(Nanjing High Accurate Marine Equipment co., Ltd., Nanjing 211103,China)
Abstract:This paper introduces the development of a marine propeller drawing software. The functions of call connection, drawing and form conversion are implemented, based on Excel and AutoCAD and through VBA code of the secondary development interface. This software can be used to automatically, quickly draw the propeller according to its offsets, without formerly conducting the complicated process , thus reducing labor intensity and working time. The software is of a good prospect to be widely used.
Keywords:marine propeller; drawing software; secondary development; automatically and quickly
0引言
船用螺旋桨几乎是每条船舶中必需的零件。由于船型的种类众多,螺旋桨型式也多种多样,如MAU型、B型和Keppel型等[1]。螺旋桨的图样绘制也是船舶设计过程中必不可少的工作。由于螺旋桨型式的多样,桨叶表面弯曲复杂等因素,导致桨叶绘制过程相当繁琐。首先根据螺旋桨型值表等参数绘制螺旋桨的三维图,要在三维软件中输入每个叶切面中每个点的坐标,再通过点生成线,线再生成面(即叶切面),多个叶切面的结合构成螺旋桨的三维图;然后再把三维螺旋桨在不同方向投影出螺旋桨正视图及侧视图,最后在二维软件中绘制伸张轮廓图,需将三幅视图结合到一起构成一幅完整的螺旋桨图[2]。此绘制过程不但繁琐、而且绘制时间长,因此急需开发一种能够根据螺旋桨型值表等参数自动快速地绘制出螺旋桨CAD图样的程序软件。
文中介绍的螺旋桨绘制软件能通过VBA代码将Excel中的数据输入到AutoCAD中,AutoCAD根据收到的数据自动绘制出螺旋桨图样,并将Excel中原始数据以表格的形式自动转换到CAD中,从而自动生成一张相对完整的螺旋桨CAD图样。
1设计思路
船用螺旋桨的设计首先根据船体参数及航速、推力等要求,运用专业的水动力分析技术进行桨叶设计,通过水动力设计软件把计算好的螺旋桨型值表等参数输出至Excel表格中,然后根据Excel表格中螺旋桨型值表等参数进行螺旋桨CAD图样的绘制。因此,开发一种能够根据螺旋桨型值表等参数自动快速地绘制出螺旋桨CAD图样的程序软件,先要实现Excel与AutoCAD软件的连接功能, Excel能自动打开AutoCAD软件并将螺旋桨参数输送至AutoCAD中;其次,AutoCAD软件运用特定的算法将已收到的数据转换成绘图所需要的代码,顺序完成螺旋桨伸张轮廓图、正视图和侧视图等;最后,实现AutoCAD与Excel中的表格转换功能,将Excel中螺旋桨的参数以表格的形式转换到CAD中,形成一幅相对完整的螺旋桨图样。以上功能的实现是在Excel与AutoCAD的基础上,通过各自的二次开发接口来编写VBA代码[4],来实现二者的连接、调用、绘图及表格转换等功能。
2程序设计主要步骤
2.1加载菜单栏
菜单是应用程序必不可少的组成部分,它有2个基本作用[3]:1) 提供人机对话的界面,以便让用户快速方便地选择应用系统的各种功能;2) 管理应用系统,控制各种功能模块的运行。
图1 加载菜单栏
如图1所示,在AUTO CAD菜单栏中加入“螺旋桨绘制”及“表格转换”功能,此功能用VBA编写代码,保存为.mns文件,并将该文件放在CAD系统目录下,然后将文件加载到CAD自定义菜单组,再在自定义菜单栏中添加“螺旋桨绘制”和“表格转换”菜单,在CAD界面就会显示“螺旋桨绘制”及“表格转换”菜单项。
2.2Excel与AutoCAD连接功能
要实现Excel与AutoCAD的连接功能,必须在Excel宏的引用中添加CAD类型库,以及在CAD宏的引用中添加Excel类型库(如图2及图3所示)。如果不相互添加对方的类型库,在Excel中出现与CAD相关代码,或者在CAD中出现与Excel相关的代码时,系统会出现无法识别等错误。
图2 Excel引用中添加CAD类型库
图3 CAD引用中添加Excel类型库
a) CAD调用Excel程序
在CAD中打开菜单工具栏中的宏,在宏中添加窗体属性中把“名称”设置成“frmCircle” (如图4所示),把窗体“Caption”设置成“请输入参数”,然后,在窗体中添加按钮,同样在属性中把按钮名称设置成“OK”,并将按钮“Caption”设置成“请输入参数”,然后在窗体中写入CAD调用Excel的VBA程序代码。(注:上述设置是为了与调用程序相对应,根据程序的不同上述设置可相应改变)
图4 CAD宏中窗体设置
b) Excel调用CAD及绘图程序设计
当鼠标单击“画图”按钮,如图5所示,此时Excel调用CAD软件,然后在CAD中自动绘制螺旋桨的视图。编程之前需要注意在Excel工作表的第一行,第一列写出Excel要调用CAD的路径如图6中第一行字所示,之所以不在程序中编写路径是考虑更改调用路径时方便直观。
图5 Excel操作界面
图6 设置Excel调用CAD路径
2.3EXCEL与CAD表格的转换
一幅完整的螺旋桨视图包含螺旋桨伸张轮廓图、正视图、侧视图、螺旋桨型值表及参数表,因此还需将Excel中型值表及参数表转换到CAD中。所以需编写一些自动转换程序来实现Excel表格到CAD表格的转换,转换思路如下:假设表格由a(a≥1)行b(b≥1)列组成,x,y为循环变量,表格完全由单元格组成,每个单元格由4条边组成。让x从1开始循环到a,y从1开始循环到b读取每个单元格的4条边,会读取a×b×4次,重复读取a×b×2次。当x=1时,读取上边;当y=1时,读取左边,其余情况下读取右边和下边。共读取a+b+a×b×2次,与实际表格的变数相同,没有重复读取,所有表格读取完成后,将表格转换至CAD中。
3运行效果
运行CAD点击图1菜单栏中“螺旋桨绘制”,CAD会自动打开Excel模板,然后,将已设计完成的螺旋桨数据粘贴至Excel中,点击图5中的“绘图”键,Excel自动调用CAD绘图模板,并完成绘图。最后,点击图1中的“表格转换”,将Excel数据以表格的形式转换至CAD图中,再对表格的大小进行调整,形成一幅较完整的螺旋桨视图,如图7所示。
4结论
通过船用螺旋桨图样绘制软件的开发,避免了以前繁琐的螺旋桨绘制过程,使得技术人员在绘制螺旋桨CAD图样时,只要通过软件简单操作,就能把完整的螺旋桨CAD图样自动绘制出来,降低劳动强度、节省工作时间,具有很好的推广前景。后续将和专业软件公司一起推广给更多螺旋桨设计者。
图7 程序运行效果
参考文献:
[1] 盛振邦,刘应中. 船舶原理[M]. 北京:上海交通大学出版社,2003.
[2] 张双远. 螺旋桨伸张轮廓参数化绘制程序的设计[J]. 造船技术,2007,(3):35-38.
[3] 聂伟强. Visual Basic 程序设计基础教程[M]. 北京:清华大学出版社,2006.6.
[4] 朱桂华,朱宝生. 基于VBA技术实现Excel数据生成CAD的方法[J]. 中国西部科技,2007,(9):13-15.
收稿日期:2014-01-09
中图分类号:TH122
文献标志码:B
文章编号:1671-5276(2015)04-0135-03
作者简介:舒永东(1976-),男,江苏徐州人,高级工程师,硕士,研究的方向为船舶设备的设计与制造。