实战!!加筋土挡墙建模,“面向对象”ABAQUS PYTHON 二次开发

 实战!!加筋土挡墙建模,“面向对象”ABAQUS PYTHON 二次开发

ss.png

因为满铺包裹式加筋土的 建模参数明确、形状较简单、同时完全手工进行各种情况的 反复建模很繁琐,所以满铺包裹式加筋土的建模过程,非常适合作为“面向对象”ABAQUS PYTHON 二次开发实战的例子。

下面为大家展示本次“战果”。

ss.png

“面向对象”,一脉相承

本文与前面《鸟瞰》、《神乎》两篇帖子是一脉相承的,如果对“面向对象编程”感到陌生,请回头先浏览一下前文(https://www.jishulink.com/content/post/441360)(https://www.jishulink.com/content/post/441445)。

在本次实战中,“满铺包裹式加筋土挡墙”被抽象为一个“对象”,以 geogrid 的名称“封装”在“类型”(class)里面:(见下图)

ss.png

图中 def 所定义的,就是“对象”的“成员函数”或“方法”。我已经把建模需要的步骤、流程都变成了一个个拿来即用的方法。比如,用这个“对象”来建模计算,我只需要在命令栏输入以下语句:

from geogrid import geogrid   # 导入对象到当前建模流程中
g = geogrid([一些参数])             # 把“对象”实例化,后面直接用 g 就可以代表 geogrid 了
# ----------------------------------执行到这里,几何模型就创建完了
g.setSoilMaterial([一些参数])       # 创建土体材料
g.setGeogridMaterial([一些参数])    # 创建加筋体材料
g.autoSetSection([一些参数])        # 创建截面特性,并自动分配
g.assembly()                        # 自动组装部件
g.gravityStep([一些参数])           # 创建自重荷载分析步
g.setInteraction([一些参数])        # 设置筋土界面
g.BC()                              # 设置边界条件,本例边界简单,无需传入参数
g.setBodyForce([一些参数])          # 设置体力(自重)荷载
g.autoMesh(seedsize)                # 传入网格种子尺寸参数,自动完成网格划分
#-----------------------------------执行到这里,前处理完毕
g.job(jobname)                      # 提交计算,一次建模计算过程执行完毕!

这个流程已经能够很好的展示“面向对象编程”的魔力了。比起 ABAQUS/CAE 自动生成的脚本,这是一个极大的进步!

还能再简化吗?

能!针对某些需要反复试算,调动参数不大的情况,完成一次建模计算过程只要四行代码!!!!

极致的封装,带来极致的方便!可以将上面横线中间的代码全部“封装”在 go 这个方法里面,然后只需要以下四行代码:

from geogrid import geogrid
g = geogrid([一些参数])
g.go([一些参数])
g.job(jobname)

如何使用这个 python 脚本工具?

不需要 file / run script ,不需要在命令区用 execfile 函数导入。只要把编译好的 .pyc 文件放到以下图中所示路径的文件夹里面,就可以在 CAE 界面命令栏通过  from geogrid import geogrid 来导入这个工具。

(想学习把脚本编译成 .pyc 文件的朋友,文末有入口链接)

ss.png

有 python 二次开发经验的朋友们也可以参考这样的方式来使用自己开发的脚本,

采用上述方式使用脚本,不仅仅局限在命令栏,还可以集成到其他的脚本里面。其他脚本只要在开头加上

 from geogrid import geogrid  就能够直接使用“封装”在 geogrid “对象”里面的各种“方法”了。比如十分方便的选取“线”、“面”的方法:

xrange(xmin, xmax, type)、yrange(ymin, ymax, type)、zrange(zmin, zmax, type)

分别表示从 x 、y、z 方向某区间内选择 线(type = "edges")、面(type = "faces"),这三个方法还可以相互配合使用。

想使用这个二次开发脚本实战工具的朋友,可以点击文末链接。

想学习“面向对象 ABAQUS python 二次开发”的朋友,请关注本人账号,后面将会推出完全实战化的视频课程。



加筋土挡墙 python 面向对象建模工具(https://www.jishulink.com/content/post/442169

加筋土挡墙算例(https://www.jishulink.com/content/post/442137

python 脚本编译成 .pyc ,手把手演示教程(https://www.jishulink.com/college/video/c13427) 

(1条)
默认 最新
评论 点赞
点赞 6 评论 1 收藏 2
关注