资源简介
利用python代码,向abaqus中批量导入内聚单元,使得模型内选定的每个单元之间都有cohesive单元
代码片段和文件信息
#!/user/bin/python
#-*-coding:UTF-8-*-
#读取inp文件
import sys
File_path=‘C:/Users/administrator/Desktop/PY-COH/‘
Inp_name=‘Test.inp‘
NEW_INPNAME=‘TestNew.inp‘
#CO_SET startswith
COSTARTS=‘*Elset elset=CO_SET instance=Part-1-1 generate‘
Ori_inp=open(File_path+Inp_name‘r‘)
#读取节点编号及坐标信息
Node_dic={}
Inp_line=Ori_inp.readlines()
#Inp_val辅助判断
#结点存储为字典格式,结点号为索引,其索引内容为结点坐标
Inp_value=0
Inp_value=0
for i in range(len(Inp_line)):
if Inp_line[i].startswith(‘*Node‘):
Inp_value+=1
if Inp_line[i].startswith(‘*Element‘):
Inp_value+=1
break
if Inp_value==1:
try:
Node1=[float(cor) for cor in Inp_line[i+1].split(‘‘)]
Node1[0]=int(Node1[0])
Node_dic[Node1[0]]=[]
Node_dic[Node1[0]].append(Node1[1])
Node_dic[Node1[0]].append(Node1[2])
except:pass
#此程序默认需要添加cohesive单元的区域为三角形单元
Nodel=[]
Inp_value=0
#读取单元结点编号
Element_dic={}
EL_FOUR=[]
EL_THR=[]
for i in range(len(Inp_line)):
if Inp_line[i].startswith(‘*Element‘):
Inp_value+=1
if Inp_value==1:
try:
Node1=[int(cor) for cor in Inp_line[i+1].split(‘‘)]
Element_dic[Node1[0]]=[]
if len(Node1)==5:
EL_FOUR.append(Node1[0])
Element_dic[Node1[0]].extend(Node1[1:5])
elif len(Node1)==4:
EL_THR.append(Node1[0])
Element_dic[Node1[0]].extend(Node1[1:4]) #此处用extend更好
except:
Inp_value=0
EL_FOUR.sort()
EL_THR.sort()
#读取需添加cohesive单元的单元集合
#此处需定义单元的结点编号
#CO_ELSET为在inp之前建立的单元集合
#CO_SET为新生成的cohesive单元(命名不清)
Node1=[]
Inp_value=0
ESET_value=0
CO_ELSET=[]
for i in range(len(Inp_line)):
if Inp_line[i].startswith(COSTARTS):
Inp_value+=1
ESET_value=1
if Inp_line[i].startswith(‘*Elset elset=CO_SET\n‘):
Inp_value+=1
ESET_value=0
if Inp_value :
if ESET_value:
try:
Node1=[int(cor) for cor in Inp_line[i+1].split(‘‘)]
Num=Node1[1]-Node1[0]+1
for k in range(Num):
S=Node1[0]+k
CO_ELSET.append(S)
except:
Inp_value=0
break
else:
try:
Node1=[int(cor) for cor in Inp_line[i+1].split(‘‘)]
for NODE in Node1:
CO_ELSET.append(NODE)
except:
Inp_value=0
Node1=0
k=0
break
#添加cohesive单元的步骤
#(1)形成cohesive单元结点集,并找出其重复次数
#(2)找出重复单元变数,并根据边数形成cohesive单元
#此处可修改使其适用于四节点单元
CO_NODE=[]
for i in range(len(CO_ELSET)):
CO_NODE.extend(Element_dic[CO_ELSET[i]])
#寻找重复节点数
CO_NODE_SORT=sorted(CO_NODE)
NODECO=[]
NODECO_DIC={}
for i in CO_NODE_SORT:
if i not in NODECO_DIC.keys():
NODECO_DIC[i]=[]
if CO_NODE_SORT.count(i)>1:
N
- 上一篇:爱鲜蜂项目源码
- 下一篇:多标签数据集.zip
相关资源
- abaqus 网格自动划分插件 python语言
- python有限元框架FENICS教程及
- 从记录到编程--Python在ABAQUS程序化参数
- Python语言在Abaqus中的应用高清版pdf
- ABAQUS GUI程序开发指南 PYTHON语言
- Python语言在Abaqus中的应用 随书资源,
- ABAQUS GUI程序开发指南 PYTHON语言.pdf
- 《Python语言在Abaqus中的应用》 曹金凤
- ABAQUSGUI程序开发指南PYTHON语言_139333
- Python语言在Abaqus中的应用完整版
- Python语言在Abaqus中的应用DVD光盘
- python语言在abaqus中的应用随书光盘.
- Python语言在Abaqus中的应用 源代码
- ABAQUS PYTHON二次开发攻略
-
python_sc
ripts_for_abaqus_learn_by_example完 - python abaqus开发学习指南完整版本
- ABAQUS PYTHON二次开发攻略(完整版
- ABAQUS Python二次开发攻略(含code)
- python语言在abaqus中的应用
- ABAQUS Python二次开发攻略+pdf+源代码
- 通过Python在ABAQUS中生成网架模型并计
- pythonreader.rar
- S-view,简单的有限元后处理程序,使
- PythonReader_1.9.4.101028
- abaqus激光增材仿真,生死单元添加p
- Abaqus 二维voronoi图插件
- ABAQUS 二次开发Python教程
- cohesive.py
- cohesive_COH2D4 for Quad.py
-
Python sc
ripts For ABAQUS: Learn By Example
评论
共有 条评论