2019-1-30手把手教你怎么用AbaqusGUI二次开发攻略
2019年1月30日13:05:51
手把手教你怎么用Abaqus进行GUI二次开发攻略
1.前言:
最近研究了下GUI二次开发,做了如下几个插件,学到了一些东西特地就跟大家做个分享,其中插件注册到了顶部菜单栏,而不是plugin下面。接下来,循序渐进,带你ABAQUS二次开发从入门到‘放弃’教程
注:本文面向有一定ABAQUS基础的人员,下文中对ABAQUS的基本的,简单的操作,不作赘述,有问题,可以下方留言。
2.快速上手
本节目标:假设我们要生成一个的实体,自己给定构件名称长高宽,制作成插件:
- 启动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二次开发攻略相关推荐
- 手把手教你给 SSH 启用二次身份验证
目前来说,二次验证是比较常用的安全手段,通过设置二次验证,就可以有效的避免账户密码的泄露导致的安全问题.因为,每次登陆前都需要获取一次性验证码,如果没有验证码的话就无法成功登陆. 1.安装 PAM 模 ...
- 手把手教你写网站:Python WEB开发技术实战
摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...
- echarts formatter_手把手教你玩转echarts(二)折线图
茫茫人海中与你相遇 相信未来的你不会很差 作者:婷酱Yaaa 来源:https://juejin.im/post/5f0292d35188252e5a5dbed0 前言 哈喽,everybody,我又 ...
- 2019阿里云开年Hi购季域名与商标分会场全攻略!
2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...
- 2019阿里云开年Hi购季基础云产品分会场全攻略!...
2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...
- 从菜鸟到高手!全攻略,手把手教你把VS Code变成Python开发神器!
Visual Studio Code 是一款功能强大.可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一 下面我们将学习如何安装 Visual Studio ...
- 手把手教你使用更多的原生安卓开发app的框架frida API
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 蜡烛有心还惜别,替人垂泪到天明. ...
- pythonweb开发-手把手教你写网站:Python WEB开发技术实战
摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...
- 手把手教你C语言静态库的开发
前言 啥是静态库? 静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为"库"文件: 在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的 ...
最新文章
- 博士做机器视觉,我在华为当“网红”!
- WIP模块常用表结构
- 「AI科技」机器学习算法之K-means算法原理及缺点改进思路
- BTC 缓步推升,BCH 再拔头筹
- Zero Copy 简介
- Thymeleaf select 使用 和多select 级联选择
- linux c之判断字符串是不是以另一字符串开始或者结尾
- 前端学习(1331):mongoose第三方模块
- phalcon: Profiling分析 profilter / Plugin结合,dispatcher调度控制器 监听sql执行日志
- sqoop从hdfs上导出数据到MySQL报错:ClassNotFoundException:allclo
- 记一个java和php都能调用的http接口
- Java并发编程之volatile关键字
- MSDN Windows XP Professional x64 Edition with SP2 +VL简体中文语言包+序列号
- 台式电脑连不上wifi怎么办
- 邻接矩阵计算matlab计算,急求各位大神帮忙解决,下面这个邻接矩阵算出它的可达矩阵...
- 英语语法3-现在进行时
- csgo 简单发光透视
- Burp suite - Burp Clickbandit
- (理财九)保值账户如何投资理财实现5年内短期目标
- 缘何韩国能在流行文化的竞争中如此轻松地战胜日本?