
發(fā)布
注冊(cè)
/
登錄ansa二次開(kāi)發(fā)的案例
ANSA二次開(kāi)發(fā)的學(xué)習(xí)之路
學(xué)習(xí)ANSA二次開(kāi)發(fā)也有一段時(shí)間了,在做項(xiàng)目的過(guò)程中也逐漸積累了一些開(kāi)發(fā)經(jīng)驗(yàn)。ANSA不管是界面操作還是二次開(kāi)發(fā)的相關(guān)學(xué)習(xí)資料相較于Hypermesh來(lái)說(shuō)都少得可憐,網(wǎng)上僅有的例子也只能是幫助入門。想要真正掌握ANSA二次開(kāi)發(fā),能夠利用其在項(xiàng)目中真正提高效率、解決問(wèn)題還需要更加系統(tǒng)地學(xué)習(xí),為了后邊的同學(xué)們能夠少走我踩過(guò)的坑,這里我特別寫了一篇關(guān)于ANSA二次開(kāi)發(fā)的學(xué)習(xí)路線的文章,希望能夠幫助到已入坑和即將入坑的小伙伴。
ANSA使用Python語(yǔ)言進(jìn)行二次開(kāi)發(fā),針對(duì)ANSA編寫了相應(yīng)的庫(kù),大家開(kāi)發(fā)過(guò)程總在使用相應(yīng)的庫(kù)時(shí)import進(jìn)來(lái)即可。當(dāng)然進(jìn)行ANSA二次開(kāi)發(fā)并不需要過(guò)高的編程語(yǔ)言,相反更需要的時(shí)對(duì)于ANSA界面及操作的了解,這里的原因后面細(xì)說(shuō)。在學(xué)習(xí)Python二次開(kāi)發(fā)前了解Python的字符串、列表、數(shù)字、字典、循環(huán)(for/while)、函數(shù)、類(基礎(chǔ))相關(guān)知識(shí)點(diǎn)就行了,這是最基礎(chǔ)的,如果想讓你的程序運(yùn)行的更快,代碼更簡(jiǎn)潔,高級(jí)的語(yǔ)法是必不可少的。但是我認(rèn)為初學(xué)者先讓代碼能夠跑起來(lái),實(shí)現(xiàn)相應(yīng)的功能就好了,優(yōu)化留給以后。至于Python相關(guān)學(xué)習(xí)視頻,網(wǎng)上有很多,這里也就不做推薦了。
學(xué)習(xí)完P(guān)ython基礎(chǔ)語(yǔ)法后你就成功了一半,接下來(lái)你只需要了解ANSA自帶的Python庫(kù)中對(duì)應(yīng)界面操作的函數(shù)即可。工欲善其事必先利其器,下面先介紹一下ANSA自帶的二次開(kāi)發(fā)工具,除了不能自動(dòng)補(bǔ)充外其他的功能還是能夠滿足日常需求的。
以ANSA19為例,這里說(shuō)句題外話,如果大家開(kāi)發(fā)的程序需要運(yùn)行在低版本的ANSA,建議大家開(kāi)發(fā)時(shí)候使用低版本自帶的開(kāi)發(fā)工具,因?yàn)楦甙姹緯?huì)兼容低版本的程序運(yùn)行。
展開(kāi) ANSA二次開(kāi)發(fā)"小助手"—宏錄制
進(jìn)行二次開(kāi)發(fā)過(guò)程中,對(duì)于初學(xué)者最大的困難是難以找到與GUI操作對(duì)應(yīng)的命令
不同于ABAQUS會(huì)將所有的GUI操作會(huì)以python命令記錄在.rpy文件中,ANSA沒(méi)有相似的功能。
但是在ANSA中有一個(gè)宏命令錄制的功能可以部分解決上述問(wèn)題。
首先我們點(diǎn)擊圖一中紅色框的空白區(qū)域,
圖一
會(huì)出現(xiàn)如圖二所示的選擇條
圖二
這里我們將Record勾選,出現(xiàn)如圖三所示的工具條
圖三
我們?cè)谶M(jìn)行操作前點(diǎn)擊最左側(cè)紅色按鈕,開(kāi)始錄制命令。
但并不是所有的命令都支持錄制功能,在操作時(shí)若是右側(cè)的燈泡變黃則說(shuō)明該操作支持錄制,否則不支持。
在錄制完后,點(diǎn)擊中間按鈕,會(huì)自動(dòng)彈出命令,在此基礎(chǔ)上進(jìn)行編輯、查看對(duì)應(yīng)命令即可。
圖四
這里建議大家通過(guò)Tools-Settings-Save-All,將該設(shè)置保存,省去了每次打開(kāi)軟件都要按照上述步驟打開(kāi)該功能的麻煩
大家平時(shí)在進(jìn)行操作時(shí)就打開(kāi)該功能,時(shí)不時(shí)地進(jìn)行對(duì)應(yīng)命令的查看,相信能潛移默化地提高各位的ANSA二次開(kāi)發(fā)能力。
也大家歡迎關(guān)注我,我會(huì)不定期更新關(guān)于ANSA二次開(kāi)發(fā)的干貨
想系統(tǒng)學(xué)習(xí)ANSA二次開(kāi)發(fā)的同學(xué)也可以購(gòu)買我推出的《ANSA二次開(kāi)發(fā)從入門到精通》課程,系統(tǒng)地從幾何清理、網(wǎng)格劃分、連接的轉(zhuǎn)化及實(shí)例化、GUI界面設(shè)計(jì)等方面來(lái)學(xué)習(xí)。
展開(kāi) ANSA二次開(kāi)發(fā)—你應(yīng)該知道的GUI輕量化數(shù)據(jù)傳輸窗口
當(dāng)然ANSA二次開(kāi)發(fā)是一個(gè)比較系統(tǒng)的東西,文章中也只能簡(jiǎn)單介紹功能,一些開(kāi)發(fā)中的經(jīng)驗(yàn)還是需要經(jīng)過(guò)系統(tǒng)學(xué)習(xí)以及自己多練習(xí)總結(jié)的。
大家可以關(guān)注我,會(huì)不定期發(fā)布一些ANSA使用及二次開(kāi)發(fā)的干貨文章
ansa二次開(kāi)發(fā)-2026.4.10
這是一篇ansa二次開(kāi)發(fā)的API

ANSA二次開(kāi)發(fā)環(huán)境安裝
ANSA二次開(kāi)發(fā)所需開(kāi)發(fā)環(huán)境一般為PyCharm或者VScode,下面是VScode插入ANSA的教程:
1.
打開(kāi)“
Visual Studio Code Setup”
窗口
--- Tools > Script > Visual Studio Code
or
--- Tools > Settings > Visual Studio Code > Setup
2.
按照“
Visual Studio Code Setup”
窗口的向?qū)У降?em>二步,”
Setup
“時(shí)選擇”
From package
“
3.
到“
Location
“側(cè)選項(xiàng)卡時(shí),在”
Visual Studio Code Package
“欄選擇
VSCode
的壓縮包。需要注意的是,”
Destination
“欄的路徑是否到
”
…/AppData/Roaming”
4.
然后繼續(xù)向?qū)В却? VSCode
安裝,安裝成功后會(huì)自動(dòng)打開(kāi)
VSCode
5.
在
VSCode
中,按“
Ctrl + Shfit + X
”,然后選擇“
Install from VSIX
”
6.
在彈出的窗口中選擇
”bcs-dev-env-extension-24.1.0”
文件夾中的
”bcs-dev-env-24.1.0.vsix”
文件(
需要解壓
bcs-dev-env-extension-24.1.0
壓縮包
)
7.
然后重啟
VSCode
即可
展開(kāi) 基于python語(yǔ)言的ANSA二次開(kāi)發(fā)——如何調(diào)用python設(shè)計(jì)的子程序 ¥2
ANSA的二次開(kāi)發(fā)可以借助強(qiáng)大的python語(yǔ)言來(lái)實(shí)現(xiàn),具體的開(kāi)發(fā)流程如下:
(1)用python編寫自己所需的操作程序;
(2)建立對(duì)應(yīng)的調(diào)用函數(shù)的句柄函數(shù);
(3)在ANSA面板上建立關(guān)聯(lián)句柄函數(shù)的面板按鈕;
(4)設(shè)置保存相應(yīng)的ANSA設(shè)置參數(shù);
(5)點(diǎn)擊對(duì)應(yīng)的面板按鈕即可運(yùn)行相應(yīng)的程序。
一、如何創(chuàng)建圖形界面控制程序腳本
1.新建程序腳本文件,以函數(shù)名命名,格式為.py。例如建立腳本TestButton.py。
腳本程序內(nèi)容如下圖所示:
實(shí)體(Entity)—ANSA二次開(kāi)發(fā)的基礎(chǔ)
接下來(lái)導(dǎo)入我們所需要用到的庫(kù)
import ansa
from ansa import base
from ansa import constants
這里我的模型是Abaqus的,所以將deck設(shè)置為Abaqus
import ansa
from ansa import base
from ansa import constants
deck = constants.ABAQUS
需要解釋一下,具體的deck名稱其實(shí)就是下圖中紅色方框的名字,不知道的直接點(diǎn)開(kāi)deck查看就可以了
下面我們先使用 base.CollectEntities()函數(shù)搜索模型中所有點(diǎn)、殼網(wǎng)格類型的Entity,這個(gè)函數(shù)我在以后的文章中會(huì)具體講解使用方法及注意事項(xiàng),這里大家只需要知道它能夠搜集模型中Entity并返回這種類型Entity組成的列表。
展開(kāi) ANSA二次開(kāi)發(fā)教程-自動(dòng)賦材料
點(diǎn)擊藍(lán)字 關(guān)注我們
二次開(kāi)發(fā)教程-自動(dòng)賦材料
在完成整車網(wǎng)格劃分后,通常需要對(duì)每個(gè)零部件命名和賦予相應(yīng)的材料,如手動(dòng)的為每一個(gè)零部件賦予材料名稱和屬性,這將是一個(gè)非常大的工程,而且還容易出現(xiàn)錯(cuò)誤。
為提高工作效率,本次帶來(lái)一個(gè)為每個(gè)零部件自動(dòng)賦予各自對(duì)應(yīng)材料名稱和屬性的二次開(kāi)發(fā)插件。本二次開(kāi)發(fā)插件是居于ANSA開(kāi)發(fā)而成。因汽車前處理NASTRAN使用較多,所有本二次開(kāi)發(fā)代碼是在NASTRAN模塊下實(shí)現(xiàn)的,其它模塊類似。
整個(gè)思路如下:
首先在Properties屬性列表中,自動(dòng)填入對(duì)應(yīng)材料的MID號(hào)
然后再M(fèi)AT1材料模塊下,對(duì)應(yīng)的MID號(hào)中,填入對(duì)應(yīng)的材料名稱。
例如DOOR_TRIM-FT-R的零部件的材料名稱B240ZK,則可將Properties屬性中,名稱為DOOR_TRIM-FT-R的零部的材料MID1設(shè)置為1007;MAT1材料模塊下,設(shè)置MID為1007,材料Name名稱為B240ZK。
展開(kāi) ANSA二次開(kāi)發(fā)PID篩選案例介紹
今天我們來(lái)介紹一個(gè)二次開(kāi)發(fā)案例—ANSA中零件PID的篩選與操作。
首先先看一下需求:
如上圖所示。有一堆零件,軟件已經(jīng)自動(dòng)區(qū)分出PID。它們的PID名字都以“part”加數(shù)字開(kāi)頭。現(xiàn)在要求:
將名稱含PART1的PID僅顯示,topo
將名稱含PART2的PID僅顯示,topo
將名稱含PART3的PID僅顯示,topo(判斷是否有part4,如果有topo,繼續(xù)判斷PART5,6,7……如果沒(méi)有終止topo)
首先分析一下需求,將名稱含有XXX的PID做指定操作,其實(shí)就是對(duì)PID進(jìn)行分類,通過(guò)名稱含有XXX來(lái)篩選,這剛好可以應(yīng)用字典來(lái)解決,那么剩下的就是邏輯了。
展開(kāi) ANSA二次開(kāi)發(fā)之創(chuàng)建球體六面體網(wǎng)格
我摸魚(yú)小王子今天又來(lái)了,最近更新的內(nèi)容大部分都是二次開(kāi)發(fā)相關(guān)的。
想在2023年少干一點(diǎn)活的道 友,可以抓緊上車了,一個(gè)星期光速學(xué)會(huì)二次開(kāi)發(fā)。從此準(zhǔn)時(shí)下班,走上人生巔峰!
今天講的是關(guān)于球體六面體網(wǎng)格的二次開(kāi)發(fā)。
想要開(kāi)發(fā)這個(gè)插件的原因是,每次要畫六面體的球體網(wǎng)格我覺(jué)得很麻煩,于是就想著能不能偷個(gè)懶。還得是我啊,啥都想著電腦能多干一點(diǎn)。
剛好最近在看二次開(kāi)發(fā)的時(shí)候看到了創(chuàng)建六面體球體的API,就拿來(lái)試了一下,沒(méi)想到還成功了。
下面請(qǐng)看效果:
不說(shuō)了,直接上代碼吧
import ansa
from ansa import base
from ansa import constants
from ansa import mesh
def main():
center = (2, 2, 2)
mesh.HexaSphere( center, 10., 32, False, True )
if __name__ == '__main__':
main()
這里我們要確認(rèn)球心的坐標(biāo)(2,2,2),球的半徑(10),和球表面的體單元數(shù)量(32)。
后來(lái)我又發(fā)現(xiàn),原來(lái)ANSA里已經(jīng)有了這個(gè)功能。
請(qǐng)看操作示范:
今天的分享就到這里了,本文完。
文章來(lái)源:FEAer
展開(kāi) ANSA前處理二次開(kāi)發(fā)之剛片自動(dòng)創(chuàng)建并命名 ¥3
為此,開(kāi)發(fā)了一個(gè)自動(dòng)快速建立剛片的小插件,能實(shí)現(xiàn)如下功能:
1、選擇連接螺栓孔周邊node點(diǎn)后washer單元自動(dòng)創(chuàng)建剛片property;
2、根據(jù)總成連接關(guān)系自動(dòng)設(shè)置剛片ID,名稱,并附材料;
3、自動(dòng)設(shè)置FROZEN ID和FROZEN DELETE選項(xiàng),防止剛片被compress掉,或剛片編號(hào)被renumber。
注:還以白車身與機(jī)罩連接為例,剛片ID命名規(guī)則為依順序增加,如從10001901、10001902……,如已存在編號(hào)為10001901的part則編號(hào)從10001902開(kāi)始依次增加。
程序運(yùn)行界面如下:
創(chuàng)建完成后剛片part編號(hào)如下所示:
視頻演示如下所示:
具體實(shí)現(xiàn)思路及關(guān)鍵函數(shù):
1、讓用戶選擇螺栓孔周邊nodes,用到的函數(shù)為base.PickEntities();
2、獲取與nodes相關(guān)聯(lián)的所有單元,用到的函數(shù)為base.NodesToElements()
3、根據(jù)用戶輸入的子文件編號(hào)、名稱、材料ID創(chuàng)建新的property,用到的函數(shù)為base.CreateEntity()
4、將第二步獲取的單元的PID設(shè)置為第三步創(chuàng)建的PID,用到的函數(shù)為base.SetEntityCardValues()
最后,附上小工具下載地址,更多可微信關(guān)注公眾號(hào)“汽車安全技術(shù)”
展開(kāi) 
hypermesh二次開(kāi)發(fā)之自動(dòng)記錄用戶操作命令,方便二次開(kāi)發(fā) ¥19.89
hypermesh二次開(kāi)發(fā)之自動(dòng)記錄用戶操作命令,方便二次開(kāi)發(fā)
你也可以來(lái)做二次開(kāi)發(fā)--HyperMesh二次開(kāi)發(fā)應(yīng)用之123
大部分HyperMesh用戶覺(jué)得二次開(kāi)發(fā)這種碼農(nóng)干的事情大概很困難 。我們平時(shí)發(fā)現(xiàn)有的工程師非常有耐心:對(duì)一件單調(diào)乏味的事情重復(fù)千百次。其實(shí)有時(shí)候二次開(kāi)發(fā)真的很簡(jiǎn)單,懂一點(diǎn)二次開(kāi)發(fā)會(huì)讓你的工作更有效率,讓你的分析生活更有趣。
應(yīng)用1:創(chuàng)建節(jié)點(diǎn)(node)
前處理建模經(jīng)常需要?jiǎng)?chuàng)建節(jié)點(diǎn),有時(shí)數(shù)量還相當(dāng)多 。接下來(lái)我們來(lái)看一下如何通過(guò)二次開(kāi)發(fā)把這些點(diǎn)變到HyperMesh中去!
保證你一看就會(huì)!
應(yīng)用1
輸入: 比如我們已經(jīng)從別的途徑獲得了這些點(diǎn)的x,y,z坐標(biāo);這些坐標(biāo)保存在nodesxyz.csv文件中,這是一個(gè)文本文件,可以使用文本編輯器或者excel打開(kāi)。
?在HyperMesh中先按照傳統(tǒng)的方法創(chuàng)建第一個(gè)點(diǎn)
然后從下拉菜單Edit -> Command File打開(kāi)命令流文件;我們可以看到下面這條命令,所以我們只需要按照這個(gè)格式得到其它命令語(yǔ)句即可實(shí)現(xiàn)目標(biāo)。
展開(kāi) 解決Abaqus Python二次開(kāi)發(fā)各種問(wèn)題! 附ABAQUS PYTHON二次開(kāi)發(fā)攻略文檔下載
網(wǎng)絡(luò)接口不僅能用python3來(lái)開(kāi)發(fā),甚至可以用任意一種更適合你開(kāi)發(fā)需求的代碼來(lái)開(kāi)發(fā)。網(wǎng)絡(luò)接口的環(huán)境和abaqus的python2環(huán)境是天然隔離的,安裝各種第三方庫(kù)自然不在話下了。
說(shuō)到成果保護(hù),作者可以精準(zhǔn)對(duì)具體某個(gè)函數(shù)進(jìn)行訪問(wèn)控制,包括“哪個(gè)賬號(hào)可以訪問(wèn)?”、“可以訪問(wèn)幾次?”、“在哪個(gè)時(shí)間段可以訪問(wèn)?”等等。
而且,這里提到的網(wǎng)絡(luò)可以是局域網(wǎng)。最小的局域網(wǎng)就是同一臺(tái)計(jì)算機(jī)訪問(wèn)自身的不同端口,所以完全可以在你的計(jì)算機(jī)上配置好網(wǎng)絡(luò)服務(wù)器應(yīng)用,然后在abaqus的python2環(huán)境中訪問(wèn)、交互,實(shí)現(xiàn)上述的各種功能。
2、函數(shù)上云
對(duì)于那些飽含作者心血的寶貴函數(shù),完全可以部署到各種云服務(wù)器上,在代碼“絕對(duì)安全”和用戶“絕對(duì)方便”的前提上讓有需要的人能夠方便快捷的使用到。
以上,都可以基于Abaqus python 漸進(jìn)式二次開(kāi)發(fā)的技術(shù)來(lái)實(shí)現(xiàn)。代碼的使用方法很大程度決定了代碼使用的場(chǎng)景和邊界。
所以,希望突破限制復(fù)制粘貼“長(zhǎng)長(zhǎng)”腳本的你,歡迎參加《Abaqus python 漸進(jìn)式二次開(kāi)發(fā)(二)》直播課,從基礎(chǔ)的開(kāi)發(fā)“套路”開(kāi)始,重新認(rèn)識(shí)Abaqus python二次開(kāi)發(fā)。
下載地址:ABAQUS PYTHON二次開(kāi)發(fā)攻略文檔下載
展開(kāi) ANSYS基于VC++6.0的二次開(kāi)發(fā)ANSYS基于VC++6.0的二次開(kāi)發(fā)與 相互作用分析在ANSYS中的實(shí)
④用戶可以添加新的功能或新的二次開(kāi)發(fā)以實(shí)現(xiàn)程序升級(jí)。
(3)程序應(yīng)具有良好的可移植性,不依賴于特定的硬件設(shè)備,只要能安裝ANSYS和VC++6.0的硬件環(huán)境都能使用本系統(tǒng),保證程序使用的廣泛性。
(4)程序代碼應(yīng)具有開(kāi)放性和可重用性。這樣,在進(jìn)一步的設(shè)計(jì)中,能保證設(shè)計(jì)者可以方便地對(duì)代碼進(jìn)行修改擴(kuò)充;同時(shí),提供一定的設(shè)計(jì)接口,新的設(shè)計(jì)者可以根據(jù)接口,無(wú)須對(duì)程序進(jìn)行大幅度的修改,就可以進(jìn)行新的開(kāi)發(fā),以適應(yīng)新的特殊要求。
程序的開(kāi)發(fā)平臺(tái)是Microsoft VC++6.0、ANSYS6.1,基于WindowsXP編程。程序?qū)崿F(xiàn)是利用微軟提供的Windows編程接口MFC和ANSYS公司的ANSYS/Multiphysics產(chǎn)品,采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。
3程序的主要模塊和設(shè)計(jì)
如圖3-2所示,程序的主要模塊有:用戶界面模塊、ANSYS計(jì)算模塊、VC調(diào)用接口模塊和VC后處理模塊,分別論述如下:
3.1 ANSYS模塊
ANSYS為了滿足用戶的特殊需求,建立了開(kāi)放的體系結(jié)構(gòu),提供了二次開(kāi)發(fā)接口APDL、UIDL和UPFs(User Programming Features,用戶編程特性)等。其中,ANSYS接口允許用戶將自己的VC代碼連到ANSYS中去,或?qū)NSYS作為子程序調(diào)用,從而使ANSYS具備特殊的功能。
本文的ANSYS模塊是使用APDL語(yǔ)言進(jìn)行二次開(kāi)發(fā)的。在上面的二次開(kāi)發(fā)中用到了參數(shù)化設(shè)計(jì)方法。參數(shù)是APDL的變量(它們更象FORTRAN變量,而不像FORTRAN參數(shù)),不必明確聲明參數(shù)類型,所有數(shù)值變量都以雙精度數(shù)存儲(chǔ)。被使用但未聲明的參數(shù)都被賦予接近0的“極小值”。在二次開(kāi)發(fā)中使用參數(shù)化設(shè)計(jì)方法,增強(qiáng)了程序的易讀性和可移植性。用戶無(wú)須了解程序的具體結(jié)構(gòu)只需改變參數(shù)值就可自動(dòng)調(diào)用ANSYS模塊。
展開(kāi)