我想读取ODB文件,然后添加一个字段,并保存生成的ODB文件。coode非常简单(如下所示)。但是我得到了错误消息: OdbError:数据库保存失败。**尝试截断只读表时出错。
问题可能出在ODB文件中,而不是代码本身。
有没有人知道哪里会出问题?
代码是:
from odbAccess import *
from abaqusConstants import *
from odbMaterial import *
from odbSection import *
from numpy import fabs as fabs
import numpy as np
import sys
import math
import os
import datetime
from types import IntType
print(' Reading ODB ' )
odb = openOdb(path='iog.odb')
odb.save()
odb.close()
发布于 2018-05-05 00:30:00
如果使用的是odbAccess.openOdb
方法,则只有在使用可选参数readOnly=True
打开OdbError时,才会出现错误“Odb : Database save fied.* error : Attempt to truncate read only table”。根据我的经验和文档,此方法的默认值是readOnly=False
,这意味着您应该能够读写。但是,您可以尝试通过添加可选参数来使其显式,例如:
import odbAccess
odb = odbAccess.openOdb(path="Job-1.odb", readOnly=False)
如果此操作仍然失败,我怀疑文件权限已更改。例如,在Windows中,您可以右键单击.odb文件,选择“属性”,然后查看是否选中了“只读”属性。
发布于 2019-09-27 07:23:17
如果您在CAE中打开与readonly=true相同的文件.odb (选中了框),无论您在代码中如何定义readOnly=false,并一次又一次地重新加载odb,即使您使用命令行而不是运行脚本,错误也会不断出现。
这可以通过在CAE或图形用户界面中关闭相同的命名文件来解决,或者使用readOnly=false重新加载它,并使用readonly=false运行代码(未选中框)。
https://stackoverflow.com/questions/50175188
复制相似问题