
發(fā)布
注冊
/
登錄調(diào)用ANSYS內(nèi)核的代碼的案例
星辰插件|POLARIS_PythonTest【內(nèi)核代碼調(diào)試】免費(fèi)
【功能簡介】
POLARIS_PythonTest是一款A(yù)baqus二次開發(fā)
Kernel內(nèi)核腳本的快速調(diào)節(jié)工具,旨在提高二次開發(fā)人員的工作效率,實(shí)現(xiàn)內(nèi)核腳本的便捷調(diào)用和測試。
【主要功能】
以往在進(jìn)行ABAQUS二次開發(fā)的Python代碼測試時,有
兩種常用方法:
1)通常使用菜單欄
File->Run Script…然后選擇py文件進(jìn)行代碼測試;這種方法
弊端在于,每次運(yùn)行代碼都需要重復(fù)進(jìn)行多次鼠標(biāo)操作,代碼調(diào)試過程可能需要經(jīng)歷千百次,這樣的操作會
讓“猿”變的異常煩躁,我就是那種容易煩躁的“猿”…
2)在軟件底部的命令行輸入窗口中測試自己的代碼。這種方法的
好處是敲打代碼過程中,可按Tab鍵進(jìn)行代碼補(bǔ)全;缺點(diǎn)則是每次運(yùn)行都需要粘貼原來的代碼進(jìn)入運(yùn)行窗口,且
運(yùn)行的效率是比第一種方法慢很多。
因此在成為“猿”后不久,也遇到上述問題,就試圖開發(fā)出
加速代碼調(diào)試的工具,以提高自身的產(chǎn)碼率,最終開發(fā)出POLARIS_PythonTest插件,現(xiàn)將其分享出來,希望對大家有幫助,具體功能如下:
1)工具欄生成測試按鈕,實(shí)現(xiàn)
一鍵式代碼測試;
2)統(tǒng)計代碼的
調(diào)用次數(shù)和
運(yùn)行時長。
展開 ansys之——將ANSYS作為子程序調(diào)用
將ANSYS作為子程序調(diào)用
對于優(yōu)化或參數(shù)化設(shè)計,可以在VC或FORTRAN中將ANSYS作為子程序調(diào)用。具體調(diào)用方法如下:
1.在VC中調(diào)用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調(diào)用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產(chǎn)品特征代碼。
需要注意的是,在VC中調(diào)用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經(jīng)執(zhí)行完畢。
在FORTRAN中不需要判斷,F(xiàn)ORTRAN會等ANSYS執(zhí)行完畢才繼續(xù)執(zhí)行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因?yàn)楫?dāng)ANSYS在運(yùn)行時,file.err是不可寫的,只有當(dāng)它運(yùn)行完畢,此文件才可寫。
數(shù)據(jù)文件(假設(shè)輸出的數(shù)據(jù)文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標(biāo)函數(shù)
out1(2)=1-eymax !
展開 VB調(diào)用ANSYS軟件
*主要思想:
VB為ANSYS應(yīng)用的自動化提供了可視化操作平臺,可用于參數(shù)化編程等應(yīng)用。
其基本原理是,VB通過其內(nèi)部函數(shù)shell()函數(shù)實(shí)現(xiàn)對Windows應(yīng)用程序的調(diào)用。利用VB向打開的ANSYS程序?qū)懭階PDL文件,實(shí)現(xiàn)對ANSYS的控制。
對ANSYS調(diào)用的具體代碼及注釋:
Option Explicit
‘變量強(qiáng)制定義控制語句
Private Sub Command1_Click()
‘進(jìn)入Command1_Click()事件過程
Dim aa
‘定義一變量,用來存放shell()函數(shù)的返回值,shell帶括號時必須有‘變量存放其返回值,不帶參數(shù)是不需要
aa=
Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe -b -p ane3fl -i shi.txt -o sh.log", 1)
‘shell函數(shù)調(diào)用ANSYS的語句,最關(guān)鍵語句,詳解見下文
Timer1.Enabled = True
‘使用Timer控件,實(shí)現(xiàn)對調(diào)用結(jié)果的檢測
End Sub
Private Sub Timer1_Timer()
If Dir(App.Path & "\file.err") <> "" Then
‘App.Path為當(dāng)前目錄路徑,語句功能:如果有file.err文件產(chǎn)生,
‘則說明VB的shell函數(shù)對ANSYS的調(diào)用成功。
MsgBox ("ANSYS運(yùn)行完畢!")
展開 MatlabGUI界面調(diào)用Ansys計算并輸出計算結(jié)果
.*'},'File Selector'); strh = [Pnameh,Fnameh];
pathname = Pnameh;
set(handles.text1,'String',strh);
[temp1,temp2] = xlsread(strh);
set(handles.uitable1,'Data',temp1);
% Update handles structure
guidata(hObject, handles);
為了讀取圖示方框中的數(shù)據(jù),并用到ANSYS的APDL文件中,需要字符串的讀取和合并,首先需要使用str2num函數(shù)把字符串轉(zhuǎn)換成數(shù)值,如果沒有輸入值時,使用缺省值。
將兩個txt合并成test3.mac作為APDL語言開始的參數(shù)定義,生成test3.mac之后再使用system函數(shù)調(diào)用ANSYS的求解器,并讀取test3.mac進(jìn)行計算
在計算之前,是不能生成圖片的,這時需要設(shè)置只有點(diǎn)擊“開始重構(gòu)”按鈕之后,其他按鈕才可用。
點(diǎn)擊按鈕開始計算之后,會分別輸出兩個名為residualstress.jpg和deformation.jpg的圖片,對應(yīng)的語句為
/image,save,'E:\GUIRStest\residualstress',jpg
設(shè)置當(dāng)點(diǎn)擊“生成殘余應(yīng)力云圖”和“生成角變形云圖”時,會讀取圖片的路徑并使用imshow生成圖片。
至此,一個簡易的MatlabGUI界面調(diào)用ANSYS計算并輸出圖片就完成了。
展開 
Ansys Workbench中調(diào)用Mechanical python腳本的方法及注意事項(xiàng) ¥19
"D:\Program Files\ANSYS Inc\v231\Framework\bin\Win64\RunWB2.exe" -R exportData.py
4 避坑指南(重點(diǎn)!!!)
? 即便在windows系統(tǒng)上,路徑也需要使用“/”;
? 在Ansys Mechanical中的代碼,如果存在中文(比如使用中文版Ansys界面),則必須在mechaCmd中第一行加上“# encoding: utf-8”,否則會運(yùn)行會失敗。
? 如果將Ansys Mechanical的代碼實(shí)現(xiàn)定義為函數(shù),并在Workbench代碼中進(jìn)行調(diào)用時,則mechaCmd中的字符串代碼需要以頂格為基準(zhǔn)格式,進(jìn)行代碼編寫,即認(rèn)為字符串中的Mechanical代碼與Workbench代碼“獨(dú)立”存在。
展開 Matlab調(diào)用ANSYS進(jìn)行參數(shù)優(yōu)化
使用Maltab中的system函數(shù),實(shí)現(xiàn)Matlab與Ansys的交互,即可實(shí)現(xiàn)相同模型計算數(shù)千遍并輸出數(shù)據(jù)。
MATLAB調(diào)用ANSYS進(jìn)行有限元分析步驟如下:
MATLAB生成數(shù)據(jù),并以科學(xué)計數(shù)法的形式寫出到一個txt文件input.txt中;
編寫ansys的APDL程序,在MATLAB環(huán)境下使用函數(shù)"system"調(diào)用APDL程序,ANSYS以batch方式運(yùn)行進(jìn)行分析求解,并輸出想要分析的結(jié)果,寫出到一個txt文件output.txt
MATLAB調(diào)用output.txt,進(jìn)行數(shù)據(jù)分析。
展開 將ANSYS作為子程序調(diào)用
對于優(yōu)化或參數(shù)化設(shè)計,可以在VC或FORTRAN中將ANSYS作為子程序調(diào)用。具體調(diào)用方法如下:
1.在VC中調(diào)用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中調(diào)用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產(chǎn)品特征代碼。
需要注意的是,在VC中調(diào)用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經(jīng)執(zhí)行完畢。
在FORTRAN中不需要判斷,F(xiàn)ORTRAN會等ANSYS執(zhí)行完畢才繼續(xù)執(zhí)行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!
判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因?yàn)楫?dāng)ANSYS在運(yùn)行時,file.err是不可寫的,只有當(dāng)它運(yùn)行完畢,此文件才可寫。
數(shù)據(jù)文件(假設(shè)輸出的數(shù)據(jù)文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標(biāo)函數(shù)
out1(2)=1-eymax !
展開 用VC調(diào)用ANSYS8.0以上的版本
ANSYS80的調(diào)用和ansys57類似:
//VC調(diào)用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("執(zhí)安裝文件路徑名+文件名 -b -p ansysul -i test.txt -o test.out");
printf("Solution finished...");
}
產(chǎn)品特征代碼在ANSYS幫助電子文檔(help>ansys documentation)里可以找到,路徑如下:
ansys8.0 documentation>ansys,Inc. Licensing Guide>License files>Product Variable Table
以該表的第一行為例,如果你的ANSYS是multiphysics版本,那么對應(yīng)的產(chǎn)品特征代碼為ane3fl,則:
result=system("安裝文件路徑名+文件名 -b -p ane3fll -i test.txt -o test.out");
這里一定要注意VC執(zhí)行文件路徑寫法:
第一種:
"C:\\Program Files\\Ansys Inc\\v80\\ANSYS\\BIN\\INTEL\\ANSYS80.exe"
"C:\\ANSYS80.exe"
但是這樣還不可以
我把原文件考到C:\目錄下,然后C:\\ANSYS80.exe。
展開 分享 fortran調(diào)用ansys做桁架結(jié)構(gòu)優(yōu)化例子
調(diào)用ANSYS做結(jié)構(gòu)分析
result=SYSTEMQQ('C:\Ansys81\v81\ANSYS\bin\intel\ANSYS81 -b -p &
& ane3fl -i E:\ANSYSOBJECT\truss.txt -o E:\ANSYSOBJECT\trussanswer.txt')
fileid=10
open(fileid,file=filename1) !從ansys寫出的文件中讀入數(shù)據(jù)(應(yīng)力和求得的重量)
read(fileid,*) sig1,sig2,W
close(fileid)
ww(k)=w
u1(i)=sig1/xu
u2(i)=sig2/xu
if ( u1(i)>=u2(i) ) then !判斷最大應(yīng)力
umax=u1(i)
else
umax=u2(i)
end if
!射線步
x1(i+1)=umax*x1(i)
x2(i+1)=umax*x2(i)
u1(i+1)=u1(i)/umax !求出新的應(yīng)力比
u2(i+1)=u2(i)/umax
!調(diào)整步
x1(i+2)=u1(i+1)*x1(i+1)
x2(i+2)=u2(i+1)*x2(i+1)
xx1=x1(i+2)/(500.0*1.414)
xx2=x2(i+2)/(500.0*1.414)
fileid=20
open(fileid,file=filename2) !
展開 ANSYS Workbench的宏文件及宏文件代碼
ANSYS Workbench的宏文件及宏文件代碼
在Abaqus軟件和ANSYS經(jīng)典里面,都可以通過特定的語言編寫命令,以代替GUI操作,并且這些語言能夠?qū)崿F(xiàn)很多GUI界面不能實(shí)現(xiàn)或者很難實(shí)現(xiàn)的工作。Abaqus中所有的操作都可以用相應(yīng)的Python語句代替,在ANSYS經(jīng)典中所有的操作都可以用相應(yīng)的APDL語句代替。
那么Workbench中有沒有這樣的方式呢?
答案是沒有,Workbench中不可能采用某一種語言實(shí)現(xiàn)整個分析過程,但是Workbench是絕對支持編程的,而且編程語言眾多。JScript只用于DM草圖建模。python控制外部各個component間數(shù)據(jù)的流轉(zhuǎn)。APDL在組件component中進(jìn)行內(nèi)部控制,還有針對其他的模塊的腳本語言。
正是因?yàn)閃orkbench的這個特點(diǎn),讓W(xué)orkbench的二次開發(fā)變得沒那么容易,整個系統(tǒng)太大。
宏文件這個概念很清楚,在Word、Excel和CAD等常用軟件中,均有這個概念,上次所說的腳本文件其實(shí)按照我的理解,可以當(dāng)做宏文件的一種,腳本文件是文本文件,而宏文件則可以是其他形式的。宏文件是軟件操作的記錄,在利用軟件進(jìn)行一些處理時,會在宏文件里面保存這些操作。
因此,宏文件對于大量重復(fù)性操作有很大的幫助,在Word等軟件里面通過錄制一段某特殊功能的宏,當(dāng)下次需要執(zhí)行這些操作時,可以直接使用錄制好的這個宏。使用過VB的同學(xué)應(yīng)該知道Word和CAD錄制的宏均有相應(yīng)的VBA代碼,而VBA代碼直接可以在VB編程環(huán)境里面使用,這給VB開發(fā)帶來不少好處。
今天想說的是Workbench的宏文件,前面說這么些,可以讓宏文件這個概念深一點(diǎn)。在利用Workbench做一些重復(fù)性的計算時,也可以采用宏文件的形式,在Workbench里面也叫journal文件。
展開 帶孔等厚平板ansys 分析源代碼和例子
機(jī)械分析源代碼

用Visual C調(diào)用ansys后臺運(yùn)行求解并實(shí)時顯示計算進(jìn)度和結(jié)果(附源程序)
思路:
(1)首先在VC里根據(jù)文本框等控件生成參數(shù)文件,和ANSYS主計算程序合并生成ANSYS_RUN.mac,在ANSYS_RUN.mac最后加上用來生成flag.txt文件(內(nèi)容為0)的APDL代碼. 隨后在VC里用WinEXEC運(yùn)行ANSYS batch mode 去調(diào)用ANSYS_RUN.mac,并且把屏幕輸出到output.txt。同時,建立flag.txt文件(內(nèi)容為1).
(2)在VC里開一個線程, 循環(huán)讀flag.txt,看其是否為1(運(yùn)行)或0(結(jié)束)。如果是1,則讀output.txt內(nèi)容,顯示在主程序狀態(tài)文本框里。(當(dāng)然也可以讀err文件來判斷)。
(3)ANSYS_RUN.mac 里有生成plots并保存為jpg文件的APDL代碼。當(dāng)ANSYS運(yùn)行結(jié)束后,在主程序里可以browse結(jié)果圖像文件。
ANSYS主計算程序: VM28.mac. 這是ANSYS的一個例子程序,但是做了一些改動,計算在Time_Start 到Time_End之間,步長為Time_interval的溫度分布。
VM28:Transient Heat Transfer in an Infinite Slab。
在VC程序里,
ANSYS EXE File是ANSYS的執(zhí)行文件的路徑名。
MAC Batch File 是ANSYS主計算程序的路徑名。
Working Folder是工作路徑,用來存放結(jié)果文件和中間過程文件。
Note: how to export image in batch mode:
因?yàn)樵赽atch mode, 沒有g(shù)raphic window,所以一般的圖形輸出命令無效。但是可以使用/show,jpeg命令。另外,可以用以下命令
!
展開 《ANSYS10.0/LS-DYNA基礎(chǔ)理論與工程實(shí)踐》李裕春-源代碼下載
希望對大家有用。
巖土工程ANSYS經(jīng)典算例72例(含命令代碼) ¥9.9
混凝土模板
64.混凝土開裂實(shí)例
65.螺栓網(wǎng)格劃分
66.自由液面的土石壩平面滲流分析
67.導(dǎo)出剛度矩陣
68.某混凝土拱壩工程施工期及運(yùn)行期溫度場仿真分析
69.移動溫度荷載計算
70.SHSD用于殼-實(shí)體裝配實(shí)例
71.ansys顯示-隱式-回彈分析實(shí)例
72.工況組合的經(jīng)典例子
《ANSYS工程分析進(jìn)階實(shí)例》-王呼佳-源代碼-4084
《ANSYS工程分析進(jìn)階實(shí)例》-王呼佳-源代碼-4084
第1篇.rar
第2篇.rar
第3篇.rar