本站有三维的,不过我用不上也不想买代码,于是自己用土办法炮制了一下。
首先在CAE里用特征边选中表面节点,随便操作下再撤回,再在.rpy文件下找到表面的mask,大概长这样:
代码块
Python
自动换行
复制代码
12345678
% ...
a = mdb.models['Model-2 300D250W'].rootAssembly
n1 = a.instances['Part-4-1'].nodes
% 掩码在这
nodes1 = n1.getSequenceFromMask(mask=(
'[#0:22 #ff000000 #ffffffff:7 #7 #0:156 #fffff800 #ffffffff:7', ' #7fff ]',
), )
% ...
复制成功
之后就是高斯随机数粗糙化一下,没什么复杂的,需要的话也可以选点取随机数后插值,会更加平滑。但是我用不上
代码块
Python
自动换行
复制代码
1234567891011
from abaqus import *
from abaqusConstants import *
import random
a = mdb.models['Model-1-1 200Depth 165Width Roughed'].rootAssembly
n1 = a.instances['Part-4-1'].nodes
nodes1 = n1.getSequenceFromMask(mask=(
'[#0:22 #ff000000 #ffffffff:7 #7 #0:156 #c0000000 #ffffffff:8', ' #f ]', ),
)
# mask=之前找到的掩码
for n in nodes1:
a.editNode(nodes=n, coordinate2=random.gauss(0,0.001))
复制成功
知道改节点函数咋用就行,三维问题也是要用到插值,实现应该也不是很难。 有韩国人拿Matlab修改inp文件再导入模型,本站有个视频用了他的代码,不过我认为是一种南辕北辙,效率低犯不上。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删