李道軍,李廷鋒,盧青波
(鄭州職業技術學院,河南鄭州 450121)
Mathcad 是一款功能強大的工程計算軟件,具有獨特的可視化格式和便箋式界面,能將標準的數學符號、文本和圖形集成到一個工作表中,用來執行、記錄和共享工程計算及設計工作,得到了越來越多的工程技術人員的青睞[1-4]。Mathcad 還為開發人員提供了OLE(Object Linking and Embedding,對象鏈接與嵌入)自動化接口,使其能夠很容易地集成到通用設計平臺中[5]。
Visual C++集成的MFC 框架、Class Wizard 和App Wizard 都提供對OLE 自動化的擴展支持。這些工具處理了創建自動化服務器和自動化控制器的大部分例行事務,極大地方便了編程工作。因此,Visual C++已被廣泛應用于各種軟件的二次開發及應用[6-10]。
本文結合工程項目的實際開發經驗,以Visual C++為開發工具,Mathcad 為后臺計算工具,開發了轉軸的可靠性設計系統,為進一步研究機械零件的可靠性優化設計平臺提供思路和技術支持。
Mathcad 為用戶提供了很多接口,可以用于輸入、輸出數據及對軟件的二次開發,例如使用C、C++或Fortran 開發Mathcad函數,使用Visual Basic 從外部程序訪問Mathcad 自動化接口,使用COM(Component Object Model,部件對象模型)接口創建新的Mathcad 組件等。本文主要研究使用Visual C++從外部程序訪問Mathcad 的OLE 自動化接口。
OLE 是一種建立在COM 技術基礎上的交互進程通信技術。OLE 定義和實現了一種允許應用程序作為軟件/對象(數據集合和操作數據的函數)彼此進行/連接的機制。OLE 自動化使得用戶不僅能夠操作程序中的對象,還可以調用操作系統中其他程序的對象。
OLE 自動化有自動化服務器端和自動化客戶端兩種類型,Mathcad 屬于自動化服務器。Mathcad 自動化服務器中包含了多種OLE 自動化對象,有Application 對象、WorkSheets 對象、WorkSheet對象、Region 對象、NumericValue 對象等。要調用Mathcad 提供的OLE 自動化對象,可以通過Mathcad 提供的對象庫(Object Library)實現。在Visual C++平臺下,通過導入Mathcad 類型庫(Mathcad Automation API<1.0>),使之成為Visual C++中可用的類文件,在程序中即可調用Mathcad 中相應的OLE 對象。在Visual Studio 2010環境下,導入Mathcad 對象庫的界面如圖1 所示。
依據實際項目需求,在Visual C++平臺下新建類文件,用于管理和實現界面與后臺Mathcad 自動化服務器的操作(圖2)。
(1)打開當前工作表的關鍵代碼如下:
程序首先通過調用Open 函數打開工作表文件,通過設置變量的值將用戶信息輸入到工作表文件進行重新計算,然后通過獲取相關變量的值,返回Mathcad 計算結果,供用戶查看。
利用Mathcad 軟件進行可靠性設計的一般步驟為:①進入Mathcad 環境的工作頁,確定設計變量,編寫設計過程;②利用Mathcad 的解方程函數polyroots 進行問題求解;③設置精度值,調用roots 函數來提高所求根的準確性。
例如,某圓錐齒輪簡支軸危險截面的彎矩M=10 445 N·m,扭矩T=7903 N·m,應力集中源有鍵槽、圓角和過盈配合。要求轉軸運轉后107 可靠度R≥0.999,試設計該軸[11]。
在Mathcad 中依據可靠度R 用正態累積分布反函數qnorm(1-R,0,1)確定聯結系數z;根據聯結系數z 用正態累積分布函數pnorm(z,0,1)確定失效概率F;用正態分布概率密度函數dnorm(z,0,1)確定失效頻度f;根據多項式多次項系數向量P 用求解多項式根的函數polyroots(P)計算轉軸直徑d;最后通過roots 函數來提高對所求解的準確性。所編寫的Mathcad 設計過程見表1。
求解結果為R=0.999 時,轉軸危險截面的直徑為105.984 mm。聯結系數與可靠度的關系曲線如圖3 所示,軸徑與可靠度的關系曲線如圖4 所示。

圖3 聯結系數z 與可靠度R 的關系曲線

圖4 軸徑D 與可靠度R 的關系曲線
MFC 給軟件開發者提供了一種便捷快速建立標準的用戶界面的方法,基于MFC 對話框應用程序及Mathcad 設計過程設計了轉軸的可靠性設計系統(圖5)。為使設計數據能夠長久保存,結合ADO(ActiveX Data Object)數據庫技術將設計數據保存到數據庫中,以方便用戶查看及調用。其中“保存”按鈕的功能是將當前設計數據及計算結果保存到數據庫中,“查看”按鈕的功能是顯示當前數據庫已保存的數據信息(圖6)。當用戶選定一條信息后,點擊確定按鈕后,所選定的數據信息會返回到設計界面。

圖5 轉軸可靠性設計系統界面

圖6 當前數據庫查看界面
隨著現代設計方法及理論的發展,Mathcad 以其與Pro/E 良好的接口必將在機械行業設計中得到廣泛應用。研究和實現Mathcad 在設計領域的集成,將為基于Mathcad 的通用工程設計軟件開發提供技術支持。本文設計了基于Mathcad 自動化接口的通用類,并基于數據庫技術,研究開發了轉軸的可靠性設計系統,并給出了軟件中的關鍵代碼,對Mathcad 在工程設計中的應用,有一定的實用價值和參考價值。