舒永東,鄒宏毅,董宏圖
(南京高精船用設(shè)備有限公司,江蘇 南京 211103)
船用螺旋槳圖樣繪制軟件的開發(fā)
舒永東,鄒宏毅,董宏圖
(南京高精船用設(shè)備有限公司,江蘇 南京 211103)
摘要:介紹的船用螺旋槳圖樣繪制軟件開發(fā)是在Excel與AutoCAD的基礎(chǔ)上,通過各自的二次開發(fā)接口來編寫VBA代碼,并實(shí)現(xiàn)二者的連接、調(diào)用、繪圖及表格轉(zhuǎn)換等功能,從而能夠根據(jù)螺旋槳型值表等參數(shù)自動(dòng)快速地繪制出螺旋槳CAD圖樣,避免以前繁瑣的螺旋槳圖樣繪制過程,降低勞動(dòng)強(qiáng)度、節(jié)省工作時(shí)間,具有很好的推廣前景。
關(guān)鍵詞:船用螺旋槳;圖樣繪制軟件;二次開發(fā);自動(dòng)快速
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]。螺旋槳的圖樣繪制也是船舶設(shè)計(jì)過程中必不可少的工作。由于螺旋槳型式的多樣,槳葉表面彎曲復(fù)雜等因素,導(dǎo)致槳葉繪制過程相當(dāng)繁瑣。首先根據(jù)螺旋槳型值表等參數(shù)繪制螺旋槳的三維圖,要在三維軟件中輸入每個(gè)葉切面中每個(gè)點(diǎn)的坐標(biāo),再通過點(diǎn)生成線,線再生成面(即葉切面),多個(gè)葉切面的結(jié)合構(gòu)成螺旋槳的三維圖;然后再把三維螺旋槳在不同方向投影出螺旋槳正視圖及側(cè)視圖,最后在二維軟件中繪制伸張輪廓圖,需將三幅視圖結(jié)合到一起構(gòu)成一幅完整的螺旋槳圖[2]。此繪制過程不但繁瑣、而且繪制時(shí)間長(zhǎng),因此急需開發(fā)一種能夠根據(jù)螺旋槳型值表等參數(shù)自動(dòng)快速地繪制出螺旋槳CAD圖樣的程序軟件。
文中介紹的螺旋槳繪制軟件能通過VBA代碼將Excel中的數(shù)據(jù)輸入到AutoCAD中,AutoCAD根據(jù)收到的數(shù)據(jù)自動(dòng)繪制出螺旋槳圖樣,并將Excel中原始數(shù)據(jù)以表格的形式自動(dòng)轉(zhuǎn)換到CAD中,從而自動(dòng)生成一張相對(duì)完整的螺旋槳CAD圖樣。
1設(shè)計(jì)思路
船用螺旋槳的設(shè)計(jì)首先根據(jù)船體參數(shù)及航速、推力等要求,運(yùn)用專業(yè)的水動(dòng)力分析技術(shù)進(jìn)行槳葉設(shè)計(jì),通過水動(dòng)力設(shè)計(jì)軟件把計(jì)算好的螺旋槳型值表等參數(shù)輸出至Excel表格中,然后根據(jù)Excel表格中螺旋槳型值表等參數(shù)進(jìn)行螺旋槳CAD圖樣的繪制。因此,開發(fā)一種能夠根據(jù)螺旋槳型值表等參數(shù)自動(dòng)快速地繪制出螺旋槳CAD圖樣的程序軟件,先要實(shí)現(xiàn)Excel與AutoCAD軟件的連接功能, Excel能自動(dòng)打開AutoCAD軟件并將螺旋槳參數(shù)輸送至AutoCAD中;其次,AutoCAD軟件運(yùn)用特定的算法將已收到的數(shù)據(jù)轉(zhuǎn)換成繪圖所需要的代碼,順序完成螺旋槳伸張輪廓圖、正視圖和側(cè)視圖等;最后,實(shí)現(xiàn)AutoCAD與Excel中的表格轉(zhuǎn)換功能,將Excel中螺旋槳的參數(shù)以表格的形式轉(zhuǎn)換到CAD中,形成一幅相對(duì)完整的螺旋槳圖樣。以上功能的實(shí)現(xiàn)是在Excel與AutoCAD的基礎(chǔ)上,通過各自的二次開發(fā)接口來編寫VBA代碼[4],來實(shí)現(xiàn)二者的連接、調(diào)用、繪圖及表格轉(zhuǎn)換等功能。
2程序設(shè)計(jì)主要步驟
2.1加載菜單欄
菜單是應(yīng)用程序必不可少的組成部分,它有2個(gè)基本作用[3]:1) 提供人機(jī)對(duì)話的界面,以便讓用戶快速方便地選擇應(yīng)用系統(tǒng)的各種功能;2) 管理應(yīng)用系統(tǒng),控制各種功能模塊的運(yùn)行。
圖1 加載菜單欄
如圖1所示,在AUTO CAD菜單欄中加入“螺旋槳繪制”及“表格轉(zhuǎn)換”功能,此功能用VBA編寫代碼,保存為.mns文件,并將該文件放在CAD系統(tǒng)目錄下,然后將文件加載到CAD自定義菜單組,再在自定義菜單欄中添加“螺旋槳繪制”和“表格轉(zhuǎn)換”菜單,在CAD界面就會(huì)顯示“螺旋槳繪制”及“表格轉(zhuǎn)換”菜單項(xiàng)。
2.2Excel與AutoCAD連接功能
要實(shí)現(xiàn)Excel與AutoCAD的連接功能,必須在Excel宏的引用中添加CAD類型庫,以及在CAD宏的引用中添加Excel類型庫(如圖2及圖3所示)。如果不相互添加對(duì)方的類型庫,在Excel中出現(xiàn)與CAD相關(guān)代碼,或者在CAD中出現(xiàn)與Excel相關(guān)的代碼時(shí),系統(tǒng)會(huì)出現(xiàn)無法識(shí)別等錯(cuò)誤。
圖2 Excel引用中添加CAD類型庫
圖3 CAD引用中添加Excel類型庫
a) CAD調(diào)用Excel程序
在CAD中打開菜單工具欄中的宏,在宏中添加窗體屬性中把“名稱”設(shè)置成“frmCircle” (如圖4所示),把窗體“Caption”設(shè)置成“請(qǐng)輸入?yún)?shù)”,然后,在窗體中添加按鈕,同樣在屬性中把按鈕名稱設(shè)置成“OK”,并將按鈕“Caption”設(shè)置成“請(qǐng)輸入?yún)?shù)”,然后在窗體中寫入CAD調(diào)用Excel的VBA程序代碼。(注:上述設(shè)置是為了與調(diào)用程序相對(duì)應(yīng),根據(jù)程序的不同上述設(shè)置可相應(yīng)改變)
圖4 CAD宏中窗體設(shè)置
b) Excel調(diào)用CAD及繪圖程序設(shè)計(jì)
當(dāng)鼠標(biāo)單擊“畫圖”按鈕,如圖5所示,此時(shí)Excel調(diào)用CAD軟件,然后在CAD中自動(dòng)繪制螺旋槳的視圖。編程之前需要注意在Excel工作表的第一行,第一列寫出Excel要調(diào)用CAD的路徑如圖6中第一行字所示,之所以不在程序中編寫路徑是考慮更改調(diào)用路徑時(shí)方便直觀。
圖5 Excel操作界面
圖6 設(shè)置Excel調(diào)用CAD路徑
2.3EXCEL與CAD表格的轉(zhuǎn)換
一幅完整的螺旋槳視圖包含螺旋槳伸張輪廓圖、正視圖、側(cè)視圖、螺旋槳型值表及參數(shù)表,因此還需將Excel中型值表及參數(shù)表轉(zhuǎn)換到CAD中。所以需編寫一些自動(dòng)轉(zhuǎn)換程序來實(shí)現(xiàn)Excel表格到CAD表格的轉(zhuǎn)換,轉(zhuǎn)換思路如下:假設(shè)表格由a(a≥1)行b(b≥1)列組成,x,y為循環(huán)變量,表格完全由單元格組成,每個(gè)單元格由4條邊組成。讓x從1開始循環(huán)到a,y從1開始循環(huán)到b讀取每個(gè)單元格的4條邊,會(huì)讀取a×b×4次,重復(fù)讀取a×b×2次。當(dāng)x=1時(shí),讀取上邊;當(dāng)y=1時(shí),讀取左邊,其余情況下讀取右邊和下邊。共讀取a+b+a×b×2次,與實(shí)際表格的變數(shù)相同,沒有重復(fù)讀取,所有表格讀取完成后,將表格轉(zhuǎn)換至CAD中。
3運(yùn)行效果
運(yùn)行CAD點(diǎn)擊圖1菜單欄中“螺旋槳繪制”,CAD會(huì)自動(dòng)打開Excel模板,然后,將已設(shè)計(jì)完成的螺旋槳數(shù)據(jù)粘貼至Excel中,點(diǎn)擊圖5中的“繪圖”鍵,Excel自動(dòng)調(diào)用CAD繪圖模板,并完成繪圖。最后,點(diǎn)擊圖1中的“表格轉(zhuǎn)換”,將Excel數(shù)據(jù)以表格的形式轉(zhuǎn)換至CAD圖中,再對(duì)表格的大小進(jìn)行調(diào)整,形成一幅較完整的螺旋槳視圖,如圖7所示。
4結(jié)論
通過船用螺旋槳圖樣繪制軟件的開發(fā),避免了以前繁瑣的螺旋槳繪制過程,使得技術(shù)人員在繪制螺旋槳CAD圖樣時(shí),只要通過軟件簡(jiǎn)單操作,就能把完整的螺旋槳CAD圖樣自動(dòng)繪制出來,降低勞動(dòng)強(qiáng)度、節(jié)省工作時(shí)間,具有很好的推廣前景。后續(xù)將和專業(yè)軟件公司一起推廣給更多螺旋槳設(shè)計(jì)者。
圖7 程序運(yùn)行效果
參考文獻(xiàn):
[1] 盛振邦,劉應(yīng)中. 船舶原理[M]. 北京:上海交通大學(xué)出版社,2003.
[2] 張雙遠(yuǎn). 螺旋槳伸張輪廓參數(shù)化繪制程序的設(shè)計(jì)[J]. 造船技術(shù),2007,(3):35-38.
[3] 聶偉強(qiáng). Visual Basic 程序設(shè)計(jì)基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社,2006.6.
[4] 朱桂華,朱寶生. 基于VBA技術(shù)實(shí)現(xiàn)Excel數(shù)據(jù)生成CAD的方法[J]. 中國西部科技,2007,(9):13-15.
收稿日期:2014-01-09
中圖分類號(hào):TH122
文獻(xiàn)標(biāo)志碼:B
文章編號(hào):1671-5276(2015)04-0135-03
作者簡(jiǎn)介:舒永東(1976-),男,江蘇徐州人,高級(jí)工程師,碩士,研究的方向?yàn)榇霸O(shè)備的設(shè)計(jì)與制造。