0

下午好,

我们一直在研究应用一系列力的动物模型(头骨)并评估 Abaqus 中的合成应力。我们得到了一些美丽多彩(蓝到红)的等高线图。现在,我们想获得一个相似的图像,但用一个新的矩阵着色,这将是一些数学变换的结果。

那么,如何提取用于设置这些颜色模式的数据矩阵(我猜是 X-、Y-、Z- 和 von Mises 值左右),应用我的转换,并重新绘制数据以获得新的(可比)数字与新值

非常感谢,祝您有美好的一天!

4

1 回答 1

1

我自己从来没有做过,但我知道这是可能的。您可以从文档开始(例如此处此处)。

在使用 GUI 进行实验之后,您可以查看相应的 Python 代码,这些代码应该会自动记录在您的工作目录(或 C:\temp)的 abaqus.rpy 文件中。通过它工作你可以得到类似的东西:

myodb = session.openOdb('my_fem.odb') # or alternatively `session.odbs['my_fem.odb']` if it is already loaded into the session

# Define a temporary step for accessing your transformed output
tempStep = myodb.Step(name='TempStep', description='', domain=TIME, timePeriod=1.0)

# Define a temporary frame to storeyour transformed output
tempFrame = tempStep.Frame(frameId=0, frameValue=0.0, description='TempFrame')

# Define a new field output
s1f2_S = myodb.steps['Step-1'].frames[2].fieldOutputs['S'] # Stress tensor at the second frame of the 'Step-1' step
s1f1_S = myodb.steps['Step-1'].frames[1].fieldOutputs['S'] # Stress tensor at the first frame of the 'Step-1' step
tmpField = s1f2_S - s1f1_S

userField = tempFrame.FieldOutput(
    name='Field-1', description='s1f2_S - s1f1_S', field=tmpField
)

现在,要使用 python 显示新的字段输出,您可以执行以下操作:

session.viewports['Viewport: 1'].odbDisplay.setFrame(
    step='TempStep', frame=0
)

有关使用的方法和对象的更多信息,您可以查阅文档“Abaqus 脚本参考指南”:

  • Step(): Odb 命令 -> OdbStep 对象 -> Step();
  • Frame(): Odb 命令 -> OdbFrame 对象 -> Frame();
  • FieldOutput object: Odb 命令 -> FieldOutput 对象;
于 2021-01-06T09:59:05.853 回答