2019-1-30手把手教你怎么用AbaqusGUI二次开发攻略


2019年1月30日13:05:51

手把手教你怎么用Abaqus进行GUI二次开发攻略

1.前言:

最近研究了下GUI二次开发,做了如下几个插件,学到了一些东西特地就跟大家做个分享,其中插件注册到了顶部菜单栏,而不是plugin下面。接下来,循序渐进,带你ABAQUS二次开发从入门到‘放弃’教程

注:本文面向有一定ABAQUS基础的人员,下文中对ABAQUS的基本的,简单的操作,不作赘述,有问题,可以下方留言。
在这里插入图片描述

2.快速上手

本节目标:假设我们要生成一个的实体,自己给定构件名称长高宽,制作成插件:

  1. 启动ABAQUS软件,注意观察在ABAQUS的工作目录内有一个名为“abaqus.rpy”的文件将会生成,建议采用notepad++ 或者editplus软件打开,建议采用notepad++,因为是免费,不需要受到侵权困扰,记住,不要用电脑自带的文本编辑器打开!!!网上有很多盛传的ABAQUSreader等工具,也可以采用,但本人比较懒,满足需求就行,懒得折腾。
    在这里插入图片描述
    不知道自己工作目录在哪里的小伙伴,按照下图查找

在这里插入图片描述

打开文本后,发现如下代码,好,我们暂时不用管他

# `-*- coding: mbcs -*-`

`#`

# `Abaqus/CAE Release 6.14-4 replay file`

# `Internal Version: 2015_06_12-04.41.13 135079`

# `Run by yanguowei on Wed Jan 30 12:54:57 2019`

`#`

# `from driverUtils import executeOnCaeGraphicsStartup`

# `executeOnCaeGraphicsStartup()`

`#: Executing "onCaeGraphicsStartup()" in the site directory ...`
`**from abaqus import ***`
`**from abaqusConstants import** *`**
`session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=207.385406494141,` 
    `height=31.0)`
`session.viewports['Viewport: 1'].makeCurrent()`
`session.viewports['Viewport: 1'].maximize()`
**`from caeModules import *`
`from driverUtils import executeOnCaeStartup`**
`executeOnCaeStartup()`

2.在ABAQUS界面生成 10mm × 20mm × 60mm 的长方体,首先创建一个 10 × 20的草图,然后拉伸60mm,名称为默认“Part-1”,然后回到notedpad文本,出现如下
在这里插入图片描述
点“是”

#: The model "Model-1" has been created.
session.viewports['Viewport: 1'].setValues(displayedObject=None)
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)
session.viewports['Viewport: 1'].view.setValues(nearPlane=168.36, 
    farPlane=208.764, width=139.755, height=65.8, cameraPosition=(-5.77065, 
    3.49905, 188.562), cameraTarget=(-5.77065, 3.49905, 0))
s.rectangle(point1=(0.0, 0.0), point2=(10.0, 20.0))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D, 
    type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseSolidExtrude(sketch=s, depth=60.0)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']

好,重头戏来了,大家寻找

#: A new model database has been created.
#: The model "Model-1" has been created.
session.viewports['Viewport: 1'].setValues(displayedObject=None)
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)
session.viewports['Viewport: 1'].view.setValues(nearPlane=168.36, 
    farPlane=208.764, width=139.755, height=65.8, cameraPosition=(-5.77065, 
    3.49905, 188.562), cameraTarget=(-5.77065, 3.49905, 0))
s.rectangle(point1=(0.0, 0.0), point2=(10.0, 20.0))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D, 
    type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseSolidExtrude(sketch=s, depth=60.0)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']

我们容易找到以下三行代码

s.rectangle(point1=(0.0, 0.0), point2=(10.0, 20.0))

******************分割符********************
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D, 
    type=DEFORMABLE_BODY)

 ******************分割符********************
p.BaseSolidExtrude(sketch=s, depth=60.0)

容易看到,分别对应4个参数值,分别对应我们刚刚建立模型时的,10, 20, 60, part-1,好了,我们另起新建一个Python脚本,初学者建议点击下文传送门(若有版权问题联系本人删除文章)
https://blog.csdn.net/pdcfighting/article/details/80297499
老鸟忽略~~~~
新建一个‘creat_part.py’文本,注意:不支持中文!!!
首先把下面两行敲进去,

from abaqus import *
from abaqusConstants import *

创建任何一个插件都必须有上面两行,切记
继续敲下面的

def creat_part(name,length, width, height):

分别对应构件名称,长、宽、高
接下来分为两个方案
如果你是初学者:
那么把刚刚的notepad文本中,全部复制----》粘贴,并且保证每行代码的前面有4个空格(Python基础语法是按照缩进来判断格式的,这里不赘述)

from abaqus import *
from abaqusConstants import *

def creat_part(name,length, width, height):

    # -*- coding: mbcs -*-
    #
    # Abaqus/CAE Release 6.14-4 replay file
    # Internal Version: 2015_06_12-04.41.13 135079
    # Run by yanguowei on Wed Jan 30 12:54:57 2019
    #

    # from driverUtils import executeOnCaeGraphicsStartup
    # executeOnCaeGraphicsStartup()
    #: Executing "onCaeGraphicsStartup()" in the site directory ...
    from abaqus import *
    from abaqusConstants import *
    session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=207.385406494141,
                     height=31.0)
    session.viewports['Viewport: 1'].makeCurrent()
    session.viewports['Viewport: 1'].maximize()
    from caeModules import *
    from driverUtils import executeOnCaeStartup
    executeOnCaeStartup()
    Mdb()
    #: A new model database has been created.
    #: The model "Model-1" has been created.
    session.viewports['Viewport: 1'].setValues(displayedObject=None)
    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)
    session.viewports['Viewport: 1'].view.setValues(nearPlane=168.36,
                                                    farPlane=208.764, width=139.755, height=65.8,
                                                    cameraPosition=(-5.77065,
                                                                    3.49905, 188.562),
                                                    cameraTarget=(-5.77065, 3.49905, 0))
    s.rectangle(point1=(0.0, 0.0), point2=(10.0, 20.0))
    p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,
                                   type=DEFORMABLE_BODY)
    p = mdb.models['Model-1'].parts['Part-1']
    p.BaseSolidExtrude(sketch=s, depth=60.0)
    s.unsetPrimaryObject()
    p = mdb.models['Model-1'].parts['Part-1']
    session.viewports['Viewport: 1'].setValues(displayedObject=p)
    del mdb.models['Model-1'].sketches['__profile__']

好,接下来将def creat_part(name,length, width, height):下面的
from abaqus import *
from abaqusConstants import *
两行代码删除,(当然不删也可以,这里只是简略起见)
接下来,对代码进行修改

    s.rectangle(point1=(0.0, 0.0), point2=(10.0, 20.0))`enter code here`

修改为:

    s.rectangle(point1=(0.0, 0.0), point2=(length, width))

将文本中的’Part-1’ 替换为 name,注意 name前后没有引号
p.BaseSolidExtrude(sketch=s, depth=60.0)
修改为:
p.BaseSolidExtrude(sketch=s, depth=height)

好了,保存这个.py文本,再次打开ABAQUS软件,

切换到“GUI”标签页
在这里插入图片描述

依次按照下图操作:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,插件开发完毕,我们做个测试,比如输入
在这里插入图片描述
随后点击“ok”或者“apply”,
在这里插入图片描述
随后我们可以看到出来这么个东西,大家自行测量长度,这里不赘述,
最后一步啦~~~~~~~~~别方
在这里插入图片描述
我们在这里输入
在这里插入图片描述

其他选项下一篇文章讲述
点击“OK”
好了,关闭ABAQUS软件。之后再打开
在这里插入图片描述
双击,一个小小小的插件出来了~~~~
在这里插入图片描述
大家随意使用吧~!!!
如果看官觉得我的文章写的还算不错,还请给个小捐赠

上述插件已经上传到我的github仓库
https://github.com/yechong316/ABAQUS-plugin.git

猜你喜欢

转载自blog.csdn.net/sinat_42856437/article/details/86703009