亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ansys-vc++6.0.txt

?? 實現VC和ANSYS的調用
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
ANSYS基于VC++6.0的二次開發與相互作用分析在ANSYS中的實現
 概述 
ANSYS是一套功能十分強大的有限元分析軟件,能實現多場及多場耦合分析;是實現前后處理、求解及多場分析統一數據庫的一體化大型FEA軟件;支持異種、異構平臺的網絡浮動,在異種、異構平臺上用戶界面統一、數據文件全部兼容,強大的并行計算功能支持分布式并行及共享內存式并行。該軟件具有如下特點: 
(1) 完備的前處理功能 
ANSYS不僅提供了強大的實體建模及網格劃分工具,可以方便地構造數學模型,而且還專門設有用戶所熟悉的一些大型通用有限元軟件的數據接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允許從這些程序中讀取有限元模型數據,甚至材料特性和邊界條件,完成ANSYS中的初步建模工作。此外,ANSYS還具有近200種單元類型,這些豐富的單元特性能使用戶方便而準確地構建出反映實際結構的仿真計算模型。 
(2) 強大的求解器 
ANSYS提供了對各種物理場量的分析,是目前唯一能融結構、熱、電磁、流體、聲學等為一體的有限元軟件。除了常規的線性、非線性結構靜力、動力分析外,還可以解決高度非線性結構的動力分析、結構非線性及非線性屈曲分析。提供的多種求解器分別適用于不同的問題及不同的硬件配置。 
(3) 方便的后處理器 
ANSYS的后處理分為通用后處理模塊(POST1)和時間歷程后處理模塊(POST26)兩部分。后處理結果可能包括位移、溫度、應力、應變、速度以及熱流等,輸出形式可以有圖形顯示和數據列表兩種。 
(4) 多種實用的二次開發工具 
ANSYS除了具有較為完善的分析功能外,同時還為用戶進行二次開發提供了多種實用工具。如宏(Marco)、參數設計語言(APDL)、用戶界面設計語言(UIDL)及用戶編程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一種非常類似于Fortran77的參數化設計解釋性語言,其核心內容為宏、參數、循環命令和條件語句,可以通過建立參數化模型來自動完成一些通用性強的任務;UIDL(User Interface Design Language)是ANSYS為用戶提供專門進行程序界面設計的語言,允許用戶改變ANSYS的圖形用戶界面(GUI)中的一些組項,提供了一種允許用戶靈活使用、按個人喜好來組織設計ANSYS圖形用戶界面的強有力工具;UPFs(User Programmable Features)提供了一套Fortran77函數和例程以擴展或修改程序的功能,該項技術充分顯示了ANSYS的開放體系,用戶不僅可以采用它將ANSYS程序剪裁成符合自己所需的任何組織形式(如可以定義一種新的材料,一個新的單元或者給出一種新的屈服準則),而且還可以編寫自己的優化算法,通過將整個ANSYS作為一個子程序調用的方式實現。 
鑒于上述特點,近幾年來,ANSYS軟件在國內外工程建設和科學研究中得到了廣泛的應用。但這些應用大多局限于直接運用ANSYS軟件進行實際工程分析,對利用ANSYS提供的二次開發工具進行有限元軟件設計卻很少涉及。本文首次利用ANSYS軟件的二次開發功能,以VC++6.0為工具,運用APDL語言,對ANSYS進行二次開發,編制框筒結構-樁筏基礎-土相互作用體系與地震反應分析程序。 
2 程序設計目標 
針對某一實際工程問題,ANSYS所提供的APDL語言可對ANSYS軟件進行封裝。APDL語言即ANSYS軟件提供的參數化設計語言,它的全稱是ANSYS Parametric Design Language。 使用APDL語言可以更加有效地進行分析計算,可以輕松地進行自動化工作(循環、分支、宏等結構),而且,它是一種高效的參數化建模手段。使用APDL語言進行封裝的系統可以只要求操作人員輸入前處理參數,然后自動運行ANSYS進行求解。但完全用APDL編寫的宏還存在弱點。比如用APDL語言較難控制程序的進程,雖然它提供了循環語句和條件判斷語句,但總的來說還是難以用來編寫結構清晰的程序。它雖然提供了參數的界面輸入,但功能還不是太強,交互性不夠流暢。針對這種情況,本文用VC++6.0開發框筒結構-樁筏基礎-土相互作用有限元分析程序(簡稱LWS程序)。 
本程序設計目標是利用VC++6.0對ANSYS進行封裝。用VC++6.0對ANSYS模擬框筒結構-樁筏基礎-土相互作用進行二次開發,用戶只需輸入諸如地震波、計算時間步長、阻尼比等物理性能參數等,系統就能自動調用ANSYS計算程序,自動進行網格劃分、地震動加載以及自動求解。該系統由于前臺開發友好、方便、易用的人機交互界面,對復雜的、難于理解和掌握的ANSYS命令流進行后臺封裝,因此,程序設計可讓即使從未認真學習過ANSYS軟件的工程設計人員也能很好地借助本系統進行結構抗震性能有限元分析,具有較強的處理實際問題能力。 
用戶輸入計算參數,即可調用后臺的ANSYS命令進行計算,ANSYS把計算結果返回給用戶,進行后處理。 
程序設計的主要原則和功能如下: 
(1)方便原則,即程序模塊應具有良好的用戶界面和易用性。程序前臺設計采用Windows提供的標準圖形用戶界面(GUI),用戶無須接受專門訓練即可使用。同時,程序應具有良好的容錯和糾錯能力,避免用戶操作不當造成損失。 
(2)程序系統能夠提供用戶以下功能: 
①允許用戶可以根據實際計算工況,輸入特定的計算參數,包括地震波選擇、計算時間步長、地震波調幅與否等。 
②用戶在輸入各種參數以后、進行計算之前可以對輸入的數據進行修改、添加和刪除操作,以保證輸入正確的參數。 
③用戶通過界面調用后臺的ANSYS命令流進行計算,能夠得到最后的計算結果文件,供用戶進行后處理和結果分析。 
④用戶可以添加新的功能或新的二次開發以實現程序升級。 
(3)程序應具有良好的可移植性,不依賴于特定的硬件設備,只要能安裝ANSYS和VC++6.0的硬件環境都能使用本系統,保證程序使用的廣泛性。 
(4)程序代碼應具有開放性和可重用性。這樣,在進一步的設計中,能保證設計者可以方便地對代碼進行修改擴充;同時,提供一定的設計接口,新的設計者可以根據接口,無須對程序進行大幅度的修改,就可以進行新的開發,以適應新的特殊要求。 
程序的開發平臺是Microsoft VC++6.0、ANSYS6.1,基于WindowsXP編程。程序實現是利用微軟提供的Windows編程接口MFC和ANSYS公司的ANSYS/Multiphysics產品,采用面向對象的程序設計方法。 
3程序的主要模塊和設計 
如圖3-2所示,程序的主要模塊有:用戶界面模塊、ANSYS計算模塊、VC調用接口模塊和VC后處理模塊,分別論述如下: 

3.1 ANSYS模塊 
ANSYS為了滿足用戶的特殊需求,建立了開放的體系結構,提供了二次開發接口APDL、UIDL和UPFs(User Programming Features,用戶編程特性)等。其中,ANSYS接口允許用戶將自己的VC代碼連到ANSYS中去,或將ANSYS作為子程序調用,從而使ANSYS具備特殊的功能。 
本文的ANSYS模塊是使用APDL語言進行二次開發的。在上面的二次開發中用到了參數化設計方法。參數是APDL的變量(它們更象FORTRAN變量,而不像FORTRAN參數),不必明確聲明參數類型,所有數值變量都以雙精度數存儲。被使用但未聲明的參數都被賦予接近0的“極小值”。在二次開發中使用參數化設計方法,增強了程序的易讀性和可移植性。用戶無須了解程序的具體結構只需改變參數值就可自動調用ANSYS模塊。 
3.2 VC調用模塊 
VC調用模塊在該系統中起著接受用戶界面的輸入、創建進程調用ANSYS模塊進行計算的重要作用。有兩項工作是在實現在VC程序中調用ANSYS必須做的,一是要使接口程序能夠修改ANSYSB的命令流文件路徑及文件名稱,這可通過注冊表編程實現;二是要能在接口程序中運行ANSYSB應用程序,這涉及到創建進程的編程,下面分別介紹它們的具體實現。 
1. 注冊表編程 
在Windows(98/NT/2000/XP)系統上運行ANSYS安裝程序后,便在Windows系統的注冊表里記錄了一些信息,如初始工作路徑,文件名等。利用VC平臺調用ANSYS計算模塊的程序必須指定ANSYS軟件的運行目錄以及用APDL語言開發的ANSYS模塊程序路徑,這樣,ANSYS軟件的批處理程序才能從給定的路徑下讀取命令流文件。在接口程序中修改這些注冊表信息,可以使用Windows提供的注冊表編輯API(Application Programming Interface)函數[30,31],具體實現如下: 
HKEY hSubKey; // 定義子鍵 
LONG lRet; 
char RegPath[200]="SoftWare\\ANSYS, Inc.\\ANSYS\\ANSYS 6.1\\0"; 
lRet=RegOpenKeyEx(HKEY_CURRENT_USER,RegPath,0,KEY_ALL_ACCESS,&hSubKey); // 打開子鍵 
if(lRet!=ERROR_SUCCESS)return; 
lRet=RegSetValueEx(hSubKey,"Extension",0,REG_SZ,(LPBYTE)"txt",3); //設置ANSYS批處理程序讀取的文件擴展名 
if(lRet!=ERROR_SUCCESS)return; 
lRet=RegSetValueEx(hSubKey,"Jobname",0,REG_SZ,(LPBYTE)"ZHY"); 
//指定ANSYS模塊文件名 
if(lRet!=ERROR_SUCCESS)return; 
lRet=RegSetValueEx(hSubKey,"WorkingDirectory",0,REG_SZ,(LPBYTE)"E:\\LWS\\Workspace ",16); 
if(lRet!=ERROR_SUCCESS)return; // 鍵值出錯返回 
RegCloseKey(hSubKey); // 關閉子鍵 
通過以上的設置后運行ANSYS批處理程序,界面變成如圖3-3所示。 
從圖中可看出ANSYS模塊工作路徑E:\\LWS\\Workspace、初始文件名ZHY、ANSYS程序文件名ZHY.txt文件、計算結果輸出文件名ZHY.out都已經自動出現在ANSYS批處理程序的輸入框,往下ANSYS就可以自動從ZHY.txt讀取命令流進行計算并將結果輸出到ZHY.out文件中。若想改ANSYS模塊路徑或文件名只需對上面程序稍加修改即可。 
2. 多進程編程 
本文在VC平臺上對ANSYS進行封裝,希望前臺處理系統和用戶的交互,而后臺進行ANSYS的計算。這就要求系統具有并發性,為此,引入多進程編程機制。進程是一個正在運行程序的實例,它具有動態性、并發性、獨立性、異步性和結構性等特點。系統中的進程動態產生與消亡,多個進程并發運行,分別執行各自對應的程序段,為各自的目標而工作。一個程序可以包含多個進程。 

圖3-3 ANSYS批處理運行界面 
在VC++6.0中可以利用CreateProcess函數來創建一個進程去執行其他程序,而且可以設置該進程的優先級。CreateProcess函數的原型是: 
BOOL CreateProcess( 
LPCTSTR lpAppliciatonName 
LPTSTR lpCommandLine 
LPSECURITY_ATTRIBUTES lpProcessAttributes 
LPSECURITY_ATTRIBUTES lpThreadAttributes 
BOOL bInheritHandles 
DWORD dwCreationFlags 
LPVOID lpEnvironment 
LPCTSTR lpCurrentDirectory 
LPSTARTUPINFO lpStartupInfo 
LPPROCESS_INFORMATION lpProcessInformation 
); 
當系統調用CreateProcess時,會創建一個進程內核對象,其初始使用計數是1。該進程內核對象不是進程本身,而是操作系統管理進程時使用的一個較小的數據結構。然后,系統為新進程創建一個虛擬地址空間,并將可執行文件或任何必要的DLL文件的代碼和數據加載到該進程的地址空間中。接著,系統為新進程的主線程創建一個線程內核對象(其使用計數為1)。與進程內核對象一樣,線程內核對象也是操作系統用來管理線程的小型數據結構。通過執行C/C++運行期啟動代碼,該主線程便開始運行,它最終調用WinMain、wWinMain、main或wmain函數。如果系統成功創建了新進程和主線程,CreateProcess便返回True。 
PszApplicationName和pszCommandLine參數分別用于設定新進程將要使用的可執行文件的名字和傳遞給新進程的命令行字符串。PszApplicationName的參數可以是NULL,表示系統將使用全路徑來查看可執行文件,并且不再搜索這些目錄;如果參數不是NULL可以將地址傳遞給pszApplicationName參數中包含可運行的文件的名字字符串。當系統找到了可執行文件后,就創建一個新進程,并將可執行文件的代碼和數據映射到新進程的地址空間中。 
PsaProcess和psaThread參數分別設定進程對象和線程對象需要的安全性。可以為這些參數傳遞NULL,這種情況下,系統為這些對象賦予默認安全性描述符;也可以指定兩個SECURITY_ATTRIBUTES結構,并對它們進行初始化,以便創建自己的安全性權限,并將它們賦予進程對象和線程對象。將SECRURITY_ATTRIBUTES 結構用于psaProcess和psaThread參數的另一個原因是,父進程將來生成的任何子進程都可以繼承這兩個對象句柄中的任何一個。本程序除了創鍵調用ANSYS計算模塊的進程外,無需再創建其它進程,因而,psaProcess和psaThread參數都為NULL。同理,binheritHandles參數為FALSE。 
fdwCreate參數用于標識標志,以便用于規定如何來創建新進程,fdwCreate參數也可以用來設定優先級類,不過對于大多數應用程序來說不應該這樣做,因為系統會為新進程賦予一個默認優先級。 
PszCurDir參數允許父進程設置子進程的當前驅動器和目錄。如果本參數為NULL,則新進程的工作目錄將與生成新進程的應用程序的目錄相同;若不為空,則必須指向包含需要的工作驅動器和工作目錄的以0結尾的字符串。課題中該參數選擇為NULL就可以了。 
PsiStartInfo參數用于指向一個STARTUPINFO結構。當Windows創建新進程時,它將使用該結構的有關成員。大多數應用程序將要求生成的應用程序僅僅使用默認值。至少應該將該結構中的所有成員初始化為零,然后將cb(cb為STARTUPINFO結構成員)設置為該結構的大小。STARTUPINFO結構的其他具體成員參見VC++6.0幫助系統MSDN。 
PpiProcInfo參數用于指向你必須指定的PROCESS_INFORMATION結構。CreateProcess在返回之前要對該結構的成員進行初始化。該結構的形式如下面所示: 
Typedef struct _PROCESS_INFORMATION{ 
HANDLE hProcess; 
HANDLE hThread; 
DWORD dwProcessId; 
DWORD dwThreadId; 
}PROCESS_INFORMATION; 
CreateProcess在返回之前打開進程對象和線程對象,并將每個對象的與進程相關的句柄放入PROCESS_INFORMATION結構的hProcess和hThread成員中。 
綜上所述,課題創建進程的關鍵程序如下: 
STARTUPINFO StartupInfo; 
     PROCESS_INFORMATION ProcessInfo; 
     memset(&StartupInfo,0,sizeof(STARTUPINFO)); //分配內存 
     StartupInfo.cb=sizeof(STARTUPINFO); // 初始化 
     StartupInfo.dwFlags=STARTF_USESHOWWINDOW; 
     StartupInfo.wShowWindow=SW_SHOWMAXIMIZED; 
        if(!::CreateProcess(NULL,d:\\ProgramFiles\\Ansys 
Inc\\ANSYS61\\bin\\intel\\AnsysB”,NULL,NULL,FALS E,0,NULL,NULL,&StartupInfo,&ProcessInfo)) 
{ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产成人一区二区三区 | thepron国产精品| 久久久精品日韩欧美| 狠狠色狠狠色合久久伊人| 久久夜色精品一区| 成人av网址在线观看| 亚洲美女区一区| 91精品国产综合久久小美女| 七七婷婷婷婷精品国产| 久久久一区二区| a美女胸又www黄视频久久| 伊人色综合久久天天| 欧美日韩国产在线观看| 麻豆精品在线视频| 久久精品一区八戒影视| 91成人国产精品| 美女精品自拍一二三四| 国产亚洲人成网站| 在线观看日韩毛片| 激情综合网天天干| 日韩伦理电影网| 日韩欧美一级二级| youjizz久久| 奇米色777欧美一区二区| 日本一区二区三区免费乱视频| 91麻豆精品在线观看| 蜜桃久久久久久久| 亚洲四区在线观看| 日韩三区在线观看| 91亚洲国产成人精品一区二区三| 天堂蜜桃一区二区三区| 中文字幕巨乱亚洲| 欧美精品国产精品| 99久久久久久99| 免费成人在线观看视频| 亚洲女厕所小便bbb| 精品精品国产高清a毛片牛牛| 色综合天天性综合| 狠狠色丁香婷婷综合| 亚洲国产精品综合小说图片区| 久久精品视频一区二区三区| 欧美日韩国产小视频在线观看| 风间由美性色一区二区三区| 日韩高清在线电影| 日韩一区在线看| 精品久久久久99| 欧美人动与zoxxxx乱| 波多野结衣91| 国产一区二区视频在线播放| 五月天丁香久久| 亚洲激情网站免费观看| 中文字幕免费不卡在线| 日韩欧美中文字幕一区| 欧美三级资源在线| 一本大道久久a久久综合婷婷 | 久久99久久精品| 亚洲午夜精品久久久久久久久| 国产精品五月天| 26uuu欧美| 欧美va亚洲va香蕉在线| 欧美精品一级二级| 欧美日韩国产另类不卡| 日本二三区不卡| 91网站在线播放| 99视频超级精品| 9i看片成人免费高清| 成人国产亚洲欧美成人综合网| 国产麻豆91精品| 激情图片小说一区| 蜜臀久久99精品久久久久宅男 | 国产精品久久久久久久久免费桃花| 日韩天堂在线观看| 91精品啪在线观看国产60岁| 在线成人高清不卡| 欧美夫妻性生活| 欧美一级高清片在线观看| 69堂亚洲精品首页| 欧美一区二区三区的| 欧美一级欧美一级在线播放| 日韩欧美亚洲另类制服综合在线| 欧美一区二区三区四区在线观看| 91精品婷婷国产综合久久竹菊| 欧美日韩不卡一区| 91麻豆精品国产综合久久久久久| 欧美一区二区三区啪啪| 欧美电视剧在线看免费| 欧美不卡在线视频| 国产亚洲成av人在线观看导航| 国产婷婷色一区二区三区四区| 久久久久国产免费免费 | 日韩精品一区二区三区在线播放| 日韩欧美一区二区视频| 久久品道一品道久久精品| 国产亚洲欧美激情| 日韩伦理av电影| 亚洲国产精品综合小说图片区| 日韩 欧美一区二区三区| 蜜桃av一区二区在线观看 | 婷婷开心激情综合| 免费成人av在线| 国产大陆精品国产| 99re6这里只有精品视频在线观看| 色吧成人激情小说| 日韩欧美综合在线| 中国色在线观看另类| 亚洲另类在线视频| 日本色综合中文字幕| 国产成人综合在线观看| 91网上在线视频| 91精品国产手机| 国产精品每日更新| 丝袜美腿高跟呻吟高潮一区| 国产综合色视频| 91视频xxxx| 欧美videossexotv100| 中文字幕亚洲视频| 奇米色一区二区| 99久久久无码国产精品| 日韩亚洲欧美一区| 亚洲视频狠狠干| 看片网站欧美日韩| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 一本色道综合亚洲| 日韩三级中文字幕| 亚洲特级片在线| 国产在线播放一区二区三区| 日本韩国精品一区二区在线观看| 精品三级在线看| 亚洲午夜免费电影| 成人性生交大合| 欧美一卡2卡三卡4卡5免费| 1区2区3区精品视频| 美女被吸乳得到大胸91| 日本电影欧美片| 久久精品视频免费观看| 天堂精品中文字幕在线| 99国产精品久久久久久久久久 | 精品国产免费一区二区三区四区| 亚洲日本乱码在线观看| 国产精品中文字幕一区二区三区| 欧美妇女性影城| 一区二区三区日韩欧美| 国产不卡高清在线观看视频| 日韩丝袜美女视频| 亚洲va天堂va国产va久| 91网站在线播放| 国产精品久久久久久福利一牛影视| 免费观看在线综合色| 欧美天天综合网| 亚洲激情一二三区| 99国产精品久久| 国产精品区一区二区三| 国产综合成人久久大片91| 337p亚洲精品色噜噜噜| 亚洲国产一区二区视频| 色婷婷综合五月| 亚洲免费三区一区二区| 成人国产精品免费网站| 亚洲国产精品激情在线观看| 国产一区二区影院| 久久免费看少妇高潮| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美一级片| 久久99精品久久久久久动态图| 欧美一区二区视频在线观看| 日韩中文字幕麻豆| 91精品综合久久久久久| 日韩二区三区在线观看| 91精品国产入口| 麻豆一区二区三| 久久女同精品一区二区| 国产99久久久久久免费看农村| 久久久.com| 成人免费毛片app| 亚洲男同性视频| 欧美日韩日日摸| 美女一区二区在线观看| 精品理论电影在线观看| 国产精品一区二区三区99 | 中文字幕亚洲精品在线观看| 懂色一区二区三区免费观看| 国产精品久久久久aaaa| 91美女在线观看| 午夜精品福利一区二区三区av| 欧美精品久久一区二区三区| 久久国产夜色精品鲁鲁99| 久久综合九色综合久久久精品综合| 国产激情视频一区二区在线观看| 国产欧美一区视频| 色狠狠色狠狠综合| 日韩电影在线免费观看| 久久免费国产精品| 99re视频精品| 日韩激情视频在线观看| 国产亚洲精品久| 一本大道久久精品懂色aⅴ | 久久成人免费网站| 国产精品色婷婷| 欧美午夜精品一区| 激情成人综合网|