许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  abaqus能否直接运行Python?Abaqus利用Python脚本建模实例

abaqus能否直接运行Python?Abaqus利用Python脚本建模实例

阅读数 15
点赞 0
article_banner

1)建模:代码如下:

from abaqus import *

#引入模块

from abaqusConstants import *

session.Viewport(name='Viewport: 1', origin=(0.0, 0.0),

width=359.549987792969,

height=234.613327026367)

#Viewport表示创建一个视图,是Abaqus的函数

session.viewports['Viewport: 1'].makeCurrent()

#这里的viewport则表示视图对象

session.viewports['Viewport: 1'].maximize()

from caeModules import *

from driverUtils import executeOnCaeStartup

executeOnCaeStartup()

session.viewports['Viewport:

1'].partDisplay.geometryOptions.setValues(

referenceRepresentation=ON)

Mdb()

#模型库

session.viewports['Viewport:

1'].setValues(displayedObject=None)

s =

mdb.models['Model-1'].ConstrainedSketch(name='__profile__',

sheetSize=200.0)

#创建草图窗口

g, v, d, c = s.geometry, s.vertices, s.dimensions,

s.constraints

s.setPrimaryObject(option=STANDALONE)

s.rectangle(point1=(-20.0, -10.0),

point2=(20.0, 10.0))

#创建矩形

s.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(5.0,

0.0)) #创建圆

p = mdb.models['Model-1'].Part(name='Part-1',

dimensionality=TWO_D_PLANAR,

type=DEFORMABLE_BODY)

p = mdb.models['Model-1'].parts['Part-1']

p.BaseShell(sketch=s)

s.unsetPrimaryObject()

p = mdb.models['Model-1'].parts['Part-1']

session.viewports['Viewport:

1'].setValues(displayedObject=p)

del

mdb.models['Model-1'].sketches['__profile__']

在Abaqus命令行窗口输入后窗口出现几何模型如图2.

图2 几何模型

(2)切割。代码如下:

p = mdb.models['Model-1'].parts['Part-1']

f = p.faces

pickedFaces = f.getSequenceFromMask(mask=('[#1 ]', ),

)

v1, e, d1 = p.vertices, p.edges, p.datums

p.PartitionFaceByShortestPath(faces=pickedFaces,

point1=p.InterestingPoint(

edge=e[3], rule=MIDDLE),

point2=p.InterestingPoint(edge=e[1], rule=MIDDLE))

p = mdb.models['Model-1'].parts['Part-1']

f = p.faces

pickedFaces = f.getSequenceFromMask(mask=('[#3 ]', ),

)

v2, e1, d2 = p.vertices, p.edges, p.datums

p.PartitionFaceByShortestPath(faces=pickedFaces,

point1=p.InterestingPoint(

edge=e1[9], rule=MIDDLE),

point2=p.InterestingPoint(edge=e1[2],

rule=MIDDLE))

输入后窗口为图3。

图3 切分

(3)材料属性。代码如下:

mdb.models['Model-1'].Material(name='Material-1')

mdb.models['Model-1'].materials['Material-1'].Elastic(table=((201000.0,

0.3),

))

mdb.models['Model-1'].HomogeneousSolidSection(name='Section-1',

material='Material-1',

thickness=1.0)

p = mdb.models['Model-1'].parts['Part-1']

f = p.faces

faces = f.getSequenceFromMask(mask=('[#f ]', ),

)

region = p.Set(faces=faces, name='Set-1')

p = mdb.models['Model-1'].parts['Part-1']

p.SectionAssignment(region=region, sectionName='Section-1',

offset=0.0,

offsetType=MIDDLE_SURFACE,

offsetField='',

thicknessAssignment=FROM_SECTION)

输入之后材料属性即设置完毕,主要使弹性模量和泊松比。

(4)建立组件。代码如下:

a = mdb.models['Model-1'].rootAssembly

session.viewports['Viewport:

1'].setValues(displayedObject=a)

session.viewports['Viewport:

1'].assemblyDisplay.setValues(

optimizationTasks=OFF,

geometricRestrictions=OFF, stopConditions=OFF)

a = mdb.models['Model-1'].rootAssembly

a.DatumCsysByDefault(CARTESIAN)

p = mdb.models['Model-1'].parts['Part-1']

a.Instance(name='Part-1-1', part=p,

dependent=ON)

(5)建立载荷步。代码如下:

mdb.models['Model-1'].StaticStep(name='Step-1',

previous='Initial')

session.viewports['Viewport:

1'].assemblyDisplay.setValues(step='Step-1')

(6)载荷与边界。代码如下:

a = mdb.models['Model-1'].rootAssembly

s1 = a.instances['Part-1-1'].edges

side1Edges1 = s1.getSequenceFromMask(mask=('[#1002 ]', ),

)

region = a.Surface(side1Edges=side1Edges1,

name='Surf-1')

mdb.models['Model-1'].Pressure(name='Load-1',

createStepName='Step-1',

region=region,

distributionType=UNIFORM, field='',

magnitude=-10.0,

amplitude=UNSET)

a = mdb.models['Model-1'].rootAssembly

e1 = a.instances['Part-1-1'].edges

edges1 = e1.getSequenceFromMask(mask=('[#2100 ]', ),

)

region = a.Set(edges=edges1, name='Set-1')

mdb.models['Model-1'].DisplacementBC(name='BC-1',

createStepName='Step-1',

region=region, u1=0.0,

u2=0.0, ur3=UNSET, amplitude=UNSET,

fixed=OFF,

distributionType=UNIFORM,

fieldName='', localCsys=None)

mdb.models['Model-1'].boundaryConditions['BC-1'].move('Step-1',

'Initial')

(7)划分网格。代码如下:

p = mdb.models['Model-1'].parts['Part-1']

session.viewports['Viewport:

1'].setValues(displayedObject=p)

session.viewports['Viewport:

1'].partDisplay.setValues(mesh=ON)

session.viewports['Viewport:

1'].partDisplay.meshOptions.setValues(

meshTechnique=ON)

session.viewports['Viewport:

1'].partDisplay.geometryOptions.setValues(

referenceRepresentation=OFF)

p = mdb.models['Model-1'].parts['Part-1']

e = p.edges

pickedEdges = e.getSequenceFromMask(mask=('[#8250 ]', ),

)

p.seedEdgeByNumber(edges=pickedEdges, number=12,

constraint=FINER)

p = mdb.models['Model-1'].parts['Part-1']

p.seedPart(size=2.0, deviationFactor=0.1,

minSizeFactor=0.1)

p = mdb.models['Model-1'].parts['Part-1']

p.seedPart(size=1.0, deviationFactor=0.1,

minSizeFactor=0.1)

p = mdb.models['Model-1'].parts['Part-1']

p.generateMesh()

完成之后如图4所示。

图4 网格

(8)创建Job求解。代码如下:

a3 = mdb.models['Model-1'].rootAssembly

a3.regenerate()

a = mdb.models['Model-1'].rootAssembly

session.viewports['Viewport:

1'].setValues(displayedObject=a)

mdb.Job(name='Job-1', model='Model-1', description='',

type=ANALYSIS,

atTime=None, waitMinutes=0,

waitHours=0, queue=None, memory=90,

memoryUnits=PERCENTAGE,

getMemoryFromAnalysis=True,

explicitPrecision=SINGLE,

nodalOutputPrecision=SINGLE, echoPrint=OFF,

modelPrint=OFF, contactPrint=OFF,

historyPrint=OFF, userSubroutine='',

scratch='',

multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)

mdb.jobs['Job-1'].submit(consistencyChecking=OFF)

全部执行完即可自动求解完成。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空