ABAQUS二次开发之数据验证姐妹篇

1      错误提示灯使用理论

上节主要介绍了如何在最短时间,完成一个数据验证的方法,那么本篇就其技术原理进行讲解。

针对ABAQUS插件而言,他的文件组成形式如下表所示:

表 1 文件功能说明

文件类型

文件功能

Kernel

接收用户在GUI界面输入的参数,在软件后台完成相应操作

Plugin

将每个窗口与内核文件每个参数进行一一绑定,并且完成该插件的注册。(插件不注册将无法使用!!!)

DB

定义GUI界面的窗口类型,大小,数据类型,例如文本输入框、选择框、检查框等等

首先来看kernel文件,代码如下:

1.png

ABAQUS二次开发之数据验证姐妹篇的图2

本文件的功能是接收输入的浮点数,后台自动创建一个名为“composite”的材料,并且它的密度是 num,再看plugin文件

2.png

ABAQUS二次开发之数据验证姐妹篇的图4

首先在从AFXForm这个类生成一个子类,在定义构造函数的时候,需要定义一个主程序,该cmd的功能是将kernel文件中的函数参数导入,便于kernel文件与注册文件进行数据交互。

        self.cmd = AFXGuiCommand(mode=self, method='warning',

            objectName='warning', registerQuery=False)

本函数的第2,3个参数,method和objectName,即为kernel函数的文件名称和接收参数的函数名,注意,kernel文件可能有多个函数,故此处选择函数需注意,否则内核文件将无法找到相关参数。

再看下述代码:

               self.numKw = AFXFloatKeyword(self.cmd, 'num', True)

假设在kernel文件中的函数参数是“XXX”,则此处默认为

               self.XXXKw = AFXFloatKeyword(self.cmd, 'XXX', True)

当然,你也可以将self.XXXKw替换为任意一个你想要的参数,此处只不过为了便于阅读代码所致,后面有一个函数AFXFloatKeyword,我们查看一下帮助文档的说明

3.png

ABAQUS二次开发之数据验证姐妹篇的图6

上述表格翻译成人话就是下面这个:

参数

类型

命令

主程序

名称

参数明细

是否为必选参数

True   或者 False

默认值

插件启动时,GUI界面默认显示的数值

精度

默认即可

 

4.png

本行代码主要是导入窗体定义文件

5.png

ABAQUS二次开发之数据验证姐妹篇的图9

接下来回到我们的重点函数----doCustomChecks

self.numKw.getValue()中,self.numKw特指在上文代码定义的功能,getValue的功能是返回该框的默认值,若当前窗体的为空白时返回None!这样达到了获取当前框的数值问题,根据与预先设定的值大小判断,

继续看下面的方法------------- showAFXErrorDialog

这是帮助文档中,关于showAFXErrorDialog的内容,

Argument

Type

Default

Description

owner

FXWindow


Window   over which the dialog box is to be centered.

message

String


Text   to be displayed in the dialog box.

tgt

FXObject

None

Message   target.

sel

Int

0

Message   ID.

第一个参数即为当前窗体的定义,默认处理即可,第二个参数为你想要在GUI界面弹出对话框的内容,这里大家根据自己需求随意定制即可,后面2个参数等待后续文章撰写,此处暂且不表。

2      警告、信息提示灯的使用方法

刚刚上文讲到,输入错误数据的演示方法,那么还有另外一种现实案例,例如用户想输入钢材的材料的弹性模量,一般来说钢材的弹性模量在2e5~2.35e5之间(此处数据仅供说明情况,不深究具体数据正确与否),那么用户如果多或者少输入了一位,变成2e6或者2e4,或是因为误操作,输入8e5,如果用户在错误信息提示方法中规定该处数值的范围的确可以规避此问题,那么如果用户此时采用的钢材是特殊钢材,它的弹性模量就是这么大,使用错误提示方法明显是不可以的,那么怎么解决这个问题呢?

ABAQUS提供另外一种方法警告提示框

showAFXWarningDialog(owner, message, buttonIds=YES|NO|CANCEL, tgt=None, sel=0)

本方法与showAFXErrorDialog一致,前两个参数照前文所述借口,在第3个参数为“buttonIds=YES|NO|CANCEL在实际使用中,代码书写方法为:buttonIds=AFXDialog.YES|AFXDialog.NO|AFXDialog.CANCEL,

6.png

当用户输入一个弹性模量参数为2E4时,自动弹出一个警告框,告知用户,您输入的弹性模量参数是2E4,确认点“Yes”,若错误则点“No”。

3      其他提示方法

showAFXInformationDialog大家查找帮助文档自行学习。

ABAQUS二次开发

ABAQUS二次开发之数据验证姐妹篇的评论2条

ABAQUS二次开发之数据验证姐妹篇的相关案例教程

前言 Python具有以下特点。Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程((object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注。Python具有开源、自由等特征。它的简洁性和易用性使程序的开发过程变得
来源 | 3D视觉工坊 本节尝试做一下车牌识别中的算法部分,要想做车牌识别,第一步还是要知道车牌在图片中的位置! 所以,万里长征第一步,我们先从车牌定位开始吧。 车牌定位 寻找车牌对于人脑来说真是小事一桩,这也是经过千锤百炼的结果。但是对于计算机来说可能就没有这么简单了。我们先来看看在物理世界什么是车牌,以及他们有什么特征。 我们以中国车牌为例,车牌的种类也是繁杂得很。从汽车类型上分有: 小型车号
ANSA二次开发中的两个核心工作分别是 核心功能实现 GUI界面设计 其中GUI界面设计是为了能够更加便捷地获取用户输入的数据。 但是当我们所做的插件虽然功能很复杂,但是只需要用户输入一个数字或者只用点击确定时,我们再使用之前文章中提到的方法: 创建BCWindow 创建控件 进行布局 留出读取、传输用户输入的接口 过程显得比较麻烦 那有没有很简单的命令,能够实现简单的信息传递呢? 还真有,学会下
来源 | pytorch之计算机视觉 编者荐语 文章主要是对CNN和RNN的理解,通过对比总结各自的优势,同时加深自己对这方面知识的理解,其中代码引用采用的是VQA模型中对图像和文本的处理。 1、CNN介绍 CNN是一种利用卷积计算的神经网络。它可以通过卷积计算将原像素很大的图片保留主要特征变成很小的像素图片。本文以李宏毅老师ppt内容展开具体介绍。 1.1 Why CNN for Image ①
一款可以上手的实例,讲解整个RSG插件的强大地方,避免重复工作。 如上图所示,圆柱电芯建模和阵列所有尺寸都列出,其中R 圆柱半径、L 圆柱长度、Numx x方向阵列数、Numy y方向阵列数量、DistanceX x方向阵列距离,其它部分为创建材料,分析类型,接触类型,载荷工况,网格划分,提交作业。 另外,还附带DB和plugin文件,写上一个icon进行,p.py文件将三个文件输出pyc加密文件
硕士/CAE工程师
影响力
粉丝
内容
获赞
收藏
    项目客服
    培训客服
    2 3