吳新麗,郭春景,張 揚
WU Xin-li1,GUO Chun-jing2,ZHANG Yang3,4
(1.南陽理工學(xué)院 教育學(xué)院,南陽 473004;2.焦作大學(xué) 基礎(chǔ)科學(xué)系,焦作 454000;3.上海交通大學(xué) 船舶海洋與建筑工程學(xué)院,上海 200240;4.南陽理工學(xué)院 土木工程學(xué)院,南陽 473004)
ANSYS軟件是以有限元分析為基礎(chǔ)的大型通用CAE程序,具有強大的前、后處理和計算分析能力,廣泛應(yīng)用于機械制造、土木工程、電子、生物、醫(yī)學(xué)等眾多領(lǐng)域,能夠進行結(jié)構(gòu)分析、熱分析、流體分析、電磁場分析和耦合場分析等,并提供了與Pro/ENGINEER、SolidWorks、UG、CATIA等多數(shù)CAD軟件的接口。在ANSYS中直接建立復(fù)雜的幾何模型,具有難度大、建模效率低和不易修改等缺點。對于復(fù)雜模型,通常采用先在Pro/ENGINEER等三維造型軟件中建立模型,再通過ANSYS提供的CAD軟件接口導(dǎo)入模型,這樣雖然可以提高建模的效率,但是在導(dǎo)入的過程中往往會遇到一系列的問題,如數(shù)據(jù)的兼容性、對細微結(jié)構(gòu)的忽略等問題[1,2]。
用戶圖形界面設(shè)計語言UIDL(User Interface Design Language)是針對用戶GUI定制的開發(fā)工具,是編寫或改造ANSYS圖形界面的專用設(shè)計語言,能夠完成以下三種圖形界面的設(shè)計:主菜單系統(tǒng)及菜單項、對話框和聯(lián)機幫助系統(tǒng)[3]。ANSYS參數(shù)化設(shè)計語言APDL(ANSYS Parameter Design Language)是一種用來完成有限元常規(guī)分析操作或通過參數(shù)化變量方式建立分析模型的腳本語言[4]。APDL用智能化分析的手段,為用戶提供自動完成有限元分析過程的功能。APDL擴展了傳統(tǒng)有限元分析范圍之外的能力,可以利用APDL進行二次開發(fā),但是由于APDL文件方式不直觀,限制了其應(yīng)用。UIDL主要是控制GUI界面的二次開發(fā),涉及分析部分很少,但在UIDL中嵌入APDL命令可以構(gòu)建比較復(fù)雜的GUI二次開發(fā)。
本文以創(chuàng)建三維彈簧實體為例,利用UIDL和APDL,對ANSYS進行二次開發(fā),實現(xiàn)三維彈簧實體的便捷、高效的參數(shù)化建模。
UIDL是ANSYS專門為用戶提供的進行程序界面設(shè)計的語言,允許用戶靈活使用和組織設(shè)計ANSYS圖形用戶界面。UIDL控制文件由一個控制文件頭和一系列的結(jié)構(gòu)塊組成??刂莆募^是一系列特定的UIDL命令,用來向UIDL處理器傳遞控制文件的信息。結(jié)構(gòu)塊是UIDL控制文件的核心,它涵蓋了菜單信息、命令信息以及幫助文件信息。按照其不同的功能類型,結(jié)構(gòu)塊可分為菜單結(jié)構(gòu)塊、命令結(jié)構(gòu)塊和幫助結(jié)構(gòu)塊。
為了實現(xiàn)對三維彈簧實體的快速、高效的參數(shù)化建模,選取基圓半徑、螺距、彈簧半徑和螺旋個數(shù)4個變量為彈簧幾何參數(shù),首先使用UIDL語言進行用戶程序界面設(shè)計,在ANSYS主菜單Main Menu >Preprocessor >Modeling >Create下添加創(chuàng)建三維彈簧實體命令項“Spring”,并創(chuàng)建其對應(yīng)的彈簧幾何參數(shù)設(shè)置對話框。
自定制主菜單,添加命令項“Spring”。ANSYS主菜單的信息是由其安裝目錄下的ANSYS Incv120guien-usUIDL文件夾中的UIMENU.GRN文件提供的,所以首先在UIMENU.GRN文件的Men_Create52結(jié)構(gòu)塊中的適當位置添加自定義的命令結(jié)構(gòu)塊鏈接Fnc_MyModel,具體代碼如下,編譯運行后的結(jié)果如圖1所示。
圖1 自定制主菜單
自定制彈簧幾何參數(shù)設(shè)置對話框。在UIDL文件夾的UIFUNC2.GRN文件中添加自定義的命令結(jié)構(gòu)塊Fnc_MyModel,具體代碼如下,編譯運行后的結(jié)果如圖2所示。在對話框中設(shè)置4個彈簧幾何參數(shù)后,點擊“OK”按鈕,將運行用APDL編寫的create_spring宏命令流,根據(jù)設(shè)置的彈簧幾何參數(shù),完成三維彈簧實體的創(chuàng)建。
圖2 自定制對話框
建立參數(shù)化的實體模型是參數(shù)化有限元分析的基礎(chǔ)。APDL是ANSYS提供的參數(shù)化設(shè)計語言,是一種高效的參數(shù)化建模手段。APDL提供了標量參數(shù)、數(shù)組參數(shù)、表達式和函數(shù)、分支和循環(huán)、重復(fù)功能和縮寫、宏及用戶程序等功能,這些功能可以單獨使用或者組合使用[5]。
用戶程序界面設(shè)計完成后,使用APDL語言編制三維彈簧實體參數(shù)化建模程序create_spring.MAC,并保存在ANSYS安裝目錄下的ANSYS Incv120guiapdl文件夾中。宏文件create_spring.MAC的命令流內(nèi)容如下:
使用APDL編制參數(shù)化建模程序,同時使用UIDL對用戶程序界面進行設(shè)計,完成對ANSYS的二次開發(fā),實現(xiàn)對三維彈簧實體的便捷、高效的參數(shù)化建模。下面進行具體的應(yīng)用舉例,創(chuàng)建兩種不同的三維彈簧實體。
單擊圖1 所示的A N S Y S 主菜單中的命令項“Spring”,即Main Menu >Preprocessor >Modeling >Create >Spring,將彈出圖2所示的彈簧幾何參數(shù)設(shè)置對話框,在該對話框中設(shè)置基圓半徑是160 mm、螺距是50 mm、彈簧半徑是10 mm、螺旋個數(shù)是7,點擊“OK”按鈕,將自動運行三維彈簧實體參數(shù)化建模程序create_spring.MAC,根據(jù)設(shè)置的彈簧幾何參數(shù)值,創(chuàng)建三維彈簧實體,結(jié)果如圖3所示。
重新設(shè)置彈簧幾何參數(shù):基圓半徑200 mm、螺距80 mm、彈簧半徑20 mm、螺旋個數(shù)3,點擊“OK”按鈕,將創(chuàng)建圖4所示的三維彈簧實體。
圖3 應(yīng)用實例1
圖4 應(yīng)用實例2
本文以創(chuàng)建三維彈簧實體為例,利用ANSYS提供的用戶圖形界面設(shè)計語言UIDL和參數(shù)化設(shè)計語言APDL,對ANSYS進行二次開發(fā),開發(fā)出滿足用戶自己功能需求的菜單和對話框,將復(fù)雜的建模操作過程封裝成用戶自己的程序,從而將復(fù)雜問題簡單化,實現(xiàn)了復(fù)雜幾何模型的便捷、高效的參數(shù)化建模,減少了用戶大量的重復(fù)性操作,大大提高了工作的效率。
[1]白葳,喻海良.通用有限元分析ANSYS 8.0基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2005.
[2]鄧凡平.ANSYS 10.0有限元分析自學(xué)手冊[M].北京:人民郵電出版社,2009.
[3]程銘,吳志軍,馮平法.基于UIDL的ANSYS用戶菜單定制技術(shù)[J].機械制造,2006,44(10):44-46.
[4]龔曙光,謝桂蘭,黃云清.ANSYS參數(shù)化編程與命令手冊[M].北京:機械工業(yè)出版社,2009.
[5]龔曙光,黃云清.有限元分析與ANSYS APDL編程及高級應(yīng)用[M].北京:機械工業(yè)出版社,2009.