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.12Abaqus/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)了。


登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

7
2
9