加载中…
个人资料
拼命的跑1990
拼命的跑1990
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,161
  • 关注人气:57
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在Abaqus中Python通过findAt方法定位建立region区域的方法汇总

(2015-04-07 14:33:14)
标签:

python

分类: 程序

Abaqus脚本接口中许多命令都包含region参数,包括:

1)Load命令:使用region指定施加荷载的区域。例如集中力施加在顶点上,压力施加在边或面上。

2)Mesh命令:使用region指定单元的类型、网格种子的定义区域。

3)Set命令:使用region参数指定集合的区域。例如:节点集,单元集等。

4)Coupling命令:使用region参数指定需要耦合的区域或者参考点,节点等。

 

如果在Abaqus/CAE中,Abaqus将自动为模型的特征进行编号,例如节点编号,单元编号,表面中各条边的编号,参考点的编号。但在脚本中无法获知这些模型特征的ID,而且对某个模型特征编辑后ID将发生变化,新旧版本ID不同不兼容。

 

鉴于定位寻找模型特征(顶点(vertex)、边(edge)、面(face)、体(cell)、参考点(referencePoint))的重要性——可以用来施加荷载边界条件,划分网格、建立集合、建立耦合,有必要通过坐标的方法寻找定位这些模型特征!

 

findAt方法就可以达到这一点。用法参考《Abaqus Scripting Reference Manual》。

 参考:7.2 CellArray Object、7.4EdgeArray Object、7.6FaceArray Object、7.16VertexArray Object。

 虽然并没有ReferencePointsArray Object,而且ReferencePoint Object也没有findAt方法,但是Region要求的是一个序列类型,因此需要从referencePoints库(《Abaqus Scripting User’s Manual》5.3.3节)中取出ReferencePoint对象,可以这样操作:

a.ReferencePoint(point=(f1Mid_tr[0][0],f1Mid_tr[0][1],f1Mid_tr[0][2]))#建立参考点此时是一个feature对象

#####解释:The ReferencePoint object has no direct constructor; it is created when a Feature object is created. TheReferencePoint method creates a Feature object that creates a ReferencePoint object.

###########################################################################

r1 = a.referencePoints###建立ReferencePoint object 并存入库中
refPoints1=r1.findAt((f1Mid_tr[0][0],f1Mid_tr[0][1],f1Mid_tr[0][2]),)###取出库中的对象
region1=(refPoints1,)###建立区域

寻找模型特征最重要的要明白需要的模型特征的路径!

例如,Face这一模型特征路径如下,可以是部件、实例、集合等,在需要的路径下调用findAt方法定位关心的魔性特征。例如,vertices.findAt、faces.findAt、edges.findAt、referencePoints.findAt、cells.findAt

Vertex路径:

http://s13/mw690/001sPmSszy6Rjc1eGLO9c&690

Edge路径:

 http://s11/mw690/001sPmSszy6Rjc5Hq2uba&690

Face路径:

http://s16/mw690/001sPmSszy6Rjbasu8n1f&690


Cell路径:

http://s3/mw690/001sPmSszy6Rjc8fGSua2&690

ReferencePoint路径:

http://s5/mw690/001sPmSszy6Rjcb6wRea4&690
findAt命令经返回相应的模型特征的对象或者对象的序列,例如An Edge object or a s equence o f Edge o bjects.

如果返回的是一个对象,那么需要region=((返回的那个对象),)来建立一个序列赋值给region。

如果返回的是对象的序列则不需要。

在rpy文件显示出findAt命令,按如下方法:

session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)
在命令行中直接输入上述语句
结果.rpy文件中的findAt语句就会以坐标形式出现
session.graphicsOptions.setValues(backgroundStyle=SOLID,backgroundColor='#000000', translucencyMode=2)
在命令行中直接输入上述语句
背景颜色就会变成黑色

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有