Abaqus低版本打開高版本的一般方法
我們知道,Abaqus CAE在進行前處理時會生成jnl文件,這是一個日志文件,包含用于復(fù)制已存儲模型數(shù)據(jù)庫的ABAQUS/CAE命令,因此我們可以利用jnl文件實現(xiàn)低版本打開高版本的方法。當(dāng)然,如果你對Pyphon比較熟悉,對于理解jnl是很有幫助的,但這里不作為本文的重點,這里將主要突出強調(diào)如何實現(xiàn)結(jié)果。
以一個比較簡單且具有代表性的模型為例,通過6.14版本Abaqus/CAE導(dǎo)入外部中性文件VersionSwitch.STEP ,但需要記住所導(dǎo)入文件夾的位置,然后進行分割、賦予材質(zhì)、分網(wǎng)、工況等設(shè)置后保存,這樣就會在工作目錄中找到你所保存的.CAE和.JNL文件。
用記事本打開原.jnl文件并進行編輯,并找到其中所有標(biāo)記為紅色加粗的部分并刪除。其中的from optimization import *一般在.jnl的開頭部分,比較容易找到;而localCsys=None對于大型模型一般比較難找,可以通過記事本自帶的“查找”功能實現(xiàn),但是如果你細心觀察,會發(fā)現(xiàn)它其實是在對模型定義邊界條件的部分;而最后需要刪除的就是文件末尾的部分,只要找到mdb.Job字樣即可,如果細心觀察,會發(fā)現(xiàn)它其實是對求解任務(wù)的相關(guān)設(shè)置。
另外找到其中藍色加粗的部分,并確認(rèn)外部中性文件VersionSwitch.STEP的路徑是否正確,當(dāng)然你也可以編輯藍色部分以變更VersionSwitch.STEP所在的外部文件夾路徑。特別注意,如果是直接用Abaqus/CAE直接建模就不會出現(xiàn)藍色部分的字樣。
# -*- coding: mbcs -*-
from part import *
from material import *
from section import *
from optimization import *
from assembly import *
from step import *
from interaction import *
from load import *
from mesh import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *
mdb.openStep('D:/05-AbaqusTmp/a5-Abaqus_3D_Model/VersionSwitch.STEP',
scaleFromFile=OFF)
mdb.models['Model-1'].PartFromGeometryFile(combine=False,dimensionality=
THREE_D, geometryFile=mdb.acis, name='VersionSwitch',type=DEFORMABLE_BODY)
mdb.models.changeKey(fromName='Model-1', toName='SteelPart')
mdb.models['SteelPart'].Material(name='steel_plastic')
mdb.models['SteelPart'].materials['steel_plastic'].Elastic(table=((200000.0,
0.27), ))
mdb.models['SteelPart'].materials['steel_plastic'].Density(table=((7.85e-09,),
))
mdb.models['SteelPart'].materials['steel_plastic'].Plastic(table=((418.0,0.0),
(500.0, 0.01581), (605.0, 0.02983), (695.0, 0.056), (780.0, 0.095),(829.0,
0.15), (882.0, 0.25), (908.0, 0.35), (921.0, 0.45), (932.0, 0.55),(955.0,
0.65), (988.0, 0.75), (1040.0, 0.85)))
mdb.models['SteelPart'].materials['steel_plastic'].Expansion(table=((1.35e-05,
),))
mdb.models['SteelPart'].HomogeneousSolidSection(material='steel_plastic',name=
'solid_steel_plastic', thickness=None)
mdb.models['SteelPart'].parts['VersionSwitch'].SectionAssignment(region=(
mdb.models['SteelPart'].parts['VersionSwitch'].cells, ), sectionName=
'solid_steel_plastic')
mdb.models['SteelPart'].rootAssembly.DatumCsysByDefault(CARTESIAN)
mdb.models['SteelPart'].rootAssembly.Instance(dependent=ON,name=
'VersionSwitch-1', part=mdb.models['SteelPart'].parts['VersionSwitch'])
mdb.models['SteelPart'].StaticStep(initialInc=0.01,name='Step-1', nlgeom=ON,
previous='Initial')
mdb.models['SteelPart'].EncastreBC(createStepName='Initial', localCsys=None,
name='Fixed', region=Region(
faces=mdb.models['SteelPart'].rootAssembly.instances['VersionSwitch-1'].faces.getSequenceFromMask(
mask=('[#20 ]', ), )))
mdb.models['SteelPart'].SurfaceTraction(createStepName='Step-1',
directionVector=(
mdb.models['SteelPart'].rootAssembly.instances['VersionSwitch-1'].vertices[5],
mdb.models['SteelPart'].rootAssembly.instances['VersionSwitch-1'].vertices[2])
,distributionType=UNIFORM, field='', localCsys=None, magnitude=500.0,
name='Load-1', region=Region(
side1Faces=mdb.models['SteelPart'].rootAssembly.instances['VersionSwitch-1'].faces.getSequenceFromMask(
mask=('[#2 ]', ), )), traction=GENERAL)
mdb.models['SteelPart'].parts['VersionSwitch'].seedPart(deviationFactor=0.1,
minSizeFactor=0.1, size=2.0)
mdb.models['SteelPart'].parts['VersionSwitch'].generateMesh()
mdb.models['SteelPart'].rootAssembly.regenerate()
mdb.Job(atTime=None,contactPrint=OFF, description='', echoPrint=OFF,
explicitPrecision=SINGLE, getMemoryFromAnalysis=True, historyPrint=OFF,
memory=90, memoryUnits=PERCENTAGE, model='SteelPart', modelPrint=OFF,
multiprocessingMode=DEFAULT, name='Job1-VersionSwitch-Test',
nodalOutputPrecision=SINGLE, numCpus=4, numDomains=4, numGPUs=0,queue=None
, resultsFormat=ODB, scratch='', type=ANALYSIS, userSubroutine='',
waitHours=0, waitMinutes=0)
根據(jù)上述操作完了后另存該.jnl文件,并復(fù)制已經(jīng)編輯過后的.jnl內(nèi)容。打開低版本如6.12的Abaqus/CAE,找到分析樹下側(cè)即左下角的Kernal Command,待彈出 >>> 后粘貼剛剛所復(fù)制的.jnl內(nèi)容并回車確認(rèn),會發(fā)現(xiàn)很快就打開了高版本的cae模型。低版本打開后可能需要補充部分工況等參數(shù),在此不再贅述。
此方法大部分情況下都是沒有問題的,但對于部分復(fù)雜模型,可能存在錯誤,使用者可以依據(jù)錯誤提示進行.jnl編輯再實現(xiàn),若對Python比較熟悉的情況下將能更好的實現(xiàn)目標(biāo)。如果最終實在無法成功,那就只能通過.inp導(dǎo)入實現(xiàn)了。
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















