舒永東,鄒宏毅,董宏圖
(南京高精船用設備有限公司,江蘇 南京 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-),男,江蘇徐州人,高級工程師,碩士,研究的方向為船舶設備的設計與制造。