1. 更改索引类型的abaqus代码
使用abaqus软件进行二次开发,往往在.rpy文件自动生成的代码基础上进行修改。
然而,在对点、线、面、体进行选择时,abaqus默认生成的代码为
cells = c.getSequenceFromMask(mask=('[#1 ]', ), )
这种形式的mask掩码,显然不利于参数化建模操作。
此时,可以通过在下图所示abaqus界面的命令行中,输入命令更改abaqus自动生成代码的索引类型:
- 将rpy文件中的代码索引形式更改为:“实际特征索引号”
session.journalOptions.setValues(replayGeometry=INDEX,recoverGeometry=INDEX)
- 将rpy文件中的代码索引形式更改为:“findAt()函数配合点坐标”
session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)
2. 示例
以下图所示纤维-基体结构对应的三种不同索引结果对三种索引类型进行说明:
对图示结构中纤维赋予材料属性:
此时getSequenceFromMask生成的掩码为 [#7fe],难以从几何意义上进行编程。
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c.getSequenceFromMask(mask=('[#7fe ]', ), )
region = p.Set(cells=cells, name='Set-1')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
转化为特征索引号后,代码如下:
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c[1:11]
region = p.Set(cells=cells, name='Set-2')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Section-2', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
c[1:11] 表示结构中的十根纤维,该特征索引号与纤维和基体的生成顺序相关。显然,此时纤维基体对应的特征索引号为c[0]
转化为findAt类型后,代码如下:
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c.findAt(((18.962994, 14.585984, 0.0), ), ((48.349822, 22.238453,
100.0), ), ((64.427994, 34.070985, 0.0), ), ((82.989822, 24.403453, 100.0),
), ((18.962994, 68.710983, 0.0), ), ((35.359821, 91.518456, 100.0), ), ((
34.117994, 42.730985, 0.0), ), ((52.679821, 74.198453, 100.0), ), ((
78.659823, 69.868454, 100.0), ), ((73.087995, 75.205986, 0.0), ))
region = p.Set(cells=cells, name='Set-3')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
findAt()内为十根纤维所对应的坐标位置,该方法适用于明确知晓结构几何分布的情况。
版权归原作者 浅荼 所有, 如有侵权,请联系我们删除。