ABAQUS二次開發|findAt函數創建集合的使用方法

關注微信公眾號:仿真社,回復“findAt”獲取源文件

Abaqus二次開發時,經常會遇到getSequenceFromMask,用此命令創建的集合是掩碼編碼,若集合是作為優化變量,則不具備操作性,應該盡量避免使用它。findAt函數是解決這一不足的有力武器,findAt函數是通過坐標點的方式來創建point、surface、cell集合,具有參數化的特點,方便控制。

1.問題描述

a)  建立A B 兩個區域的集合

ABAQUS二次開發|findAt函數創建集合的使用方法的圖1

圖1 A,B區域圖

有限元模型的長寬分別為60mm,25mm,A區域的位置為x小于30,y大于18;B區域的位置為x大于30,y小于7。


b)為優化集中力位置,使用findAt()函數在懸臂梁的頂部創建一個施加集中力的可變集合(圖2)。

ABAQUS二次開發|findAt函數創建集合的使用方法的圖2

圖2懸臂梁模型

2.技術路線

2.1創建A、B區域的集合

findAt函數是利用區域內的一點坐標創建集合,因此選擇A區域的坐標(10,20,0),B區域的坐標(50,5,0),為新創建的集合命名為Set-target,代碼如下:

ABAQUS二次開發|findAt函數創建集合的使用方法的圖3


2.2 創建點的可變集合

創建點集合的思路為:如果點在線內(不包含端點),則首先創建一個基準點,然后對模型基于基準點進行切分,最后創建集合;如果點在線的兩端,則直接創建集合。圖2展示了實現該功能的代碼,主要是一個判斷功能,保證創建的點集合在模型上,否則就報錯。

ABAQUS二次開發|findAt函數創建集合的使用方法的圖4

圖3 判斷是否需要進行切分

下面展示了實現創建集合功能的代碼,其中findAt函數實現了對加載集中力位置的定義。在定義點時,用到的一個對象是vertices,即頂點,這也就是為什么要切分的原因。模型只有切分了之后才會有頂點!

ABAQUS二次開發|findAt函數創建集合的使用方法的圖5

圖4 創建集合

3.結果

ABAQUS二次開發|findAt函數創建集合的使用方法的圖6

圖5 應力云圖

4.結論

演示了使用findAt函數參數化建立了集合的流程。 該模型完整代碼可在后臺回復“findAt”獲取。下期給大家分享一個python reader編譯器,可實時顯示.rpy代碼,助力高效 二次開發。若沒有第三方軟件協助,一個模型成百上千的代碼是多么的令人抓狂 ABAQUS二次開發|findAt函數創建集合的使用方法的圖7 ABAQUS二次開發|findAt函數創建集合的使用方法的圖8 ABAQUS二次開發|findAt函數創建集合的使用方法的圖9

往期推薦:

  1. Abaqus|Abaqus與Matlab對I型裂紋研究分析

  2. Abaqus|復合材料熱變形案例

  3. Abaqus|桿件結構中剛接點、鉸接點、交叉桿件的設置方法與模擬

  4. 二次開發|Python腳本文件生成懸鏈線


ABAQUS二次開發|findAt函數創建集合的使用方法的圖10


ABAQUS二次開發|findAt函數創建集合的使用方法的圖11


ABAQUS二次開發|findAt函數創建集合的使用方法的圖12

點個在看你最好看

ABAQUS二次開發|findAt函數創建集合的使用方法的圖13
ABAQUS二次開發|findAt函數創建集合的使用方法的圖14
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

4
7