• 大小: 4KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Python
  • 标签: abaqus  二次开发  

资源简介

通过Python脚本,实现在ABAQUS中建立网架结构的有限元模型并自动加载计算

资源截图

代码片段和文件信息

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

评论

共有 条评论