-
大小: 4KB文件類(lèi)型: .py金幣: 2下載: 1 次發(fā)布日期: 2021-06-17
- 語(yǔ)言: Python
- 標(biāo)簽: abaqus??二次開(kāi)發(fā)??
資源簡(jiǎn)介
通過(guò)Python腳本,實(shí)現(xiàn)在ABAQUS中建立網(wǎng)架結(jié)構(gòu)的有限元模型并自動(dòng)加載計(jì)算
代碼片段和文件信息
from?abaqus?import?*
from?abaqusConstants?import?*
import?numpy
Mdb()
model1=mdb.Model(name=‘Model-1‘)
part1=model1.Part(name=‘Part-1‘)
#l1=10
#l2=10
#h=1
m=((‘L1‘‘10‘)(‘L2‘‘10‘)(‘H‘‘1‘)(‘UL‘“1“))
l1l2hul=getInputs(fields=mlabel=‘Input?the?size‘dialogtitle=‘Parameters‘)
l1=int(l1)
l2=int(l2)
h=float(h)
ul=float(ul)
pt=0
nloc=[]
un=numpy.zeros(shape=(l1l2))
dn=numpy.zeros(shape=(l1-1l2-1))
for?i?in?range?(0l1):
for?j?in?range?(0l2):
part1.DatumPointByCoordinate(coords=(float(i)*ulfloat(j)*ul0.0))
pt=pt+1
nloc.append([float(i)*ulfloat(j)*ul0.0])
un[ij]=pt
print?‘up?node‘
print?un
for?i?in?range?(0l1-1):
for?j?in?range?(0l2-1):
part1.DatumPointByCoordinate(coords=(float(i)*ul+0.5*ulfloat(j)*ul+0.5*ulfloat(h*-1)))
pt=pt+1
nloc.append([float(i)*ul+0.5*ulfloat(j)*ul+0.5*ulfloat(h*-1)])
dn[ij]=pt
print?‘down?node‘
print?dn
d=part1.datums
#
for?i?in?range?(0l1):
for?j?in?range?(0l2-1):
part1.WirePolyLine(points=((d[int(un[ij])]d[int(un[ij+1])])))
for?i?in?range?(0l1-1):
for?j?in?range?(0l2):
part1.WirePolyLine(points=((d[int(un[ij])]d[int(un[i+1j])])))
for?i?in?range?(0l1-1):
for?j?in?range?(0l2-2):
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(dn[ij+1])])))
for?i?in?range?(0l1-2):
for?j?in?range?(0l2-1):
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(dn[i+1j])])))
#
for?i?in?range?(0l1-1):
for?j?in?range?(0l2-1):
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(un[ij])])))
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(un[ij+1])])))
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(un[i+1j])])))
part1.WirePolyLine(points=((d[int(dn[ij])]d[int(un[i+1j+1])])))
print?‘geo?finished‘
# material?&?section
model1.Material(name=‘steel‘)
model1.materials[‘steel‘].Density(table=((7850)))
model1.materials[‘steel‘].Elastic(table=((2000000000
評(píng)論
共有 條評(píng)論