此脚本与上一个博客所诉的球形粒子脚本基本一致。差别在于建立部件的时候和随机分布时的干涉判断,给出这一块的函数代码。
def bn(a,n):
nq='BN'+str(n)
s = myModel.ConstrainedSketch(name='__profile__', sheetSize=200.0)
s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))
s.rectangle(point1=(-a/2, hd/2), point2=(0.0, -hd/2))
p = myModel.Part(name=nq, dimensionality=THREE_D, type=DEFORMABLE_BODY)
p = myModel.parts[nq]
p.BaseSolidRevolve(sketch=s, angle=360.0, flipRevolveDirection=OFF)
del myModel.sketches['__profile__']
def translate(a): #使0.5厚直径10的圆形薄片随机分布的函数
temp = [(random.uniform(-(bc-dc)/2,(bc-dc)/2),random.uniform(-(bc-hd)/2+0.01,(bc-hd)/2-0.01),random.uniform(dc/2,(bc-dc/2)))] #定义数组记录每个薄片的中心点坐标
a1 = myModel.rootAssembly #无关紧要
a1.translate(instanceList=('BN1-1', ), vector=(te