我想读取ODB文件,然后添加一个字段,并保存生成的ODB文件。 电极很容易(如下所示)。 但我收到错误消息: 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()
答案 0 :(得分:0)
如果您使用odbAccess.openOdb
方法,则错误" OdbError:数据库保存失败。 ***错误:尝试截断只读表"只有在使用可选参数readOnly=True
打开Odb时才会出现。根据我的经验并根据文档,此方法的默认值为readOnly=False
,这意味着您应该能够读写。但是,您可以尝试通过添加可选参数使其明确,例如:
import odbAccess
odb = odbAccess.openOdb(path="Job-1.odb", readOnly=False)
如果仍然失败,我怀疑文件权限已被更改。例如,在Windows中,您可以右键单击.odb文件,选择"属性",然后查看"只读"属性已被检查。
答案 1 :(得分:0)
如果您在CAE中打开了与readonly = true相同的文件.odb(选中了复选框),则无论您如何在代码中定义readOnly = false,然后一次又一次地重新加载odb,错误仍然会出现,即使您使用命令行而不是运行脚本。
这可以通过以下方法解决:在CAE或GUI中关闭相同的命名文件,或者使用readOnly = false重新加载该文件,然后使用readonly = false运行代码(未选中该框)。