Abaqus 2D随机纤维脚本的教学实践

   首先,需要导入abaqus包,以及abaqus中的常数集包(abaqusConstants),还有生成随机数的random包,后面会用得到:


   然后,利用函数mdb.Model生成一个model,名字为xianWei(名字可以随便取,但不能有中文),注意这里做一个判断,如果已经有xianwei的model,就取它,如果没有,就新建一个。abaqus的所有脚本函数都是既定的,我们只需要了解并且会用即可。


   现在就可以在abaqus里愉快的运行了,当然,咱们的程序还没写完。写程序的是时候,更推荐各位边写边运行,千万不要写完了再调试。(对于编程老司机,有足够的把握除外,不在考虑范围之内),这样可以再开始阶段就排除大量错误,为后续调试程序节省大量时间。把上述代码再abaqus里运行,就可以看到生成了一个叫做xianWei的model了。可以思考一下,如果你想生成1000个model,是不是加个循环就能实现了,这比再cae界面中一个个点快多了,这就是编程的魅力,脚本语言存在的必然。它可以为我们省去大量重复性的工作,让我们有更多的时间思考算法,而不是用在重复性的体力工作上。


   如果还有不知道怎么运行脚本的小伙伴,百度一下或者留言告诉我吧。生成model之后,还需要新建立一个part。用过abqus建模的小伙伴应该知道,在abaqus里建模,是需要先建草图的,所以脚本也一样,先绘制草图。这次的例子需要生成一个长×宽=30mm×10mm的矩形shell。代码如下,先建立一个sketch对象,名字为t1(名字可以随便定),利用sketch里的函数rectangle生成一个矩形草图。


   生成草图之后,就可以生成shell零件了。这里我们用的是2D平面shell。首先实例化一个part对象,名字为P1,2D平面,可变形体。再利用part的函数BaseShell,参数选择为上一步生成的草图。


   运行这两行,就生成了一个长30mm,宽10mm的矩形2Dshell。


   生成基体之后,就要在基体内部生成2D的纤维了,具体思路是,首先定义好矩形纤维的长度和宽度,然后随机生成一个点以及纤维的转动角度,这样就能确定纤维的位置了,以草图的形式绘制出来,再利用草图切割,将纤维形状从基体中切割出来。重复以上的工作既可生成许许多多的纤维啦,当然,还有一步非常重要的步骤,干涉检查。因为如果每个纤维都是完全随机,不加检查,那么数量多的时候,一定会有重叠的纤维,这是我们不想遇到的。所以每新生成一个纤维,需要检查它与前面已生成的纤维是否产生干涉,如果有干涉则舍弃该纤维。重新生成。最终的效果如下图,你可以改变纤维或者基体的大小形状去做你想做的模型:


   纤维长×宽:1*0.2
 


   纤维长×宽:0.5*0.1
   


   纤维长×宽:2*0.1
   

   接下来介绍,关于纤维的生成,再此只介绍单个纤维的生成,多纤维生成比较复杂的点在于干涉检查,涉及到线段的相交判断。

   首先单纤维是通过草图切割基体生成的,所以,需要生成纤维形状的草图。同上,实例化sketch对象,定义纤维的长与宽,计算纤维对角线长度ce,计算对角线长度,是为了限制随机生成点的坐标范围,实现纤维在基体内部。


   随机生成的第一点以及转动角度,abaqus草图中的角度是从y轴正方向开始算的,并非熟知的x正方形。即图中的angle。剩余3点可以根据这两个定位参数确定出来,由此即可计算出草图的四个点。


   纤维生成算法
 

   生成第一个点的代码,生成随机数:


   计算出其余点的坐标


   根据这四点坐标值,在sketch对象中绘制四条直线:


   绘制好纤维草图之后,再利用partionShell函数,切割shell基体:    


   这样我们的单纤维脚本就完整写好啦。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空