鐘壽洋,張德暉,張 翔
(福建農林大學 機電工程學院,福建 福州 350002)
馬鈴薯已成為我國繼稻米、小麥、玉米之后的又一主糧,但我國馬鈴薯收獲的機械化水平低,特別是適用于丘陵地區的馬鈴薯收獲機還很少,大多還是人工挖掘[1,2].挖掘鏟是馬鈴薯收獲機的重要部件之一,它由鏟片及鏟架等組成,其主要功能為挖掘薯塊,并將薯塊輸送至分離裝置[3].挖掘鏟的結構參數對機具的挖掘效果影響很大,工作時既要挖掘出所有薯塊,將薯塊順利輸送至分離部件,又要盡量降低機具的動力消耗[4],設計出一個符合要求的挖掘鏟需進行大量田間試驗及修改,在傳統的設計方法中,挖掘鏟的每一次改進都需重新進行人工建模及有限元分析.因此,將虛擬現實技術應用在農機的仿真中,通過VB、SolidWorks、ANSYS軟件及其二次開發模塊設計出馬鈴薯挖掘鏟參數化設計系統,該系統具有便捷的用戶界面,它可以根據用戶所輸入的尺寸參數對挖掘鏟進行參數化三維建模,以及根據用戶所輸入的材料特性及載荷等參數進行參數化有限元分析,并對挖掘鏟進行自動裝配,該系統極大的提高了挖掘鏟設計和改進的效率.
馬鈴薯挖掘鏟參數化系統包括參數化建模、參數化有限元分析及自動裝配模塊.系統通過SolidWorks進行建模及裝配,采用ANSYS進行有限元分析,并利用VB編制用戶窗體.用戶在建模窗體中輸入相應的尺寸參數,系統便會驅動SolidWorks建立對應的馬鈴薯挖掘鏟的零件模型,用戶在有限元分析窗體中輸入相應的材料參數,系統便驅動ANSYS對零件進行有限元分析,并顯示分析結果.零部件設計完成,便可通過建模窗體自動完成建模.其流程圖如圖1所示.

圖1 系統流程圖
Solidworks向用戶提供了API函數進行二次開發,用戶在Solidworks中的所有操作都可以通過編輯API函數來實現參數化[5].API函數通過聲明和實例化可以被VB所調用.本文通過挖掘鏟鏟片的參數化來介紹參數化建模過程.
在VB中創建鏟片的參數化建模窗體,如圖2所示,將其鏟厚、鏟長、鏟寬等尺寸參數作為輸入內容,并將鏟片的結構示意圖顯示在窗口中,方便用戶設計時參考.

圖2 鏟片參數化建模窗體
為了實現VB與SolidWorks的連接,必須先對SolidWorks API的最高層對象及文檔對象進行聲明和實例化,具體代碼如下:
Set swApp CreateObject("sldworks.appli cation")//對SolidWorks API的最高層對象
Set part=swapp.newpart//創建新文檔
利用SolidWorks API函數編制草圖及特征命令,并提取其中的尺寸特征,通過VB對其尺寸進行參數驅動,代碼如下:
Dim H as Double//申明變量類型
H=CDbl(txtH.Text)/1000//對變量單位進行轉換
boolstatus=Part.Extension.SelectByID2("草圖1","SKETCH",0,0,0,False,0,Nothing,0)//選取草圖
Set myFeature=Part.FeatureManager.FeatureExtrusion2(True,False,False,0,0,H,……)//拉伸命令
……
輸入相應的尺寸參數,點擊創建,即可在SolidWorks中創建出鏟片模型,如圖3所示:

圖3 鏟片參數化模型
ANSYS為用戶提供了二次開發模塊[6],用戶可以首先建立鏟片、鏟架等的log文件,然后利用APDL語言對其進行編譯,并通過VB對APDL命令流進行調用,對零件的單元類型、彈性模量等變量進行參數化,實現對挖掘鏟的參數化分析,最后通過VB的圖像控件顯示有限元分析結果.本文通過鏟片的分析介紹參數化有限元分析的過程.
鏟片的有限元分析用戶窗體如圖4所示,窗體中有單元類型、網格精度等下拉框及彈性模量等用戶輸入文本框.

圖4 鏟片參數化分析窗體
為了能使VB調用ANSYS,首先要通過shell函數來建立VB與ANSYS的連接,代碼如下:
Dim dy
dy=Shell("C:Program Files……ANSYS.exe-b-p ane3fl-i shi.txt-o sh.log",1)
其中 C:Program Files……ANSYS.exe為ANSYS的安裝目錄.-b表示為設置ANSYS的處理模式為Batch模式.-p 表示為設置ANSYS為Multiphsics模塊產品特征代碼,變量名為ane3fl.-i為所輸入的APDL文件,-o表示輸出的文件,此處為*.log文件.
用戶可以根據需要編制常用的APDL命令流,如單元類型、材料屬性等,部分命令流如下:
et,1,solid164//定義單元類型
mp,ex,1,2.1e5!Q235//定義定義彈性模量及材料特性
mp,nuxy,1,0.3//定義泊松比
mp,dens,1,7.81e-3//定義密度
……
在分析的過程中需通過VB的timer控件對ANSYS的分析進度進行實時判斷[7],如果有file.err文件產生,則說明VB的shell函數對ANSYS的調用成功.用戶窗口中跳出“ANSYS分析完成”通知用戶.其關鍵代碼如下:

分析完成后,用圖形保存命令將圖形保存至到工作目錄中,并利用VB圖像控件的Loadpicture函數將應力云圖顯示在VB窗口中,如圖5所示.從圖中我們可以看到鏟片的最大應力在鏟片與鏟架連接的地方,為195MPa,小于Q234的屈服極限強度233MPa,因此,該尺寸參數可以做為鏟片的設計參數.在設計時如果發現強度不夠,則可以通過修改鏟片的尺寸參數并在系統中快速建模并進行有限元分析.

圖5 鏟片應力分析云圖
挖掘鏟的參數化裝配需利用SolidWorks API函數的選擇與遍歷面的技術將多個零件按對應的配合關系裝配在一起[8].挖掘鏟主要包括鏟架、鏟片以及沉頭螺栓.
在自動裝配之前首先需用swApp.ActiveDoc來激活SolidWorks文檔,并通過swApp.NewAssembly()函數新建裝配體文檔,然后再利用OpenDoc6()函數將需要插入的零件放至內存.具體代碼如下:

接下來利用函數AddComponent4()將加載后的零件通過添加到當前裝配體中,并且通過Add-Mate3()函數添加約束關系,使兩零件約束完全,關鍵代碼如下:


自動生成的裝配體如圖6所示,通過SaveAs3()函數將裝配體保存至指定的文件夾中.
longstatus=swModel.SaveAs3("F:canshuhuazhuangpeiti.SLDASM",0,2)

圖6 自動裝配模型
通過開發馬鈴薯挖掘鏟的參數化設計系統,使用戶在系統中輸入相應的尺寸參數便可實現對挖掘鏟的參數化建模并進行自動裝配;輸入相應的材料參數等便可以對挖掘鏟進行自動有限元分析并顯示分析結果.如用戶發現參數設計不合理,則可修改相應參數,系統會快速重新建模及分析.通過此系統,可以減少建模及有限元分析所消耗的時間,提高了挖掘鏟的設計效率,使設計者可以更加專注于田間試驗及挖掘鏟的改進.
〔1〕史明明,魏宏安,劉星,等.國內外馬鈴薯收獲機械發展現狀[J].農機化研究,2013(10):213-217.
〔2〕王公仆,蔣金琳,田艷清,等.馬鈴薯機械收獲技術現狀與發展趨勢 [J].中國農機化學報,2014(1):11-15.
〔3〕張建.4M-2型馬鈴薯聯合收獲機優化設計與仿真[D].蘭州:甘肅農業大學,2008.
〔4〕李雷霞,賈晶霞,李建東,等.土壤參數與馬鈴薯收獲機牽引阻力的研究[J].農機化研究,2013(10):125-128.
〔5〕劉淼淼,惠忠文,郝萬東.基于 VisualC++6.0 的SolidWorks二次開發技術[J].電腦開發與應用,2010(4):55-57.
〔6〕龔曙光,謝桂蘭,黃云清.ANSYS參數化編程與命令手冊[M].北京:機械工業出版社,2009.
〔7〕黃啟斌,楊曉翔,鄧道林.基于 VB的 ANSYS二次開發及其在關節軸承結構分析中的應用[J].信息與技術,2015,44(1):149-151.
〔8〕易炳剛,汪雪.基于 VB的 SolidWorks自動裝配技術研究[J].機械工程與自動化,2013(1):94-96.