陳啟升,別永森,徐友珍,祁全新
(山東恒宇重工機械有限公司,山東 高密 261500)
針對傳統設計方法的弊端,本文利用Visua1C++編程工具開發出一套能夠實現八桿壓力機參數化設計的軟件,利用編程語言編寫可視化界面程序,使設計者在修改時只需修改可視化界面中的相關參數的值即可,其他部分由計算機按照編程給定的設計要求快速準確地得到計算結果,自動完成產品的設計,使用戶操作起來更加直觀便捷,增強了八桿壓力機參數化設計的可操作性。
本文關于八桿壓力機的參數化設計軟件是基于Visual C++6.0編程工具進行開發的。它相比于傳統設計方法更加直觀,更加簡單實用,并且能夠根據需要隨時修改機構參數的值[1]。利用該軟件對八桿壓力機進行設計時只需要按照要求將已知的數據在相應的編輯框中輸入,點擊未知桿的計算按鈕,即可得到相應參數的值。該軟件還附上了八桿壓力機機構的簡化模型,使用戶能夠直觀了解各參數與八桿壓力機機構的對應關系。最后可以通過機構的運動仿真,觀察壓力機的運動過程。如圖1所示為八桿機械式壓力機參數化設計可視化系統的功能示意圖。
該軟件采用的是模塊式結構,主要分為參數輸入模塊、參數計算模塊、模型檢驗模塊和運動仿真模塊。各模塊的具體功能介紹如下:

圖1 八桿機構參數化設計可視化系統功能示意圖
(1)參數輸入模塊:從產品設計方面考慮,可將機構的參數分為已知參數和未知參數。已知參數是根據產品需求及設計經驗預先確定的,在該軟件參數輸入模塊輸入的即是產品設計中的已知參數,這些參數可以根據現有壓力機的尺寸參數作為參考來預先確定。在此模塊可以實現曲柄長度、連桿夾角及部分連桿長度等參數的修改和輸入。
(2)參數計算模塊:該模塊輸出的是產品設計中的未知參數,它是依據已知參數與未知參數之間添加的方程式或尺寸關系表達式計算得來的。輸入已知的桿長及角度后,依據桿長之間的數學關系表達式可以計算出剩下的桿的長度。
(3)模型檢驗模塊:當機構的所有參數均確定了以后,將所有參數的數據在界面中顯示出來,方便設計者檢驗現有參數的機構是否滿足曲柄存在條件、機構的動力學性能條件及機構的其他約束條件等。
(4)運動仿真模塊:根據前面對八桿機構的運動學分析以及各參數之間的數學關系分析的基礎上,對機構進行了位置分析,當結構中的參數均已確定的情況下,根據其機構中各部件之間的幾何關系,可以將機構中各鉸接點在任意時刻的位置變化規律表示出來,在該界面中,將各點的位置變化用動畫的形式顯示出來,實現機構的運動仿真,使機構的運動過程直觀展現出來。
可視化界面是實現人機交流的媒介[2,3]。在可視化界面的開發中一定要注意軟件界面的易用性,界面設計要盡量簡單化,即使計算機操作能力不強的用戶也能夠很快學會使用,并要具有明確的導向性。在界面中應該添加“上一步”、“下一步”、“退出”等按鈕作為提示信息給用戶起到導向作用,使用戶能夠根據這些提示信息在各頁面之間進行任意跳轉。
該軟件采用對話框形式作為人機交互界面,控件則是用戶界面的主要組成部分[4],在對話框上添加一些方便用戶輸入、修改以及完成其他操作的控件,用戶直接點擊這些控件即可完成相應的操作。本文開發的可視化界面由三個界面組成:參數輸入與參數計算界面,數據展示界面,運動仿真界面。
如圖2所示為八桿壓力機傳動機構計算系統參數輸入與計算模塊的用戶界面。在參數輸入界面中輸入已知參數的值,在計算界面選擇要計算的桿,即可完成計算過程,得到正確的計算結果。由于該界面設計把計算各個桿長的不同情況下需要輸入的參數都放在了一起,因此也出現了一個弊端,就是參數輸入界面內列出的各參數必須全部輸入一個值,不能有空,否則就不能正常計算,因此即使是要計算的參數也要在參數輸入界面輸入一個任意的值,這個值對參數計算結果沒有影響,可以任意輸入但是不能為空。

圖2 八桿可視化計算系統主界面
下面先簡單介紹創建圖2所示的用戶界面的操作方法。
(1)創建對話框模板如果想在程序中創建一個新的對話框,要通過插入一個對話框資源來完成。在VC++開發環境中選擇“插入”菜單下的“資源”菜單命令,在此時彈出的對話框中選擇Dialog資源類型,然后單擊“新建”按鈕即可創建一個只包含“確定”按鈕和“取消”按鈕的對話框模板[5],如圖3所示,這兩個按鈕可以移動、修改或刪除,由于本設計界面中不需要這兩個按鈕,因此直接刪除。

圖3 對話框模板
(2)添加控件
在VC++的開發環境中還提供了設計界面所需要的基本控件工具欄,在創建完對話框模板后,根據需要在提供的基本控件工具欄中選擇所需要添加的控件,再將此控件拖動至對話框模板中的相應位置上,松開鼠標按鍵即可完成控件的添加。相同類型的控件的添加可通過復制、粘貼的方式來完成。控件添加完成后,利用菜單欄中的“布局”菜單合理布置控件,使各控件位置對齊、大小統一。
(3)給界面對象連接變量
控件添加完成后要設置控件的屬性,在屬性對話框中設置控件的ID并更改控件的標題。每一個控件都有一個ID標志值,它是控件的對象,每一個對象連接一個變量,對控件的操作在源程序中是通過對與之相連接的變量的操作來完成的[6]。
(4)添加代碼
沒有添加代碼的對話框完全不能執行任何操作,添加代碼就是給每個控件按鈕映射一個消息處理函數,應用程序通過按鈕接收到信息后就執行相應的消息處理函數。在各個計算按鈕的消息處理函數中編寫各個參數的計算程序代碼,按下計算按鈕后就會開始執行其與之對應的計算程序來完成參數計算。如圖4所示為計算桿長L3的部分程序代碼。
(5)測試并保存對話框
對話框創建完成后,在運行程序對話框之前,要在開發環境中對設計的軟件功能進行測試,通過“布局”菜單中的“測試”命令可以在設計階段檢測對話框的運行效果,輸入相應的已知參數后檢查計算結果,檢測對話框滿足設計要求后即可對該對話框界面進行保存,然后才能在應用程序中運行所創建的對話框。
按照上述操作即可完成參數輸入和計算界面的設計,在圖2所示界面中還加入了八桿機構圖形示例,展示了八桿機構結構簡圖。在界面右下角設置了“下一步”“退出”按鈕,用戶可以選擇在該界面直接退出,也可以點擊“下一步”進入數據展示界面,如圖5所示。該界面展示了八桿機構的所有參數數據,包括曲柄長度、各桿長度及行程,使設計人員對這些參數的數值能夠一目了然,方便設計人員去檢驗現有模型是否滿足機構所有的約束條件及用戶設計要求。

圖4 計算桿長L3的部分程序代碼

圖5 數據展示界面

圖6 運動仿真界面
點擊圖5所示界面的“下一步”即可進入到八桿壓力機的運動仿真界面,如圖6所示。在該界面中實現了在曲柄活動范圍內八桿壓力機整個工作過程的動態顯示,可以更加直觀地觀察八桿壓力機各個機構在每個時刻的運動狀態。點擊運動仿真界面中的“顯示”按鈕即可顯示八桿機構運動簡圖,點擊“旋轉”按鈕,八桿壓力機的整個運動循環過程就動態地顯示出來,實現機構的運動仿真。“旋轉”按鈕旁邊還設有“反向”選擇按鈕,選擇“反向”按鈕機構就會向相反的方向旋轉運動。若想觀察機構某個特定位置的運動情況,可以點擊“停止”按鈕,這時機構的運動就會暫停,通過機構運動的動畫展示還可觀察到滑塊在上死點和下死點兩個極限位置的運動情況。在界面中還設有“實際行程”按鈕,在機構的運動過程中可以通過該按鈕來實時顯示滑塊在每個時刻的位移,最終得到所設計的八桿壓力機的實際最大行程。
本文開發出八桿壓力機的參數化設計界面后,就可以利用該界面對八桿壓力機進行參數化設計,設計出不同行程、不同尺寸規格的八桿壓力機。由于壓力機的結構形式相同,為了方便廠家生產,減少制造成本,新的壓力機只是在原有壓力機的基礎上改變部分構件的尺寸來滿足其設計要求,因此對八桿壓力機進行設計時,只需要根據設計要求對個別尺寸進行設計計算,其他參數值可參考已有壓力機的相應參數的值作為已知常量在界面中輸入。
本文在L4-1800M3型18000kN閉式四點八桿壓力機的基礎上設計一個行程為900mm的八桿壓力機。假定通過改變l2的桿長,來滿足八桿壓力機的行程要求,所以在設計過程中桿l2的長度為待設計的參數值,其他尺寸參數均參考L4-1800M3型八桿壓力機的原始尺寸來確定,通過八桿壓力機參數化計算系統,計算出要想得到行程為900mm的壓力機所需要的桿l2的尺寸值。
L4-1800M3型18000kN閉式四點八桿機械式壓力機的原始數據為l1=840mm,l2=900mm,l3=861mm,l4=941.13mm,l5=635.5mm,l6=500mm,l7=1150mm,R=200mm,X=1150mm,Y=332mm,搖桿角度∠BAC=151°,三角架頂角∠EDF=45°,上死點角度 θ=30°,壓力機行程S=750mm。
依據已有八桿壓力機的原始數據在參數輸入界面中輸入各參數的值:l1=840mm,l3=861mm,l4=941.13mm,l5=635.5mm,l6=500mm,l7=1150mm,l8=200mm,X=1150mm,Y=332mm,∠BAC=151°,∠EDF=45°,θ=30°,然后輸入壓力機所要滿足的設計行程S=900mm,雖然桿 為待計算的桿,但由于在參數輸入界面中,各參數后面的編輯框不能為空,否則會出現錯誤提示,因此在l2的輸入框中輸入任意一個數即可,不會對計算結果產生影響,在此輸入0。
參數輸入完成后,在計算界面中點擊“計算L2”按鈕,計算結果就會顯示在界面中,如圖7所示。利用該系統計算出的l2的數值為548.55mm,點擊“下一步”進入數據展示界面,點擊“顯示”可以看到所設計的壓力機的所有構件的尺寸參數,繼續點擊“下一步”進入壓力機的運動仿真界面,在該界面中點擊“顯示”“旋轉”,壓力機模型在曲柄的帶動下開始運動,點擊“反向”,壓力機模型會向相反的方向旋轉,在機構的運動過程中還可以通過“實際行程”觀察滑塊在每個時刻的位移,最終得到所設計的壓力機的實際仿真行程S=900.08mm,與設計目標S=900mm基本一致,因此驗證了該八桿壓力機參數化計算系統的正確性與實用性,為八桿壓力機的設計提供了一個有力的工具。

圖7 可視化計算系統應用實例
基于Visual C++編程工具開發了八桿壓力機參數化設計及運動仿真可視化系統,完成了可視化界面的設計,在界面中既可實現參數的輸入、修改與計算,又實現了八桿壓力機機構的運動仿真,使用戶能夠方便進行操作并可直觀地觀察八桿機構模型的運動情況,大大方便了壓力機設計。
[1]劉彩霞.基于面向對象技術的起重機參數化設計系統研究[D].大連:大連理工大學,2003.
[2]徐 曄.淺析軟件界面的人機交互設計[J].計算機與信息技術,2009,11:72-73.
[3]S.A.Al-Hamed,A.A.Al-Janobi.A program for predicting tractor performance in Visual C++[J].Computers and Electronics in A-griculture,2001:312.
[4]Anonymous.Research and Markets:This Book Is The Latest Edition Of One Of The Bestselling Of All Books On The C++Language And Visual C++[J].M2 Presswire,2008.
[5]張蘭芳.基于Visual C++開發的并聯六自由度平臺測控系統[D].杭州:浙江大學,2002.
[6]黃維通.Visual C++面向對象與可視化程序設計[M].北京:清華大學出版社,2003:63-65.