導讀:在我推出的《ANSA二次開發從入門到精通》這門課程中從幾何檢查到網格劃分,再到常見連接(螺栓、焊點、焊線、膠粘),最后到界面設計給大家全面的講解了ANSA二次開發中常用的函數及用法,也通過代碼+實例的方法逐步帶大家學習相關知識。但是大家有許多同學也是剛開始接觸ANSA二次開發,所以我們在課程中的例子還是比較簡單的,想在工程實際應用還需要多進行練習,但是也無非是課程中的知識的組合。
作為一名汽車仿真工程師做得最多的就是汽車相關工況的二次開發,本文就用一個最常見的白車身扭轉工況來帶大家再次領略ANSA二次開發的魅力,后期也會有更多針對工程實例的課程、文章,歡迎大家關注我的仿真秀專欄-ANSA攻城獅。
一、認識白車身扭轉工況
首先介紹一下白車身扭轉工況的具體加載、約束以及結果讀取吧。
1、加載
扭轉顧名思義需要在車身上加載一個扭矩,主流主機廠的仿真方法是在車身減震器安裝點位置左右分別施加兩個相反的力。如下圖所示
2、約束
為了保證在加載過程中車身不會發生剛體位移,我們需要施加約束。通常是在車身后部減震器安裝點位置約束1-3方向自由度,有的主機廠還會在保險杠中部約束一個點的3方向自由度。
3、結果讀取與計算
不同企業的計算方法不同,這里選取一個比較主流的車身扭轉剛度計算方法
讀取前減震器z向位移Z1,Z2(單位m)。扭矩為T(單位N.m),前左右安裝點距離為D(單位m),車身扭轉剛度計算公式為:
最終計算出來的扭轉剛度單位為:N.m/deg
二、編程思路
首先創建一個界面用于和用戶進行交互。
點擊選點按鈕后用戶選擇前后減震器安裝點,軟件會自動通過位置判斷每個選點的位置,然后為其創建對應的集合
點擊創建模型按鈕后,軟件會自動根據模型里面的集合來創建載荷以及約束。這樣做的好處就是下次在使用之前已經選點好的模型進行白車身扭轉剛度分析,只需要點擊“創建模型”按鈕就可以直接創建模型,而無需再次選點。
界面很簡單,但是已經能夠實現基本的功能,大家也可以在此基礎上增加組件,實現更加復雜的交互功能。由于篇幅有限這里只進行最基礎功能的實現,更加復雜的功能與豐富的工程實例請大家繼續關注我后期的課程與文章。
總結下來我們一共要建立三個函數:
1.搭建GUI界面的函數
2.允許用戶界面中選點的函數
3.創建載荷、約束、Header的函數
三、代碼編寫實操
接下來我們開始編寫代碼
1、界面搭建
首先導入必要的庫
接下來創建一個簡單的界面,對代碼不熟悉的同學請自行查看幫助文檔或者跟著《ANSA二次開發從入門到精通》課程系統學習
這里面我們先把選點的函數SelectNode以及創建模型的函數CreateHeader創建出來,這樣子才能顯示出界面
2、用戶選點
這里給大家講解一下具體代碼的變成思路
下面這段代碼是允許用戶選點,并且根據位置來判斷選取的點是前后減震器中的哪一個并創建對應的集合,其中還加了一些邏輯判斷。
這段代碼中由四部分邏輯相同的部分,這里拿出來其中一部分進行講解
(1)PickEntities()是允許用戶在界面中選擇節點的函數,用戶可以選擇四個減震器安裝點中任意幾個。
(2)接下來通過.position的類屬性來判斷改點所在位置,并進行對應集合的創建。
(3)然后通過GetEntity來獲取集合,如果存在我們就用已經存在的集合,并且將集合中的點通過CollectEntities()搜集起來,再通過RemoveFromSet()將集合中的點移除集合;不存在我們就使用CreateEntity()創建一個新的集合。
這樣做是為了我們在已經存在集合(之前選取過點)的模型中重新選點時能夠使用新選擇的點來覆蓋舊的點,增加程序的靈活性。當然了我們每個位置點所建立的Set是有固定的ID的,這樣子方便索引。
(4)最后就是將這個點通過AddToSet()來儲存到幾何中進行位置判斷時大家根據自己模型中的全局坐標系進行判斷就好,我這里的全局坐標系如下圖所示:
進行到這里大家可以測試一下程序能否正常運行,效果就是這樣的
我們在第一次選擇時會創建新的Set來裝每個減震器安裝點的節點,第二次選擇時則會覆蓋之前集合中的節點。見下視頻:
3、創建Header
代碼如下:
(5)首先通過GetEntity()獲取四個減震器安裝點儲存的集合
(6)然后我們判斷一下集合是否為空,如果為空我們彈出對話框提示用戶“請檢查約束點及加載點集合”
(7)集合不為空,我們搜集集合中的節點,使用變量儲存
(8)使用CreateEntity分別創建Force及SPC
(9)最后使用CreateEntity創建Header,使用SetNastranHeader來設置Header中的內容,進行求解
效果如下:
到這里我們的程序就寫完了,其實其中還可以增加很多的邏輯判斷來增強我們程序的容錯率,不要出現錯誤就異常退出,比如說判斷集合中的節點數是否為1,如果節點數多余1說明這個集合有問題,這時候可以提示用戶檢查集合。再比如還可以增加在創建完Header后讓用戶選擇路徑輸出計算文件。這里大家就自由發揮想象。
審核編輯:湯梓紅
-
仿真
+關注
關注
50文章
4085瀏覽量
133637 -
Sansa
+關注
關注
0文章
4瀏覽量
2515 -
開發程序
+關注
關注
0文章
4瀏覽量
1458
原文標題:手把手教你編寫白車身扭轉工況ANSA二次開發程序
文章出處:【微信號:sim_ol,微信公眾號:模擬在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論