例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。
在草图Sketch中画线:
s = mdb.models[' block '].ConstrainedSketch(name='grid',
sheetSize=3.0)
s.Line(point1=(-1.275, 0.0), point2=(-1.125, 0.0))
s.Line(point1=(1.125, 0.0), point2=(1.275, 0.0))
执行任何一条命令都必须按照结构树的格式进行操作。我们所看到的python脚本繁杂的语句就是这样形成的。这样大量的命令不能在短时间内掌握,我们只需要根据自己的需要边建立模型边学习就可以了。
a = mdb.models['Model-1'].rootAssembly
s = a.instances['Mount-1'].edges
side1Edges = s.findAt(((0.0475, 0.0, 0.0), ))
以上三行与下面的句子是等同的,即把findat找到的edges赋值给side1Edges。分开来写简单明了,大大缩短了语句的长度。
side1Edges = mdb.models['Model-1'].rootAssembly. instances['Mount-1'].edges. findAt(((0.0475, 0.0, 0.0), ))
a.Surface(side1Edges=side1Edges, name='Bottom'),这行语句设置side1Edges所对应的edge为名称'Bottom'的surface的set。
#===========================================================
3.模型参数分析技巧
Python脚本建模的好处就是可以进行参数分析,即改变我们要分析模型的几何尺寸、材料属性等可变参数,对数值模型进行求解计算,从而对所分析的对象有更全面的了解。
1.对自己要进行参数分析的参数赋值:如几何尺寸或材料属性等a1=20,b1=30,c1=40,命名要符合python规则。
2.cae与Python混合建模,不会的命令就利用cae自动生成,用Python reader记录命令然后进行修改,可以弥补不熟悉Python的缺点;
3.逐句修改Python脚本,可以去掉一些不必要的语句并在cae中逐句进行验证。
#===========================================================
4. 几个命令的体会
4.1 Set ( )
Set命令在python建模时要经常用到,对实体、surface、element等分组,方便加载、施加约束和单元生死等控制
4.2 Findat ( )
对cell、edge、face、vertice进行查找,括号中参数为实体坐标
p = mdb.models['Model-1'].parts['Mount']
f = p.faces
faces = f.findAt(((0.042303, 0.006937, 0.0), ))
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions,
elemTypes=(elemType1, elemType2))
4.3 Len ( )
利用len命令可以实现对单元选取
p = mdb.models['precast culvert'].parts['soil']
e = p.elements
len(e)
n1=len(e)
elements = e[1:n1] #单元数存放在e [ ]的一维数组里
p.Set(elements=elements, name='Set-3')
对单元进行编组set,可以进行生死单元的控制,我摸索了好久才想到这个办法,目前只在二维模型应用过,三维也应该没问题。Abaqus没有办法对单元编号进行编号控制,也没有像ansys那样有效的选择命令,怎样选择abaqus的单元就是很头疼的问题,我要做路堤的分层回填模拟,手动选取单元根本就没有可能。Abaqus的编号其实是有规则的,后划分的单元编号最小,先划分的单元编号最大;这样我们就可以每次划分单元后都采用len命令计算一次单元数量,并用参数记录下来,这样我们就能计算出每部分单元的数量以及他的起始和终止编号。根据elements = e[1:n1]、p.Set(elements=elements, name='Set-3')语句就可以把每部分单元设置成set,以后操作就很方便了。
#===========================================================
5. 一个Ab