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

[二次开发] 如何对一个对象的数据进行流程控制运算?

[复制链接]
发表于 2009-5-22 13:03:30 | 显示全部楼层 |阅读模式 来自 上海
在用python编写脚本程序时需要对odb中的某个标量计算结果的Values进行分支运算,就是根据不同的数值,进行不同的计算,尝试多次均失败。
请教各位高手:应该如何用python实现?是采用for循环来做吗?
再次先行谢过了~~~!
 楼主| 发表于 2009-6-1 10:30:06 | 显示全部楼层 来自 上海
Simdroid开发平台
还有一个问题:
我在对我自己利用odb原有fields变量进行运算的基础上建立的新场变量进行数值修改时,python提示这个场变量是只读的属性,不可以修改。请问这是为什么?怎么将这个场变量的属性修改为可写的?
请各位高手不吝指教。
谢谢~~
回复 不支持

使用道具 举报

发表于 2010-3-19 14:40:15 | 显示全部楼层 来自 江苏镇江
我也遇到了同样的问题,即“场变量是只读的属性,不可以修改”,不知道楼主有没有解决这个问题,希望多多讨论
回复 不支持

使用道具 举报

发表于 2010-3-19 14:59:18 | 显示全部楼层 来自 江苏镇江
下面是英文帮助中的例子,讲场变量运算的
# FieldOutput operators example problem
#
# Script that does computations with fields and
# saves the results computed to the output database
#

from odbAccess import *
odb = openOdb(path='fieldOperation.odb')

# Get fields from output database.

field1 = odb.steps['LC1'].frames[1].fieldOutputs['U']
field2 = odb.steps['LC2'].frames[1].fieldOutputs['U']

# Compute difference between fields.

deltaDisp = field2 - field1

# Save new field.

newStep = odb.Step(name='user',
    description='user defined results', domain= TIME, timePeriod=0)
newFrame = newStep.Frame(incrementNumber=0, frameValue=0.0)
newField = newFrame.FieldOutput(name='U',
    description='delta displacements', type=VECTOR)
newField.addData(field=deltaDisp)

odb.save()
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:07 , Processed in 0.036571 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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