
發(fā)布
注冊
/
登錄abaqus批量綁定的案例
Abaqus彈簧批量連接/車橋耦合扣件批量連接代碼+詳細(xì)教學(xué)視頻 ¥38.9
ABAQUS軟件批量彈簧連接代碼(可修改距離誤差)+使用視頻(10分鐘自己錄制)
贈送:
ABAQUS鄰近點(diǎn)匹配算法批量建立連接器單元_模擬鋼筋混凝土粘結(jié)滑移,教學(xué)視頻+代碼
其他批量連接代碼
abaqus二維基坑教學(xué)視頻(內(nèi)支撐+綁定)
自己錄制了一個教學(xué)視頻 高手勿噴 鏈接:http://pan.baidu.com/s/1eSweHiy 密碼:y003
abaqus中關(guān)于tie綁定激活,殺死的問題
abaqus中tie綁定也是可以激活,殺死的,只是伙伴們一直沒有發(fā)現(xiàn),今天就教給大家,看圖說話:1是面面綁定 2是勾選3才會出現(xiàn),這種效果是與綁定一模一樣的,只有在這里建立的綁定能殺死激活。伙伴們,中秋節(jié)快樂!
通過Abaqus python腳本批量獲取節(jié)點(diǎn)的應(yīng)力 ¥25
背景
有限單元法計算單元積分點(diǎn)的應(yīng)力應(yīng)變值,而對于節(jié)點(diǎn)的應(yīng)力應(yīng)變值是通過外插得到的,Abaqus中云圖顯示的就是經(jīng)過插值和平均后的節(jié)點(diǎn)的值。通過工具欄的Query-Probe values可以查看單元或節(jié)點(diǎn)的應(yīng)力應(yīng)變等結(jié)果。
對于自動化的后處理場景,通常需要自動批量地獲取單元/節(jié)點(diǎn)的結(jié)果,通常都需要通過python腳本來實(shí)現(xiàn)。通過類似odb.steps['Step-1'].frames[-1].fieldOutputs['S']的場輸出可以比較方便地直接獲得單元的積分點(diǎn)應(yīng)力,但沒有直接的API可以獲取節(jié)點(diǎn)的應(yīng)力應(yīng)變等結(jié)果。
如果需要獲取部件表面節(jié)點(diǎn)應(yīng)力,可以通過創(chuàng)建路徑+XYData的方式實(shí)現(xiàn),但想要獲得最大節(jié)點(diǎn)應(yīng)力,則該方式不便實(shí)現(xiàn)。
2. 通過python腳本獲取節(jié)點(diǎn)應(yīng)力結(jié)果
本文通過fieldOutput.getSub()函數(shù)獲取所有單元的節(jié)點(diǎn)結(jié)果,并對每一節(jié)點(diǎn)關(guān)聯(lián)的多個單元的節(jié)點(diǎn)值進(jìn)行平均后得到節(jié)點(diǎn)的結(jié)果。以下以某個簡單的odb結(jié)果進(jìn)行驗(yàn)證。
(1)批量獲得節(jié)點(diǎn)的mises應(yīng)力值
(2)批量獲得節(jié)點(diǎn)的X方向正應(yīng)力值
(3)批量獲得節(jié)點(diǎn)的最大主應(yīng)力值
(4)獲取節(jié)點(diǎn)的最大mises應(yīng)力及編號
3. 獲取節(jié)點(diǎn)應(yīng)變等結(jié)果
只需將腳本程序中的應(yīng)力場改為應(yīng)變成E等即可,此處不再演示。
以下為本文的python腳本代碼(代碼中作了必要的簡單注釋)。
展開 
Abaqus批量計算工具
Abaqus批量計算.zip
Abaqus的Python批量隨機(jī)幾何建模入門
Abaqus支持使用Python語言進(jìn)行二次開發(fā)建模,用戶可以利用Python代碼達(dá)成特殊的建模要求。在批量隨機(jī)幾何建模問題中,有兩個關(guān)鍵詞:一是批量、二是隨機(jī)。
1、批量建模
批量建模主要用到的技巧是循環(huán)。在此我們介紹兩種常用的Python語言循環(huán)控制代碼格式。
首先是while循環(huán),也就是“當(dāng)循環(huán)”。我們直接看一個例子:
i=1
while i < 6:
print i
i=i+1
我們觀察以上代碼,它的意思是:當(dāng)i小于6的時候,執(zhí)行print i的命令,直到while后面的條件不成立(即i大于等于6)為止。在循環(huán)前,我們給i幅值為1,每一次循環(huán)又讓i在原來基礎(chǔ)上加一,這樣就實(shí)現(xiàn)了循環(huán)打印五個數(shù)字的效果。這里的i一般用于循環(huán)計數(shù),自加的操作可以讓它記錄循環(huán)次數(shù)。
注意:while下面的執(zhí)行語句要空四個格!
第二種方式是for循環(huán),也就是“歷遍循環(huán)”。還是直接看例子:
a=[1,2,3,4,5]
for i in a:
print i
這段代碼首先定義了一個列表a,它包含五個元素,分別是1、2、3、4、5這五個整型變量。for i in a:的意思是讓虛擬元素i在a中逐個變化,也就是第一次循環(huán)時,i=1,第二次循環(huán)時,i=2,依次把五個元素歷遍后循環(huán)終止。這段代碼的實(shí)現(xiàn)效果與第一段代碼相同。
同樣需要注意,for下面的執(zhí)行語句也要空四個格!
2、隨機(jī)建模
隨機(jī)建模主要用到的技巧是產(chǎn)生隨機(jī)數(shù)字。這就要用到Python的隨機(jī)模塊random了。
展開 Abaqus批量提交作業(yè) ¥6
<pre class="ql-syntax" spellcheck="false"># -*- coding: utf-8 -*-
from abaqus import *
from abaqusConstants import *
import os
import time
def clean_residual_files(job_name):
"""清理殘留文件函數(shù)"""
residual_ext = ['.lck', '.prt', '.sim', '.sta',
'.abq', '.com', '.dat', '.msg','.odb',
'.log', '.odb', '.inp']
for ext in residual_ext:
file_path = job_name + ext
if os.path.exists(file_path):
try:
os.remove(file_path)
 
展開 ABAQUS批量提交任務(wù)
ABAQUS可以使用Python代碼進(jìn)行批量提交任務(wù)
第一步:
新建文本.txt,復(fù)制Python代碼到文本,代碼如下
# -*-coding:UTF-8-*-
from abaqus import *
from abaqusConstants import *
import time
print "==================== 【開 始】 ====================="
jobs = mdb.jobs.keys() #獲得所有任務(wù)名稱
for i in jobs: #遍歷所有任務(wù)
myJob = mdb.jobs[i] #獲得任務(wù)對象
#判斷任務(wù)的狀態(tài)是否為None,避免重復(fù)提交
if myJob.status == None:
t0=time.time() #記錄提交前的時間
myJob.submit() #提交計算
myJob.waitForCompletion() #等待計算完成
print '【%s】計算完成,耗時 %f 秒'%(i,time.time()-t0)
print "==================== 【結(jié) 束】 ====================="
第二步:文本格式.txt 修改為 .py
第三步:創(chuàng)建好任務(wù),且任務(wù)顯示狀態(tài)為 None,不允許有其他狀態(tài),否則提交不成功(可修改代碼值靈活變化)
批量提交有兩種方式:
1、file>Run Script,打開前面保存的.py文件,任務(wù)會自動進(jìn)行
2、直接復(fù)制代碼到Abaqus
展開 ABAQUS批量提交Job與Python讀取ODB結(jié)果應(yīng)力應(yīng)變數(shù)據(jù)
今天完成了一些節(jié)點(diǎn)性工作,下午有些時間,回答一個后臺有網(wǎng)友的提問:
這個問題具有一定的普遍性和通用性,普遍性是很多人都會遇到,通用性是指應(yīng)用場景很廣泛,尤其是現(xiàn)在很多人趕時髦搞深度學(xué)習(xí)和機(jī)器學(xué)習(xí)什么的,需要進(jìn)行大量計算和數(shù)據(jù)處理來構(gòu)建數(shù)據(jù)集,這就不可避免的要進(jìn)行批量化處理了,因此對這些問題進(jìn)行基本的講解也就有了意義,我原來也寫過一些相關(guān)文章,點(diǎn)擊下面圖片可以跳轉(zhuǎn)。
該網(wǎng)友的問題,實(shí)際上是兩個問題:
問題1是如何批量提交job;
問題2是如何從ODB結(jié)果文件中讀取計算結(jié)果數(shù)據(jù)。
因此本文也從兩個方面來進(jìn)行介紹。
問題1
如何批量提交job——計算任務(wù)
批量提交計算任務(wù)這個問題實(shí)際上是老生常談了,可以用兩種基本的方式實(shí)現(xiàn)。
方法1:
在cmd中使用命令行的方式,這種方式也可以保存為bat文件的方式運(yùn)行,這個方式我并不常用,可參考幫助文檔中的如下部分,很詳細(xì)。
方法2
采用python程序進(jìn)行批量提交
如果你的若干個job已經(jīng)在job界面建好了,并且打算每算完一個job自動的進(jìn)行后處理的話,采用python腳本會很方便。
展開 ABAQUS根據(jù)Excel/csv批量生成inp
進(jìn)行Job 和 Step的名稱標(biāo)準(zhǔn)化, 使用ABAQUS名稱標(biāo)準(zhǔn)化工具, 因?yàn)闊o論是.xls還是.csv, 均有可能出現(xiàn)不符合ABAQUS命名規(guī)則的字符串出現(xiàn).
03
—
補(bǔ)充說明
讀取Excel/csv進(jìn)行批量生產(chǎn)inp, 最難的部分在于力的作用邏輯, 因?yàn)樯婕傲εc扭矩的判斷, 并且有的點(diǎn)只受力的作用而不受扭矩的作用.
這需要進(jìn)行判別(目前程序無法判別只受扭矩作用的情況, 當(dāng)然這種作用方式在實(shí)際工作中也沒有遇見過), 因?yàn)橹皇芰Φ淖饔脮r該點(diǎn)有三個方向的載荷而普通的作用點(diǎn)是有六個方向的載荷的.
這部分的邏輯是我剛開始接觸python的時候設(shè)計的, 屬于陳年舊貨, 現(xiàn)在拿來使用雖然沒有邏輯問題, 但是還是有很大的優(yōu)化空間, 只不過....以后再說吧.
04
—
源代碼
關(guān)注AbaqusCoder并回復(fù)createJobFromExcel獲得源代碼.
期待更多技術(shù)干貨, 請關(guān)注AbaqusCoder!
如果本文對您有幫助, 期待您的轉(zhuǎn)發(fā)與點(diǎn)亮再看!
展開 abaqus批量提交inp文件進(jìn)行計算
此時在abaqus插入腳本即可使用了
當(dāng)然還有別的方法,但這中腳本方法親測我覺得最靠譜。

ABAQUS批量inp順序作業(yè)
work-more.txt
ABAQUS批量inp順序作業(yè).docx
Abaqus批量生成連接器
Abaqus批量生成連接器
ABAQUS批量提交任務(wù)的兩種方法
Python提交方法
這里主要講解ABAQUS/CAE界面下,使用Python代碼批量提交任務(wù),代碼量很少,正文內(nèi)容僅十行,可以實(shí)現(xiàn):Job模塊下任務(wù)狀態(tài)為None時,順序批量的提交計算,并統(tǒng)計每個任務(wù)所耗費(fèi)的時間。
代碼運(yùn)行方式:
方式1:菜單欄File->Run Script...
方式2:在底部命令輸入窗口中粘帖上述代碼
來源:CAE愛聯(lián)盟
作者:陳佳敏cn
批量提取Abaqus的節(jié)點(diǎn)坐標(biāo)(初始坐標(biāo)、指定Step下的變形量、變形后節(jié)點(diǎn)坐標(biāo)) ¥40
<h2>摘要</h2><p>本文介紹如何使用Python腳本二次開發(fā)來批量提取ABAQUS輸出數(shù)據(jù)庫(ODB)文件中指定Step下的Set節(jié)點(diǎn)集變形量。通過詳細(xì)的步驟說明、代碼示例和圖片展示,您將學(xué)會如何使用該腳本,自動化輸出CSV文件包含(Node Label;Step Name、Increment、Step Time,U1,U2)。</p><p>如果還需要按Increment提取每個增量下的變形后的節(jié)點(diǎn)坐標(biāo)的話,在提取變形量的基礎(chǔ)上,與初始坐標(biāo)進(jìn)行簡單的計算就可以求得坐標(biāo)。 (備注:該代碼只提取了x,y方向的變形量)</p><h2>1. 問題描述</h2><p>在工程仿真和分析領(lǐng)域,提取ABAQUS輸出數(shù)據(jù)庫(ODB)文件中的節(jié)點(diǎn)集變形量是一項常見任務(wù)。然而,手動提取這些數(shù)據(jù)是一項繁瑣且容易出錯的工作。因此,需要一種自動化的方法來批量提取指定步驟下按節(jié)點(diǎn)集組織的變形量數(shù)據(jù)。</p><h2>2. 實(shí)例展示</h2><p>假設(shè)我們有一個名為`example.odb`的ODB文件,其中包含名為`Step-x`的步驟和名為`Set-x`的節(jié)點(diǎn)集。運(yùn)行以上代碼后,腳本會自動將該步驟下節(jié)點(diǎn)集的變形量提取出來,并保存為`NodalDisplacement.csv`文件。
展開