【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面

0.算例

上一个帖子介绍了怎么用matlab建立极小曲面,详情见Matlab创建极小曲面

下面是个简单的算例,在y方向压缩极小曲面之Gyroid,几何模型建立方法见下文,建立后阵列并有画网格导入abaqus即可。

【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面的图1

为了对比该极小曲面的应力水平,采用同样的材料做了单轴压缩,两种情况对比如图所示:

【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面的图2

从图中可以看到,如果仅去极小曲面上的一个点作为其应力应变,其曲线甚至比实心立方体还高,显然这是不合理的。出现这种现象的主要原因是,此类细观结构或变形不均匀时,不能取一个点代表整个模型,不然很可能会出现较大的误差。对此问题,细观力学有些方法,比如作用力反作用力法,体积平均法等,但也有人认为对于细观结构,作用力反作用力法 不太合理。体积平均法的简单表达式如下:

【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面的图3

即模型中每一个单元的应力(应变)对单元体积积分后,除以模型整个体积。上述应力应变曲线也证实,采用该方法能够得到较为真实的数据。

那么,怎么通过体积平均法获得数据呢? 在计算结束后,需要通过python脚本对数据进行处理,输出中需要EVOL(单元体积)以便获得各个单元的体积。


1.介绍

之前已经介绍过什么是极小曲面,同时根据表达式定义为 隐式 和显式 极小曲面,主要区别是 隐式极小曲面一般只有一个方程,不容易将x,y,z独立表达出来,如下图所示:

1.png

今天介绍怎么用python生成上述极小曲面并输出为stl文件。

  1. 安装包:需要mayavi、vtk、traits及numpy等依赖包,可以从python第三方库下载,或者从https://pan.baidu.com/s/17Aa-Qv6YqvVLXjVqgW1b4A,(br5n)下载安装;

  2. 需要用到mayavi的mlab函数,实际上建模思路跟matlab完全一样,即先建立点阵区域,再从中获取满足极小曲面方程的点。

  3. 生成曲线的代码:

隐式曲线代码:

import numpy as np
from numpy import mgrid,pi,cos,sin,sinh,cosh
from mayavi import mlab
import mayavi
x, y, z =mgrid[-pi:pi:10j,-pi:pi:10j,-pi:pi:10j]v=cos(x)+cos(y)+cos(z)
iso=mlab.contour3d(x, y, z, v,contours=[0])
mlab.axes()
mlab.show()

D.png


显式曲线代码:

import numpy as np
from numpy import mgrid,pi,cos,sin,sinh,cosh
from mayavi import mlab
import mayavi,vtk
u,v=mgrid[-2*pi:2*pi:40j,-10:10:200j]
x=u*cos(v)
y=u*sin(v)
z=(2/3)*v
iso= mlab.mesh(x, y, z)
mlab.axes()
mlab.show()

C.png

2.导入abaqus

无论是python还是matlab,不提供直接转换为abaqus可支持的格式,因此还是需要相应的脚本去转换,思路就是把上述过程中生成的点坐标信息按照stl文件格式写入即可。

至于加厚,如前面解释过,需要其他CAD软件辅助或自己编个小脚本即可。

附件包括隐式和显式曲线生成代码及转换stl格式的脚本。

3.下期预告

无论是用matlab还是python,都需要额外的脚本,或甚至要安装些依赖包,众所周知,python的某些安装包,如上面的traits安装起来其实挺麻烦的。基于以上的考虑,本人做了个简单的软件,下期跟大家分享。

由于并非程序猿出身,基于python打包的,把其他乱七八糟的库打包进去了,大概在200M左右。但不需要安装,直接运行即可。其特点包括:

1、解压即可运行;

2、内置典型极小曲面,直接可以生成,并可以输出stl或各种图片格式以及eps等多种格式;

3.png

3、可以加厚,并不需要额外的CAD软件辅助;

4、xyz的范围可以自定义,同时根据需求输入曲面表达式可以生成任何曲面(几乎)。

4.png

欢迎咨询讨论:QQ180280578、微信allisforA


以下内容为付费内容,请购买后观看
该付费内容为:
包含 1个附件
售价: 5人购买
增材制造(3D打印)极小曲面stl文件ABAQUSPython脚本

【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面的评论15条

【Abaqus 3D打印建模】之 极小曲面 II --python生成极小曲面的相关案例教程

Abaqus Scripting是对Python语言的扩展,可以看成是一个有限元分析的Python模块。Abaqus Scripting为有限元批处理及二次开发提供了便利。而Python还拥有更广泛而强大的许多科学计算模块,如果能让Abaqus Scripting与其他模块(如Numpy、Scipy等)并肩战斗,那么威力必将更大。 我电脑上原本安装了Python3.6及相应的Numpy、matpl
作为工科生,相信大家对matlab很熟悉了。不管是画图还是计算,都是很方便的工具;python作为最近流行的编程语言,在数据处理方面也是有较大的优势。作者近期在学习python时,思考过这样一个问题:matlab和python之间绘图有什么区别呢?(作者每次有新的想法,都迫不及待的想去验证一下,所以近期会推送一些关于matlab与pytho在绘图之间区别的推文,各位感兴趣的读者,也可以看一下) 作
参考 abaqus2020安装python三方库_留痕过雁的博客-CSDN博客_abaqus python装第三方库 本文使用abaqus2020,需要安装的第三方库为geomdl,如果您需要安装其他库,操作方法类似。 1.首先确认是否安装过所需库文件 在abaqus-cae界面信息栏下方,python命令行输入 import numpy import math import geomdl 由于A
1.介绍 3D打印技术可以制造各种复杂结构,在减重、隔热等方面有着广泛应用。其中有一类非常有趣的结构,被称极小曲面(minimal surface):是指平均曲率为 0 的曲面 ,如下面是两种极小曲面。由于较为光滑过度,这种结构一般比较稳定,在首饰制造、隔热放热及减重设计方面有着很好的前途。 可以看到,上述两种极小曲面是可以用数学方程表达出来,左边的可被称作 隐式极小曲面,因为想通过解方程在建立其
0.前言 前段时间跟大家分享了怎么用MATLAB 和 python 建立 3D打印用的极小曲面及将其输出为stl格式的方法,具体请看: Matlab生成极小曲面,包括matlab脚本及生成为stl的脚本 python生成极小曲面,包括python脚本、安装包及生成stl的脚本 以上两种方法基本上等效,不仅可以生产极小曲面,也能够加厚或输出为stl,只不过是所用软件不一样。但据网友反馈,存在写不方便
影响力
粉丝
内容
获赞
收藏
    24 9
    项目客服
    培训客服
    平台客服
    顶部