首页/文章/ 详情

Python脚本——输出场输出数据

1年前浏览540

本次脚本将要打开指定数据库文件,并输出指定位置(set)的位移信息

编程思路:

  • 写注释行,尽量详细解释脚本语句,增强可移植性;
  • 导入相应模块;
  • 本次实例要输出场输出位移信息,必须访问分析步、帧;
  • 创建对象时,分步创建多个变量表示对象(推荐):
  • 创建变量表示odb对象,打开输出数据库;
  • 创建变量表示第一个分析步;
  • 创建变量表示第一个分析步的最后一帧;
  • 创建变量表示节点集;(本次案例节点集只有一个节点)
  • 创建变量表示访问第一个分析步最后一帧的位移U.

脚本源代码:

    #!/user/bin/python# -* - coding:UTF-8 -*-# 本脚本的功能是读取输出数据库 viewer_tutorial.odb中半球形冲头中心点的位移值# #导入odb数据库模块from odbAccess import *#打开viewer_tutorial.odb文件(放在工作目录下)odb = openOdb(path='viewer_tutorial.odb')#创建变量表示第1个分析步step1=odb.steps['Step-1']# 创建变量表示第1个分析步的最后一帧lastFrame = step1.frames[-1]# 创建变量表示半球冲头中心施加荷载的节点集 'PUNCH',它属于部件实例PART-1-1center = odb.rootAssembly.instances['PART-1-1'].nodeSets['PUNCH']# 创建变量表示第1个分析步最后一帧的位移Udisplacement = lastFrame.fieldOutputs['U']# 创建变量表示第1个分析步最后一帧节点集 Punch 的位移centerDisplacement = displacement.getSubset(region=center)# 输出节点集中每个节点的场输出结果(本例中,只包含一个节点)for v in centerDisplacement.values:    print 'Node label:', v.nodeLabel    print 'Displacement in X direction:', v.data[0]    print 'Displacement in Y direction:', v.data[1]    print 'Displacement: ', v.magnitude# 关闭输出数据库文件(很有必要)odb.close()

    23行用到了getSubset方法,其作用是获取集 合区域

    操作脚本如下

    结果如下:

    Node label: 1000

    Displacement in X direction: -7.891572e-34

    Displacement in Y direction: -76.45553

    Displacement:  76.4555282593

    参考书籍:[1]曹金凤, 王旭春, 孔亮. Python语言在Abaqus中的应用[M]. 机械工业出版社, 2011.

       

    E N D

    来源:易木木响叮当

    Abaquspython
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-05-31
    最近编辑:1年前
    易木木响叮当
    硕士 有限元爱好者
    获赞 184粉丝 165文章 272课程 2
    点赞
    收藏
    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈