Abaqus二次开发-部件体素化(依据体素大小)

插件安装

(照搬,部分更改)

   1、可以安装到abaqus的软件安装目录下,建议在软件安装目录下新建一个plugins文件夹,直接把文件解压到这个位置就可以了。我的安装目录如图所示:

Abaqus二次开发-部件体素化的图1

   2、再有就是在安装abaqus的时候,系统会自动在系统盘(一般是C盘)目录下建立一个插件的安装目录。一般在用户目录下,例如我的这里是C:\Users\misk\abaqus_plugins,将文件解压到这里也可以。如图所示:

Abaqus二次开发-部件体素化的图2

   3、新版本的abaqus(2016以后)在安装时,会在安装目录下新建一个CAE文件夹,在该文件夹下的plugins中也可以安装插件例如:*...*\SIMULIA\CAE\plugins,将文件解压到这里也可以。

Abaqus二次开发-部件体素化的图3

除了这几种,好像还有一些方法,这里就介绍这3种。将文件解压后,重新打开abaqusCAE,就可以在工具栏的Plug-ins目录下找到该插件。如图所示:

Abaqus二次开发-部件体素化(依据体素大小)的图4


插件使用

操作说明:

     首先打开abaqus CAE,打开建立好的模型(也可以直接建立),点击上图中的voxel_vol,打开插件界面,如图所示:

Abaqus二次开发-部件体素化(依据体素大小)的图5

这里首先设定了默认值,你需要将界面中的参数换成你自己的模型。自上而下分别为模型名称,部件名称,新体素化部件名称。

参数设定:

the length of the element: 单个体素的长(x方向)

the width of the element: 单个体素的宽(y方向)

the height of the element: 单个体素的高(z方向)

方向采用全局坐标系。

    设定好之后就可以点击ok进行转化。

操作示例:

这里首先建立了一个简单的立方体模型(用abaqus做的,比较随便,不要介意),长宽高分别10,8,5为如图所示:

Abaqus二次开发-部件体素化(依据体素大小)的图6


运行插件,参数设定如图所示:

Abaqus二次开发-部件体素化(依据体素大小)的图7

点击ok,进行体素转换。结果如图所示:

Abaqus二次开发-部件体素化(依据体素大小)的图8

注意左下角,由于按单个体素的尺寸生成不可避免的会出现与原部件宏观尺寸出现偏差,所以这里将偏差输出,在(我的是)软件下方的的日志窗口会输出偏差值。

体素检查:

首先将原部件与体素部件同时在装配体中载入。利用abaqus自带功能进行检查。

Abaqus二次开发-部件体素化(依据体素大小)的图9

其中,绿框是体素部件,蓝框是原部件(这里将体素块设定的太大了)。

Abaqus二次开发-部件体素化(依据体素大小)的图10

这是对单个体素块进行检查,与设定一致。接下来对误差进行检查。

对原部件的8个顶点进行检索:

Abaqus二次开发-部件体素化(依据体素大小)的图11

对体素部件的8个顶点进行检索:

Abaqus二次开发-部件体素化(依据体素大小)的图12

然后就是计算问题了,经计算与输出误差一致。


插件说明


体素生成技术说明:

(与上一篇插件生成技术大致相同)

    该插件首先根据部件的尺寸大小,构建出可以包裹部件的最小网格体,再遍历每一个单元,根据单元的质心是否包络再部件实体中,来决定单元的取舍。

本次以一个球体来演示单元质心的包络情况。如图所示:

Abaqus二次开发-部件体素化的图10

情况一:不包络

Abaqus二次开发-部件体素化的图11

情况二:包络

    在情况一中,单元质心在球体之外,未包络,但是单元却与部件接触,这种情况,单元会判断为None(也就是舍去),在情况二中,质心和单元都包络在球体中,这种情况,单元会判断为保留。这里就列举这两种情况。详细关系见下表:

质心,单元与部件的位置关系对单元取舍的影响

Abaqus二次开发-部件体素化的图12

其中,质心与单元都与部件进行接触时(也就是说质心刚好在部件表面时),单元也进行保留。

    这里的包络是指质点或单元刚好被部件包裹的情况(也就是说其刚好在部件体内,不超出表面)。接触是指与部件产生交集。

最后,当遍历了每一个单元后,就可以完成部件体素的转换。

这里由于是按体素大小进行生成,所以不可避免与原部件宏观尺寸产生偏差,3个方向的偏差至多为设定的单个体素相应的长宽高的数值。体素生成的基准点为刚好包裹原部件的box的中心。此插件也将偏差进行输出,偏差为宏观尺寸在全局坐标下三个方向的偏差。

注意:

  1. 由于要遍历每一个单元,所以当单元总数较多时,比较耗时。
  2. 体素越小,网格越细致,单元数愈多,耗时越长,但是误差也越小(这种情况不包括公因子,如果体素块按公因子设定,就与原部件宏观尺寸无偏差)向原部件逼近。
  3. 遍历单元数可由刚好包裹原部件的box的体积与体素块的体积之商粗略计算得出。
  4. 操作对象:单一part,不适用于壳模型。
  5. 体素大小按尺寸定义。
  6. 与上一个插件类似,计算效率不高。
  7. 体素宏观尺寸与原部件可能存在偏差。

问题排除:

由于引用abaqus内核函数来判断单元存留,当遍历单元对不保留单元进行判断时会发生警告。已尝试引用warnings模块最高等级对警告进行抑制,但是,毫无效果。所以该部分已在源代码中删除。对该问题进行保留,所以,在进行比较细致的体素转化时,收到警告是正常现象,非bug。

当遍历单元数较多时,可能比较卡,并时不时伴有警告音发出,比较断续,这也是正常现象。为简化脚本,提高运算速度,并未引用sleep()函数对其整改。

承诺:

1.凡是购买插件的用户,使用过程中若是遇到Bug,本人将承诺对发现的bug进行修复。

2.使用时有什么问题,也可以进行咨询,私信或评论区发言都行,看到有时间会进行回复。

3.还没想好,以后再说。

版本声明:


此插件基于abaqus内核进行编写,下载后解压即可使用。

编写参考abaqus 2016~2020,由于未找到早期版本的内核,所以不保证在abaqus 2016之前的版本还可以运行。abaqus 2020以后的包括最新版本的也没查阅,不清楚更新内容,所以也不保证可以运行。但是继承性一般是比较好的,大概率是可以运行的。


免责声明:


后期也会对体素化进行开发,也许以后的插件会比此插件更加优异,性能更好,功能更多。但是,若您已购买此插件,后期并不会对您进行退款。新开发的插件将放入新的帖子中。

该插件不携带任何恶意内容,也不会盗取你的个人隐私内容,代码未加密,购买后请对内容查看以确认。若使用后对您的计算机以及经济、财产、隐私造成任何损害,本人不承担任何责任。个人可以对源代码进行更改,但是更改后的程序使用,产生的任何责任与本人无关。

注意!!!!!!!!

注意!!!!!!!!!!

注意!!!!!!!!!!!!

重点来了!!!!!!!!!!!!

售出后概不退款!!!!!!!!!!!

同时希望各位尊重个人劳动成果,不要拿去二次销售!!!!!!!!!!!!

这么有意思的东西不要转发一下么?


使用过程中若是出现bug,请在评论区留言。看到后会回复,并对其进行修复。

(暂时就这样吧,也想不起来说什么了。)

帖子更新不易,跪求点赞加关注,能收藏一下就更好了。

该付费内容为:此附件包含体素插件

包含2个附件 3人购买
(3条)
默认 最新
今后也会对此问题进行注意,尽量不要发生相似的问题(说实在的,本人有起名困难症,特别是当变量名较多时,所以代码中有很多都是通过路径访问变量的,不是太简洁,今后也将此问题尝试进行攻克)
评论 点赞
使用过程中若是出现什么问题均可在评论区留言或私信,若是不会使用也可以进行咨询。后期有时间也打算出视频教程。
评论 点赞

查看更多评论 >

点赞 1 评论 3 收藏
关注