从今天开始,木木要进行Abaqus的二次开发,其中包括用Python编写脚本,用Fortran或者Matlab编写本构,二次开发是今后有限元分析的趋势,所以在业余时间学习了解一下是很有必要的。
Pyhon比较可视化,受到木木的青睐,Fortran和Matlab编写本构的时候个人感觉出错率高,枯燥乏味,但是要想在二次开发中掌握核心技术,还是要学习本构的开发,可以先从Pyhon入手逐渐培养二次开发的兴趣逐渐接触内核。在接下来研究生生涯过程中,木木会将二次开发的相关知识嵌入到自己的研究课题中,当然会在这个公 众 号中展示,以供有需要的同学学习。
先给大家上个小菜,只需三行命令即可在PPT或者报告中呈现高大上的视觉效应。
for y in range(360):
session.viewports['Viewport: 1'].view.rotate(xAngle=0, yAngle=1, zAngle=0,
mode=MODEL)
开始今天的二次开发的点点滴滴
看了曹金凤曹博士的书后,感觉获益良多,于是就想着自己动手开始做。一开始的时候比较顺利,按照书中的指引step-by-step操作,可是当要写比较长的代码时,涉及到注释,看似不起眼的注释,却给我带来极大的困扰。
我按照书中资源包里面的源代码进行编写,由于Python是面向对象的编程,up-to-down一步步进行,编写的时候想着写一部分运行一部分,看看这部分的代码到底是怎样运行的,于是费解的事情就此发生了,用中文注释的时候,每次运行到注释行的时候就会报错,我把注释行删掉,又可以重新运行了,但是对于行数较多的代码来说没有注释行的话,自己读起来比较费劲,别人就更不用说了,百般思索,为什么例子中的中文注释就可以,我的就不行,刚开始想着编译器的问题,我已开始用的Sublime,然后我换用Editplus,也无济于事,最后又换用Pycharm,还是不行,灵机一动,那我用英文注释可以吗?果然可以。好嘛,那以后只能用英文注释了,还可以提升英语能力,何乐而不为。部分代码如下:
#create Model
myModel = mdb.Model(name='Beam')
import part
#create sketch
mySketch = myModel.ConstrainedSketch(name='beamProfile', sheetSize=250.)
#create rectangle section
mySketch.rectangle(point1=(-100,10), point2=(100,-10))
# create three_D part
myBeam = myModel.Part(name='Beam', dimensionality=THREE_D,
type=DEFORMABLE_BODY)
# Extrude part
myBeam.BaseSolidExtrude(sketch=mySketch, depth=25.0)
import material
# create Material
mySteel = myModel.Material(name='Steel')
以上就是今天编写脚本时遇到的小插曲,现在只会按照书中源代码Step-by-Step地进行,熟能生巧,相信假以时日会写出属于自己的代码,开发自己的插件,定义自己想要的本构。