找回密码
 注册
Simdroid-非首页
查看: 347|回复: 15

[二次开发] 如何用Python编写提取参考点支反力?

[复制链接]
发表于 2017-3-7 21:16:03 | 显示全部楼层 |阅读模式 来自 江苏徐州
悬赏20仿真币未解决
本帖最后由 113soim 于 2017-3-19 16:01 编辑

想通过Python编写一个程序从ODB文件中提取参考点的整个step中的支反力,并保存到txt文件中,不知有人做过这方面的工作没?
from odbAccess import*
from abaqusConstants import*
import os
import sys
print 'this code is for YZ4.odb'
odb= openOdb(path='D:/temp/YZ3.odb')
myAssembly =odb.rootAssembly
f=open('D:/temp/HAHAH.txt','w+')
Frame=odb.steps['Step-1'].frames
print range(len(Frame))
for i in range(len(Frame)):
        nowFrame=Frame
        displacement=nowFrame.fieldOutputs['RT']
center=odb.rootAssembly.nodeSets['U']
centerDisplacement=displacement.getSubset(region=center)
n=0
d1=0.0
d2=0.0
k=0
for v in centerDisplacement.values:
        n=v.nodeLabel
        d1=v.data[0]+d1
        d2=v.data[1]+d2
        k=k+1
        f.write('%10.8E %10.8E \n'%(d1,d2))
f.close
odb.close()

这是论坛里提取位移的,但是运行之后只能输出一组最后的位移数据,烦请大家提提意见

发表于 2017-3-7 22:53:47 | 显示全部楼层 来自 浙江嘉兴
Simdroid开发平台
自己操作一遍就知道了
回复

使用道具 举报

 楼主| 发表于 2017-3-8 09:31:27 | 显示全部楼层 来自 江苏徐州
CHAORAN 发表于 2017-3-7 22:53
自己操作一遍就知道了

我运行过一遍程序了,但是只得到一组最大的位移,前期的位移数据并没有得到
回复

使用道具 举报

 楼主| 发表于 2017-3-19 15:59:27 | 显示全部楼层 来自 江苏徐州
问题已解决,如有需要请跟帖
回复

使用道具 举报

发表于 2017-4-18 14:01:35 | 显示全部楼层 来自 四川绵阳
113soim 发表于 2017-3-19 15:59
问题已解决,如有需要请跟帖

如何解决的呀 朋友
回复

使用道具 举报

发表于 2017-4-19 16:47:59 | 显示全部楼层 来自 天津
楼主,如果需要输出多个step的结果,应该怎么弄?
回复

使用道具 举报

发表于 2017-7-15 09:40:51 | 显示全部楼层 来自 北京
怎么办的呢
回复

使用道具 举报

发表于 2017-7-23 11:59:58 | 显示全部楼层 来自 北京
楼主解决了?
回复

使用道具 举报

发表于 2017-7-25 09:52:45 | 显示全部楼层 来自 北京
楼主分享一下?
回复

使用道具 举报

发表于 2017-7-25 12:00:00 | 显示全部楼层 来自 重庆
这个好像是for循环的问题,nowFrame=Frame【i】。楼主这个结果依然是从frame里面提取的,从整个step中提取能实现每个increment提取吗
回复

使用道具 举报

发表于 2017-7-25 12:10:35 | 显示全部楼层 来自 北京
kmsansys 发表于 2017-7-25 12:00
这个好像是for循环的问题,nowFrame=Frame【i】。楼主这个结果依然是从frame里面提取的,从整个step中提取 ...

每次输出都覆盖了
回复

使用道具 举报

发表于 2017-7-25 12:11:23 | 显示全部楼层 来自 北京
kmsansys 发表于 2017-7-25 12:00
这个好像是for循环的问题,nowFrame=Frame【i】。楼主这个结果依然是从frame里面提取的,从整个step中提取 ...

你会同时保存所有结果么
回复

使用道具 举报

发表于 2017-7-25 12:29:50 | 显示全部楼层 来自 重庆
lyqday 发表于 2017-7-25 12:11
你会同时保存所有结果么

n=v.nodeLabel
        d1=v.data[0]+d1
        d2=v.data[1]+d2
        k=k+1
应该是这个造成的,你把后面的d1和d2删掉
回复

使用道具 举报

发表于 2017-11-28 12:03:13 | 显示全部楼层 来自 北京
怎么解决的???
回复

使用道具 举报

发表于 2018-4-11 10:33:28 | 显示全部楼层 来自 江苏徐州
请问第二个循环语句中n,d1,d2he k分别代表什么
回复

使用道具 举报

发表于 2018-4-19 14:21:40 | 显示全部楼层 来自 黑龙江哈尔滨
求教历史输出NODE SET支反力的编写过程,一直希望odb结果的处理也在Python中运行,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 05:11 , Processed in 0.037717 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表