在单向复材中,纤维的力学性能往往是横观各向同性的,于是需要规定材料方向。
通常需要新建局部坐标系用于材料方向的定义,而在实际建立坐标系中,坐标系会储存在对应的下:,但是并不是从开始,其中的数字需要根据具体情况确定,因此调用该坐标系存在读取问题
此时创建的实例应该是包含材料属性的,如果在创建Part后直接构建实例,又对单独的Part赋予材料截面的话,实例依然不会包含材料属性。 当然,如果按照创建Part后直接构建实例的操作,赋予截面是对实例所生成的Part赋予即可。
重点部分单独拿出来说一下。
注意此部分应对实例生成的Part操作,而不是一开始的纤维Part 如果是先赋材料再建实例,材料属性可以继承,但是材料方向好像不能继承 因此建议材料方向应在实例生成的Part中定义
# p为建立实例时生成的对应Part
p = mdb.models['Model-1'].parts['UDcomp']
# 新建坐标系point1为x轴上的点,point2为xy平面的点
p.DatumCsysByThreePoints(name='Datum csys-1', coordSysType=CARTESIAN, origin=(
0.0, 0.0, 0.0), point1=(0.0, 0.0, 1.0), point2=(0.0, 1.0, 0.0))
c = p.cells
# xy存储了纤维的中心坐标与半径,因此使用findAt获取其位置
for cir in xy:
cells = c.findAt(((cir[0], cir[1], 0.0),))
region = regionToolset.Region(cells=cells)
# 经过多次尝试,发现在UDcomp Part中建立的坐标系序号总是纤维的个数+3
orientation = mdb.models['Model-1'].parts['UDcomp'].datums[len(xy)+3]
mdb.models['Model-1'].parts['UDcomp'].MaterialOrientation(region=region,
orientationType=SYSTEM, axis=AXIS_1,
localCsys=orientation, fieldName='',
additionalRotationType=ROTATION_NONE, angle=0.0,
additionalRotationField='', stackDirection=STACK_3)
根据下图可以看到中只有一个元素,而在36根纤维的情况下其为39。
在手动操作实验时发现,如果多次建立/删除模型,该数字也会变动。由于脚本不会反复删除重建模型,因此比较稳定。
如果有个函数可以直接获取储存在哪个位置就更为方便了。希望有行业大佬指明。
有五个独立的弹性常数
文献里给了,1为纤维方向
=,=,=是比较好理解的
=/(2*)-1
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删