相信很多使用abaqus的研究生学子们,会遇到这样的问题:所要建立模型太过于复杂,每次进行建模时,都需要花上大量的时间在建模上面。那么怎么解决这个问题呢?
Python是一种很便利的语言,我们采用该语言建立脚本,再配合abaqus自带的RSG系统,可以设计操作界面,只需输入相应参数,即可快速建模。把花在建模上时间用在其他研究上,岂不是更有效率?
1.建立建模的脚本语言
我们可以利用“宏管理”,来记录建模的过程,然后修改其相对应的代码,针对需要自定义的参数设置自变量即可。(以最简单的立方体建模为例,下面是经过修改的代码)
# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__
def revit(partname,k1,k2,k3):
import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import optimization
import step
import interaction
import load
import mesh
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
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.ConstructionLine(point1=(-15.0, 0.0), point2=(18.75, 0.0))
s.HorizontalConstraint(entity=g[2], addUndoState=False)
s.ConstructionLine(point1=(0.0, 20.0), point2=(0.0, -18.75))
s.VerticalConstraint(entity=g[3], addUndoState=False)
s.rectangle(point1=(-15.0, 15.0), point2=(20.0, -20.0))
s.ObliqueDimension(vertex1=v[3], vertex2=v[0], textPoint=(-5.59237670898438,
20.2889671325684), value=50.0)
s.ObliqueDimension(vertex1=v[2], vertex2=v[3], textPoint=(27.7161102294922,
5.3327522277832), value=40.0)
s.SymmetryConstraint(entity1=v[0], entity2=v[3], symmetryAxis=g[3])
s.SymmetryConstraint(entity1=v[0], entity2=v[1], symmetryAxis=g[2])
s=mdb.models['Model-1'].sketches['__profile__']
s.Parameter(name='a1', path='dimensions[0]', expression=k1)
s.Parameter(name='a2', path='dimensions[1]', expression=k2,
previousParameter='a1')
p = mdb.models['Model-1'].Part(name=partname, dimensionality=THREE_D,
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts[partname]
p.BaseSolidExtrude(sketch=s, depth=k3)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts[partname]
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
3.插件使用