Abaqus obj inp 文件内部读取点坐标并统计
来源:互联网 发布:java 解压jar包命令 编辑:程序博客网 时间:2024/06/07 10:45
任务描述:对一个三维的带网格的模型,生成一个二维平面的图像描述,其中每个空格内部显示这个坐标下在z方向具有多少网格,类似于三维模型的深度图
方法:有两个方法
1.从网格文件OBJ内部读取点坐标,统计(x,y)的个数
2.从Inp文件内部读取点坐标,统计(x,y)的个数
在实验过程中,发现方法1 的obj文件内部的点的信息比较杂,可能包含除了网格以外的其他的点的信息,所以放弃了这种方法。这里主要介绍方法2
inp文件读取
writenode = []#writenode 点集write_flag = Falseinput = open("new_1.inp","r")#读取inp文件astring = input.readlines()#这里这种读入方式的好处是astring是list类型,其余方式可能是str类型for i,line in enumerate(astring): if line =="*Node\n": #找到inp文件内部开始记录点信息的地方 write_flag = True #写入文件标志位开始 continue #跳出当前循环,执行下一次循环,这样*Node就不会写入文件内部 print(i) if line =="*Element, type=C3D8R\n": break #点描述信息结束后是描述单元信息,正好这里截止,挑出for循环 if write_flag ==True: writenode.append(line.replace(",",""))
点集写出
接下来可以将我们的点信息输出另一个文件:
f=open('point.txt','w') for i in writenode: f.write(i)f.close()
重新读入生成numpy array
a = np.loadtxt('zz.txt') a = np.around(a)#四舍五入,可能出现一些不准的点,防止出问题
删除无关信息
c= np.delete(a,0,axis=1)#删除第一列:各个点的标号[1,2,3,4,5...]c= np.delete(c,2,axis=1)#删除Z坐标,只需要统计xy坐标
统计xy相同的点的个数
e = []for (x,y) in (c):#这里如果直接统计列表是会报错的,无法生成hash表所以要先生成这样的数组的类型,后面才好统计 e.append((x,y))
然后做一个字典,记录各个点的个数
h = {}for i in e: h[i] = e.count(i)print()
这样就可以看到各个点的坐标的个数了
{(-139.0, -18.0): 23, (199.0, -96.0): 23, (-199.0, -60.0): 23, (-182.0, -150.0): 23, (251.0, -60.0): 23, (-243.0, -102.0): 23, (208.0, 66.0): 23,...
阅读全文
0 0
- Abaqus obj inp 文件内部读取点坐标并统计
- Matlab-python修改ABAQUS的inp计算文件
- 修改并显示inp文件内容
- Qt实现读取显示obj文件——归一化坐标
- 读取点云 .OBJ 文件,画出顶点平面图
- obj-c 读取文件 。
- openGL读取obj文件
- 读取磁盘中的文件,并统计行数
- 读取并显示 obj (2)
- 分词统计(二)读取TXT文件并统计数量
- ABAQUS二次开发悬臂梁以及ODB文件信息的读取
- 初涉C#之读取txt文件并绘制坐标曲线图
- obj-c读取文件方法
- OpenGL读取Obj模型文件
- OpenGL读取Obj模型文件
- opengl读取OBJ模型文件
- OpenGL读取Obj模型文件
- linux C 读取目录文件并统计文件数
- 记录自己的第一篇博客
- js使用变量改变css值
- Java中File文件与Base64互转
- PHP 压缩文件生成zip(解决中文文件名问题)
- 168. Excel Sheet Column Title
- Abaqus obj inp 文件内部读取点坐标并统计
- hdu 5538 House Building 【矩阵表面积】
- Celery 简单应用
- qemu: qemu_cond_wait: Operation not permitted
- jdbc用户登录
- 自己喜欢的一些句子摘录--2017-09-09
- JAVA技术名词简述
- form表单传参数,后台代码接收到的参数与预期不符
- 图形绘制