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 executeOnCaeStartupexecuteOnCaeStartup()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.constraintss.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

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

  1. 手把手教你给 SSH 启用二次身份验证

    目前来说,二次验证是比较常用的安全手段,通过设置二次验证,就可以有效的避免账户密码的泄露导致的安全问题.因为,每次登陆前都需要获取一次性验证码,如果没有验证码的话就无法成功登陆. 1.安装 PAM 模 ...

  2. 手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  3. echarts formatter_手把手教你玩转echarts(二)折线图

    茫茫人海中与你相遇 相信未来的你不会很差 作者:婷酱Yaaa 来源:https://juejin.im/post/5f0292d35188252e5a5dbed0 前言 哈喽,everybody,我又 ...

  4. 2019阿里云开年Hi购季域名与商标分会场全攻略!

    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...

  5. 2019阿里云开年Hi购季基础云产品分会场全攻略!...

    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...

  6. 从菜鸟到高手!全攻略,手把手教你把VS Code变成Python开发神器!

    Visual Studio Code 是一款功能强大.可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一 下面我们将学习如何安装 Visual Studio ...

  7. 手把手教你使用更多的原生安卓开发app的框架frida API

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 蜡烛有心还惜别,替人垂泪到天明. ...

  8. pythonweb开发-手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  9. 手把手教你C语言静态库的开发

    前言 啥是静态库? 静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为"库"文件: 在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的 ...

最新文章

  1. 博士做机器视觉,我在华为当“网红”!
  2. WIP模块常用表结构
  3. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路
  4. BTC 缓步推升,BCH 再拔头筹
  5. Zero Copy 简介
  6. Thymeleaf select 使用 和多select 级联选择
  7. linux c之判断字符串是不是以另一字符串开始或者结尾
  8. 前端学习(1331):mongoose第三方模块
  9. phalcon: Profiling分析 profilter / Plugin结合,dispatcher调度控制器 监听sql执行日志
  10. sqoop从hdfs上导出数据到MySQL报错:ClassNotFoundException:allclo
  11. 记一个java和php都能调用的http接口
  12. Java并发编程之volatile关键字
  13. MSDN Windows XP Professional x64 Edition with SP2 +VL简体中文语言包+序列号
  14. 台式电脑连不上wifi怎么办
  15. 邻接矩阵计算matlab计算,急求各位大神帮忙解决,下面这个邻接矩阵算出它的可达矩阵...
  16. 英语语法3-现在进行时
  17. csgo 简单发光透视
  18. Burp suite - Burp Clickbandit
  19. (理财九)保值账户如何投资理财实现5年内短期目标
  20. 缘何韩国能在流行文化的竞争中如此轻松地战胜日本?

热门文章

  1. 关于IdeaVim插件 导致 复制按键不可用
  2. Qt4.8.6 ARM(DM3730)中文显示,文泉驿正黑
  3. 教你如何用手机连接电脑上网
  4. OpenCV(四)——图像特征与目标检测
  5. 大数据时代的伦理道德
  6. Mybatis查询的时间数据中包含T
  7. 公司内服务器微信报警怎么做,一种用企业微信实现信息报警的装置制造方法及图纸...
  8. 计算机本科毕业论文外审严格吗,论文外审没过的几大原因
  9. 我的面试经历3-OPPO
  10. 数据库--商品 表的设计