说明:以下总结,属于曹金凤老师在《Python语言在Abaqus中的应用》书中尚未总结的命令,或者本人认为好用的命令,因此加以积累而已。
#~~~~~~~~建模部分~~~~~~~~~
1 查询一个面的面积
启动CAE,载入你的model, 在下边命令行里输入:p=mdb.models['name'].parts['name']
s=p.faces.findAt([输入那个面上的一点坐标]);
s.getSize()
面积就显示出来了
p=mdb.models['Model-1'].parts['Part-1']
s=p.faces.findAt([3.535534,3.535534,0]);
s.getSize()
2 续行符
3 插入关键词的命令
mdb.models['MouseHole'].keywordBlock.insert(10,
"""
*initial conditions,type=pore pressure
mouseHole-1.all,1.0""")
这里的10是指插入的位置是第几个关键词,即第几个带*的行,包括 *End Assembly 的行(但黑色阴影的关键词除外)。
注意插入的关键词要顶格,不能有空格。
4 Set ( )
Set命令在python建模时要经常用到,对实体、surface、element等分组,方便加载、施加约束和单元生死等控制
5 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))
6 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')
Abaqus的编号其实是有规则的,后划分的单元编号最小,先划分的单元编号最大;这样我们就可以每次划分单元后都采用len命令计算一次单元数量,并用参数记录下来,这样我们就能计算出每部分单元的数量以及他的起始和终止编号。
根据elements = e[1:n1]、p.Set(elements=elements, name='Set-3')语句就可以把每部分单元设置成set,以后操作就很方便了。
6 全选可以用数组的形式完成
例如:
#用数组的形式可以选择整体
face2=myInstance.faces[:]
setFace=myAssembly.Set(
faces=face2,
name='all')
7 建立坐标系和激活坐标系
myAssembly.DatumCsysByThreePoints(
name='Datum csys-2',
coordSysType=CYLINDRICAL,
origin=(0.0, 0.0, 0.0),
point1=(1.0, 0.0, 0.0),
point2=(0.0, 1.0, 0.0))
a = mdb.models['MouseHole'].rootAssembly
a.features['Datum csys-2'].suppress()
a = mdb.models['MouseHole'].rootAssembly
a.features['Datum csys-2'].resume()
8 切割命令MakeSketchTransform
GUI操作默认是以所选择面的几何中心作为sketch的原点,为了与原来作图的远点对应,更好操作
可以设置 orign=(0.0,0.0,0.0)
9 找面号的“笨”办法
先打开录制宏命令>tools>partition,type=face,method=sketch,选择你想知道面号的面,done>随便画一条线,done!
>停止宏录制>打开宏文件。
会看到类似一条命令
t = p.MakeSketchTransform(sketchPlane=f1[1], sketchPlaneSide=SIDE1, origin=(
2.883562, 0.317808, 0.0))
f1[1]中,中括号里面的,就是所需要的面号
10 显示节点号和单元号
view>assembly disply option option>mesh,show node labels,show element labels
python 命令
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
nodeLabels=ON)
#~~~~~~~~后处理部分~~~~~~~~~
1 显示节点号
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
nodeLabels=ON)
https://blog.sciencenet.cn/blog-626917-622449.html
上一篇:
intel visual fortran 备忘下一篇:
"IntroductionToLiveLinkForMATLAB"帮助文档的翻译和个人看法