许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Abaqus Python编程实例

Abaqus Python编程实例

阅读数 5
点赞 0
article_banner

学习了一段时间的Abaqus python 脚本,给自己出两道题练习一下。先说一下,学习资料,主要是学习的是曹金凤老师的《Python语言在Abaqus中的应用》,如果有一定基础,需要更多实例练习可以参考江丙云老师的《ABAQUS Python二次开发攻略》。

题目一:

带孔方板拉伸,逐渐加密孔边网格,孔边最大Mises应力,会相应变化,当最大Mises应力变化不大时,输出相应网格密度(孔边的种子个数)。

第一步,录制 ,建立模型

启动ABAQUS/CAE,[File]–>[Macro Manage]–>creat–>continue

操作CAE截面,Create Part–> 2D Planar–>continue

为了分割网格时方便,切分部件

创建材料–>截面–>赋给部件–>装配–>静态分析步–>位移约束和位移加载

设置种子,为分割网格准备

关闭CAE,不要保持,在工作目录下,找到abaqusMacros.py,复制并重命名为’PlateHole-Op.py’

打开’PlateHole-Op.py’,将第7行(在附近找就行,版本不同,行号可能不同)的def Macro1():改为·def PlateHole(meshNumber):,meshNumber为孔边网格的种子数。将第120行附近的

pickedEdges = e1.getSequenceFromMask(mask=('[#3102 ]', ), )
a.seedEdgeByNumber(edges=pickedEdges, number=2, constraint=FINER)
elemType1 = mesh.ElemType(elemCode=CPS4R, elemLibrary=STANDARD, 
        secondOrderAccuracy=OFF, hourglassControl=DEFAULT, 
        distortionControl=DEFAULT)
javascript
  • 1
  • 2
  • 3
  • 4
  • 5

改为

a.seedEdgeByNumber(edges=pickedEdges, number=meshNumber, constraint=FINER)
javascript
  • 1

反复调用时,可以不断修改孔边网格密度。

第二步,提交作业

再出打开Abaqus/cae,运行录制好的宏,并提交作业,等计算完成后,不必保存直接关闭Abaqus/cae,工作目录下找到abaqus.rpy,修改后缀为.py直接打开,删除运行宏的代码后,把剩余代码,复制到’PlateHole-Op.py’中,在def PlateHole(meshNamber):之后。

第三步,提取最大Mises应力

odb=session.openOdb(jobName+'.odb')
frame1=odb.steps['Step-1'].frames[-1]
stress1=frame1.fieldOutputs['S']
maxValue=0
for stressValue in stress1.values:
    if (stressValue.mises > maxValue):
        maxValue=stressValue.mises
        maxNodel=stressValue.elementLabel
    
print'meshNumber:%d'%meshNumber
print 'maxValue:%f'%maxValue
print 'maxNodel:%d'%maxNodel
javascript
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

完整代码以及运算结果

# -*- coding: mbcs -*-
#
# Abaqus/CAE Release 2020 replay file
# Internal Version: 2019_09_14-01.49.31 163176
# Run by DELL on Fri Feb 26 17:34:05 2021
#

# from driverUtils import executeOnCaeGraphicsStartup
# executeOnCaeGraphicsStartup()
#: Executing "onCaeGraphicsStartup()" in the site directory ...
from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup
import odbAccess
import visualization

# 创建模型
def PlateHole(meshNumber):
    import section
    import regionToolset
    import displayGroupMdbToolset as dgm
    import part
    import material
    import assembly
    import step
    import interaction
    import load
    import mesh
    import optimization
    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.rectangle(point1=(-80.0, 30.0), point2=(80.0, -30.0))
    s.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(5.0, 0.0))
    p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=TWO_D_PLANAR, 
        type=DEFORMABLE_BODY)
    p = mdb.models['Model-1'].parts['Part-1']
    p.BaseShell(sketch=s)
    s.unsetPrimaryObject()
    p = mdb.models['Model-1'].parts['Part-1']
    session.viewports['Viewport: 1'].setValues(displayedObject=p)
    del mdb.models['Model-1'].sketches['__profile__']
    p = mdb.models['Model-1'].parts['Part-1']
    f = p.faces
    pickedFaces = f.getSequenceFromMask(mask=('[#1 ]', ), )
    v1, e, d1 = p.vertices, p.edges, p.datums
    p.PartitionFaceByShortestPath(faces=pickedFaces, point1=p.InterestingPoint(
        edge=e[2], rule=MIDDLE), point2=p.InterestingPoint(edge=e[4], 
        rule=MIDDLE))
    p = mdb.mode
javascript
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空