0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手把手教你編寫白車身扭轉(zhuǎn)工況ANSA二次開發(fā)程序

8XCt_sim_ol ? 來源:仿真秀App ? 作者:ANSA攻城獅 ? 2022-12-09 14:04 ? 次閱讀

導(dǎo)讀:在我推出的《ANSA二次開發(fā)從入門到精通》這門課程中從幾何檢查到網(wǎng)格劃分,再到常見連接(螺栓、焊點、焊線、膠粘),最后到界面設(shè)計給大家全面的講解了ANSA二次開發(fā)中常用的函數(shù)及用法,也通過代碼+實例的方法逐步帶大家學(xué)習(xí)相關(guān)知識。但是大家有許多同學(xué)也是剛開始接觸ANSA二次開發(fā),所以我們在課程中的例子還是比較簡單的,想在工程實際應(yīng)用還需要多進(jìn)行練習(xí),但是也無非是課程中的知識的組合。

作為一名汽車仿真工程師做得最多的就是汽車相關(guān)工況的二次開發(fā),本文就用一個最常見的白車身扭轉(zhuǎn)工況來帶大家再次領(lǐng)略ANSA二次開發(fā)的魅力,后期也會有更多針對工程實例的課程、文章,歡迎大家關(guān)注我的仿真秀專欄-ANSA攻城獅。

一、認(rèn)識白車身扭轉(zhuǎn)工況

首先介紹一下白車身扭轉(zhuǎn)工況的具體加載、約束以及結(jié)果讀取吧。

1、加載

扭轉(zhuǎn)顧名思義需要在車身上加載一個扭矩,主流主機(jī)廠的仿真方法是在車身減震器安裝點位置左右分別施加兩個相反的力。如下圖所示

d3c9b556-76e1-11ed-8abf-dac502259ad0.png

2、約束

為了保證在加載過程中車身不會發(fā)生剛體位移,我們需要施加約束。通常是在車身后部減震器安裝點位置約束1-3方向自由度,有的主機(jī)廠還會在保險杠中部約束一個點的3方向自由度。

3、結(jié)果讀取與計算

不同企業(yè)的計算方法不同,這里選取一個比較主流的車身扭轉(zhuǎn)剛度計算方法

讀取前減震器z向位移Z1,Z2(單位m)。扭矩為T(單位N.m),前左右安裝點距離為D(單位m),車身扭轉(zhuǎn)剛度計算公式為:

d3e004b4-76e1-11ed-8abf-dac502259ad0.png

最終計算出來的扭轉(zhuǎn)剛度單位為:N.m/deg

二、編程思路

d4072d82-76e1-11ed-8abf-dac502259ad0.png

首先創(chuàng)建一個界面用于和用戶進(jìn)行交互。

d428ade0-76e1-11ed-8abf-dac502259ad0.png

點擊選點按鈕后用戶選擇前后減震器安裝點,軟件會自動通過位置判斷每個選點的位置,然后為其創(chuàng)建對應(yīng)的集合

點擊創(chuàng)建模型按鈕后,軟件會自動根據(jù)模型里面的集合來創(chuàng)建載荷以及約束。這樣做的好處就是下次在使用之前已經(jīng)選點好的模型進(jìn)行白車身扭轉(zhuǎn)剛度分析,只需要點擊“創(chuàng)建模型”按鈕就可以直接創(chuàng)建模型,而無需再次選點。

界面很簡單,但是已經(jīng)能夠?qū)崿F(xiàn)基本的功能,大家也可以在此基礎(chǔ)上增加組件,實現(xiàn)更加復(fù)雜的交互功能。由于篇幅有限這里只進(jìn)行最基礎(chǔ)功能的實現(xiàn),更加復(fù)雜的功能與豐富的工程實例請大家繼續(xù)關(guān)注我后期的課程與文章。

總結(jié)下來我們一共要建立三個函數(shù):

1.搭建GUI界面的函數(shù)

2.允許用戶界面中選點的函數(shù)

3.創(chuàng)建載荷、約束、Header的函數(shù)

三、代碼編寫實操

接下來我們開始編寫代碼

1、界面搭建

首先導(dǎo)入必要的庫

d447c46e-76e1-11ed-8abf-dac502259ad0.png

接下來創(chuàng)建一個簡單的界面,對代碼不熟悉的同學(xué)請自行查看幫助文檔或者跟著《ANSA二次開發(fā)從入門到精通》課程系統(tǒng)學(xué)習(xí)

d45e6444-76e1-11ed-8abf-dac502259ad0.png

這里面我們先把選點的函數(shù)SelectNode以及創(chuàng)建模型的函數(shù)CreateHeader創(chuàng)建出來,這樣子才能顯示出界面

d4a4f72e-76e1-11ed-8abf-dac502259ad0.png

2、用戶選點

這里給大家講解一下具體代碼的變成思路

下面這段代碼是允許用戶選點,并且根據(jù)位置來判斷選取的點是前后減震器中的哪一個并創(chuàng)建對應(yīng)的集合,其中還加了一些邏輯判斷。

d4c41b68-76e1-11ed-8abf-dac502259ad0.png

這段代碼中由四部分邏輯相同的部分,這里拿出來其中一部分進(jìn)行講解

d5237324-76e1-11ed-8abf-dac502259ad0.png

(1)PickEntities()是允許用戶在界面中選擇節(jié)點的函數(shù),用戶可以選擇四個減震器安裝點中任意幾個。

(2)接下來通過.position的類屬性來判斷改點所在位置,并進(jìn)行對應(yīng)集合的創(chuàng)建。

(3)然后通過GetEntity來獲取集合,如果存在我們就用已經(jīng)存在的集合,并且將集合中的點通過CollectEntities()搜集起來,再通過RemoveFromSet()將集合中的點移除集合;不存在我們就使用CreateEntity()創(chuàng)建一個新的集合。

這樣做是為了我們在已經(jīng)存在集合(之前選取過點)的模型中重新選點時能夠使用新選擇的點來覆蓋舊的點,增加程序的靈活性。當(dāng)然了我們每個位置點所建立的Set是有固定的ID的,這樣子方便索引

(4)最后就是將這個點通過AddToSet()來儲存到幾何中進(jìn)行位置判斷時大家根據(jù)自己模型中的全局坐標(biāo)系進(jìn)行判斷就好,我這里的全局坐標(biāo)系如下圖所示:

d5485b58-76e1-11ed-8abf-dac502259ad0.png

進(jìn)行到這里大家可以測試一下程序能否正常運行,效果就是這樣的

我們在第一次選擇時會創(chuàng)建新的Set來裝每個減震器安裝點的節(jié)點,第二次選擇時則會覆蓋之前集合中的節(jié)點。見下視頻:

3、創(chuàng)建Header

代碼如下:

d57a05ae-76e1-11ed-8abf-dac502259ad0.png

(5)首先通過GetEntity()獲取四個減震器安裝點儲存的集合

(6)然后我們判斷一下集合是否為空,如果為空我們彈出對話框提示用戶“請檢查約束點及加載點集合”

d6083522-76e1-11ed-8abf-dac502259ad0.png

(7)集合不為空,我們搜集集合中的節(jié)點,使用變量儲存

(8)使用CreateEntity分別創(chuàng)建Force及SPC

(9)最后使用CreateEntity創(chuàng)建Header,使用SetNastranHeader來設(shè)置Header中的內(nèi)容,進(jìn)行求解

效果如下:

到這里我們的程序就寫完了,其實其中還可以增加很多的邏輯判斷來增強(qiáng)我們程序的容錯率,不要出現(xiàn)錯誤就異常退出,比如說判斷集合中的節(jié)點數(shù)是否為1,如果節(jié)點數(shù)多余1說明這個集合有問題,這時候可以提示用戶檢查集合。再比如還可以增加在創(chuàng)建完Header后讓用戶選擇路徑輸出計算文件。這里大家就自由發(fā)揮想象。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3972

    瀏覽量

    132961
  • Sansa
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2493
  • 開發(fā)程序
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1443

原文標(biāo)題:手把手教你編寫白車身扭轉(zhuǎn)工況ANSA二次開發(fā)程序

文章出處:【微信號:sim_ol,微信公眾號:模擬在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    手把手教你構(gòu)建一個完整的工程

    手把手教你構(gòu)建一個完整的工程
    發(fā)表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>構(gòu)建一個完整的工程

    手把手教你寫批處理-批處理的介紹

    手把手教你寫批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    AutoCAD的二次開發(fā)

    AutoCAD的二次開發(fā) AutoCAD的二次開發(fā)主要涉及以下內(nèi)容:(1) 編寫各種用戶自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL
    發(fā)表于 02-14 16:59 ?1763次閱讀

    美女手把手教你如何裝機(jī)(中)

    美女手把手教你如何裝機(jī)(中) 再來是硬碟的部份,這款機(jī)殼還不錯,可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1420次閱讀

    美女手把手教你如何裝機(jī)(下)

    美女手把手教你如何裝機(jī)(下) 接著下來就是今天的重頭戲,開核蘿!~
    發(fā)表于 01-27 11:16 ?2905次閱讀

    AutoCAD VBA二次開發(fā)教程

    AutoCAD VBA二次開發(fā)教程,學(xué)習(xí)二次開發(fā)的頂起
    發(fā)表于 11-02 16:16 ?0次下載

    手把手教你安裝Quartus II

    本章手把手把教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?25次下載

    手把手教你做電子時鐘---前言

    手把手教你做彩鈴電子時鐘
    發(fā)表于 11-14 16:53 ?11次下載

    手把手教你如何開始DSP編程

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?12次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何開始DSP編程

    手把手教你學(xué)LabVIEW視覺設(shè)計

    手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視
    發(fā)表于 03-06 01:41 ?2993次閱讀

    手把手教你玩USB開發(fā)資料匯總第部分

    手把手教你開發(fā)—USB開發(fā)板資料,B站有視頻教程
    發(fā)表于 09-09 15:50 ?21次下載

    手把手教你開關(guān)電源PCB排板

    手把手教你開關(guān)電源PCB排板(新型電源技術(shù))-分享一下開關(guān)電源PCB排板的基本要點及分析,以及例子講解。絕對的手把手
    發(fā)表于 09-18 12:27 ?57次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>開關(guān)電源PCB排板

    手把手教你開發(fā)基于單片機(jī)的wifi通信的物聯(lián)網(wǎng)項目(遠(yuǎn)程燈控制)

    手把手教你開發(fā)基于單片機(jī)的wifi通信的物聯(lián)網(wǎng)項目(遠(yuǎn)程燈控制)
    發(fā)表于 11-12 19:36 ?18次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b><b class='flag-5'>開發(fā)</b>基于單片機(jī)的wifi通信的物聯(lián)網(wǎng)項目(遠(yuǎn)程燈控制)

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>學(xué)FPGA仿真